Pulsvermenigvuldiging

Hallo,

Ik heb een machine met een hall-effect snelheidsensor welke een 12 volt voeding heeft en een blokpuls genereerd. Doordat de machine een andere vertraging heeft gekregen en grotere wielen (waardoor de rijsnelheid hetzelfde is gebleven) komen er nu te weinig pulsen van mijn sensor om de juiste rijsnelheid op het dashboard weer te geven.
Ik moet het uitgangssignaal met 1,25x vermenigvuldigen om zo weer tot de juiste aantal pulsen te komen.

Bij laagste rijsnelheid komen er 17 pulsen per seconden en bij maximale snelheid komen er 1550 pulsen per seconden.

Is er iets te maken waardoor ik het aantal pulsen kan vermenigvuldigen?

x1,25 zal denk ik niet iets standaard zijn, maar misschien vermenigvuldigen met 5 en daarna delen door 4?

Ik heb zelf al wat rondgekeken op het forum naar info hierover en vind wel wat, maar niet precies wat ik nodig heb. En omdat ik geen ervaring heb met de componenten om zoiets te maken kom ik niet bij het juist uit denk ik.

Iets maken met een PLL, bijv. de HEF4046...

Arco - "Simplicity is a prerequisite for reliability" - www.arcovox.com

Voor een Siemens LOGO! een eitje, mits het aantal pulsen per sec. niet te groot is.

[Bericht gewijzigd door Toeternietoe op 11 juni 2019 17:16:08 (43%)]

Daar waar een schakeling rookt, vloeit de meeste stroom (1e hoofdwet van Toeternietoe)

Een Phase-locked loop is niet echt simpel, zeker niet als je zo'n groot bereik aan frequenties aan moet kunnen. Een microcontroller maakt het vrij simpel om dit te doen, en de eerder genoemde LOGO! is min of meer een microcontroller in een doosje met wat beveiliging er omheen.

Kun je het tandwiel o.i.d. waar de sensor naar kijkt niet vervangen, eventueel door iets met 5x zoveel tanden? Delen door een integer (zoals 4) is veel eenvoudiger dan vermenigvuldigen.

Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken

Op 11 juni 2019 17:15:16 schreef Toeternietoe:
Voor een Siemens LOGO! een eitje, mits het aantal pulsen per sec. niet te groot is.

Kan een Logo dat? ~2000 imp/sec.
Ik weet het niet hoor... ik vraag maar wat.

LDmicro user.

Op 11 juni 2019 18:33:41 schreef MGP:
[...]
Kan een Logo dat? ~2000 imp/sec.
Ik weet het niet hoor... ik vraag maar wat.

Een LOGO! kan (op de snelle ingang) 4kHz aan.
Maar of een LOGO! echt geschikt is, dan moeten we meer weten, wat is de ingang, en wat moet de uitgang zijn.

Daar waar een schakeling rookt, vloeit de meeste stroom (1e hoofdwet van Toeternietoe)

Kom ik weer met m'n Arduino :-)

"We cannot solve our problems with the same thinking we used when we created them" - Albert Einstein

Als het niet real-time hoeft te zijn (en dus een paar pulsen achter mag lopen), dan is een klein controllertje (picje) een goede oplossing...

Arco - "Simplicity is a prerequisite for reliability" - www.arcovox.com

Wat voor voertuig is het, eventueel software aanpassen?

Automotive engineer - www.easy-tech.nl

Het kan veel helpen als de topicstarter wat meer informatie geeft over het systeem. Is er in de snelheidssensor niks in te stellen? In elke fietscomputer kun je de afmeting van het wiel instellen, dat moet hier toch ook wel kunnen?

EricP

mét CE

Met een klein beetje mazzel, is het een Hall sensor met ergens wat magneetjes op geplakt. Met nog meer mazzel, zijn dat er 4.
Als er nou geen einde aan je geluk komt, dan telt de meter pulsen-in-tijd. Dan maakt het ook niets uit of ze mooi verdeeld zitten in die tijd.
Met een klein beetje minder mazzel, kijkt-ie naar tijd tussen pulsen om de snelheid te bepalen. Als ze dat leuk doen, dan middelen ze nog een beetje in software en kun je dat misbruiken. Maar goed... Ik zou eerst eens kijken of je per ongeluk iets met 4 (8?) magneten hebt...

Anders kom je inderdaad al snel in de richting van een AVR die de tijd tussen 2 pulsen meet, deelt door 1.25 en met die tijd ertussen zelf weer pulsen maakt. Geen rocket science, maar je moet het wel weer maken.

fatbeard

Honourable Member

Het aanpassen van het puls/tandwiel wat de Hall-sensor 'aanstuurt' is wel de meest bedrijfszekere oplossing (oplossingen van Sparky en EricP), maar met een handjevol poortjes en twee flipflops kan het ook (ik heb "iets" tegen processortjes voor dit soort zaken :P ):

Deze schakeling geeft 5 pulsen voor elke 4 die er in gaan, maar ook hier zitten de pulsjes niet evenredig verdeeld (en zijn ook niet allemaal even lang).

Pulsjes van gelijke lengte kan op gelijksoortige wijze:

Al zitten ze (ook nu) niet op gelijke afstand...

Hoe werkt dat nu allemaal?
De twee flipflops vormen een 4-deler, een NAND-poort decodeert stand 0.
De vier Schmitt-trigger NANDS vormen een EXOR, de R/C aan een van de ingangen maakt er een flankdetector van.
De vier poorten aan het einde (de inverter kan ook gemaakt worden met een NAND) een selector, die in de bovenste schakeling kiest tussen de 'normale' ingang voor de eerste drie pulsen en de dubbele puls voor de vierde. In de tweede schakeling moffelen de twee onderste poorten de eerste van de dubbele weg, de verdere werking is gelijk aan die van de eerste.
De R/C waardes zijn een goede startwaarde, enig geëxperimenteer kan nodig zijn om bij de maximale snelheid geen overlap te krijgen en toch voldoende pulsbreedte voor de snelheidsmeter.

Een goed begin is geen excuus voor half werk; goed gereedschap trouwens ook niet. Niets is ooit onmogelijk voor hen die het niet hoeven te doen.

En dat vind je serieus gemakkelijker dan een paar regels code? Dat is al niet meer triviaal op gaatjes board te bouwen, dus je daar moet dan eigenlijk alweer een print voor gaan tekenen en maken of bestellen.

Het leuke van software is dat is triviaal aan te passen is als de verhouding toch net niet helemaal 4:5 blijkt te zijn, of in de toekomst veranderd omdat er een andere maat banden gemonteerd wordt of zo.

Een manager is iemand die denkt dat negen vrouwen in één maand een kind kunnen maken

Op 11 juni 2019 17:37:43 schreef SparkyGSX:
Een Phase-locked loop is niet echt simpel, zeker niet als je zo'n groot bereik aan frequenties aan moet kunnen. Een microcontroller maakt het vrij simpel om dit te doen, en de eerder genoemde LOGO! is min of meer een microcontroller in een doosje met wat beveiliging er omheen.

Kun je het tandwiel o.i.d. waar de sensor naar kijkt niet vervangen, eventueel door iets met 5x zoveel tanden? Delen door een integer (zoals 4) is veel eenvoudiger dan vermenigvuldigen.

Ik heb een tandwiel moeten vervangen om de voor en achterwielen qua snelheid gelijk te krijgen, en dit is het enige tandwiel waar ik de sensor op kan zetten. Terug veranderen is geen optie

Op 11 juni 2019 21:17:46 schreef KlaasZ:
Het kan veel helpen als de topicstarter wat meer informatie geeft over het systeem. Is er in de snelheidssensor niks in te stellen? In elke fietscomputer kun je de afmeting van het wiel instellen, dat moet hier toch ook wel kunnen?

Ik kan een kalibratie van de snelheid uitvoeren, maar omdat ik al grotere wielen heb en daarmee ook een lagere omtreksnelheid van het tandwiel, kan ik niet in het meetbereik van de software komen

Op 11 juni 2019 20:32:38 schreef Paul Welther:
Wat voor voertuig is het, eventueel software aanpassen?

Het is een landbouw tractor, software aanpassing heb ik niet voor elkaar gekregen.

Op 11 juni 2019 18:50:05 schreef Toeternietoe:
[...]
Een LOGO! kan (op de snelle ingang) 4kHz aan.
Maar of een LOGO! echt geschikt is, dan moeten we meer weten, wat is de ingang, en wat moet de uitgang zijn.

De ingang van de pulsen varieert tussen de 17hz en 1550hz. De uitgang moet 1,25x de ingang zijn continu

Op 11 juni 2019 23:07:22 schreef SparkyGSX:
En dat vind je serieus gemakkelijker dan een paar regels code? Dat is al niet meer triviaal op gaatjes board te bouwen, dus je daar moet dan eigenlijk alweer een print voor gaan tekenen en maken of bestellen.

Het leuke van software is dat is triviaal aan te passen is als de verhouding toch net niet helemaal 4:5 blijkt te zijn, of in de toekomst veranderd omdat er een andere maat banden gemonteerd wordt of zo.

4:5 zou moeten blijven kloppen, deze verhouding blijft hetzelfde ook bij andere bandenmaten (hebben nu voor en achter even grote wielen gemonteerd, voorheen waren voorwielen paar maten kleiner)

Een LOGO is dat ook voor een leek makkelijk te gebruiken?

Op 11 juni 2019 20:16:17 schreef Arco:
Als het niet real-time hoeft te zijn (en dus een paar pulsen achter mag lopen), dan is een klein controllertje (picje) een goede oplossing...

Een paar pulsen achterlopen is geen probleem. Kan je iets meer uitleg geven over een klein controllertje/picje. Ik ben daar namelijk helemaal niet bekend mee :S

Beste Jaap86,
de firma Kaja Tachodienst (Duitsland) heeft printjes die een maximum van 4000Hz aan de ingang om kunnen zetten in een frequentie van heel laag, tot aan 10kHz. Even kijken bij "links" en dan Rudolf Polzer. Het printje heet FUM. Bij ons op de zaak vaak gebruikt voor gelijksoortige problemen.
Gr. Douwe

Je zou ook nog even kunnen googlen op "speedohealer".
Ik had ooit een volvo waar ik een totaal andere achteras onder gezet heb (jeep), ging van 1:3.73 naar 1:3.07 (even uit mijn hoofd).

De speedohealer bracht hier uitkomst.

Wat heb je voor sensor? Sorry, slordig gelezen.....
Ik heb namelijk de speedohealer nog maar herinner mij dat er verschil in type sensoren was.
Zal morgen eens kijken welk type ik heb liggen.

[Bericht gewijzigd door 240diesel op 11 juni 2019 23:56:48 (36%)]

Met een microcontroller zou ik een arduino nemen Arduino nano bijvoorbeeld. Hou je alleen wat signaal aanpassingen over.

Dan reken je uit: 1550 pulsen per seconde is ongeveer 600ns per puls (max). 300µs is dan de "laag" periode. Als we een extra pulsje willen geven dan moeten we in die periode dan laag-hoog-laag doen, dus 100 µs per pulsje.

code:

void loop (void)
{
  unsigned char new;
  static unsigned char old, t;

  new = digitalRead (THEINPUT);
  if (new && (new & !old)) t += 5;
  while (t > 4) {
     digitalWrite (THEOUTPUT, 1);
     delay_us (100);
     digitalWrite (THEOUTPUT, 0);
     delay_us (100);
     t -= 4;
  }
  old = new;
}

Dit is het "hart" van de code. Echt best wel simpel en kort.

Het kan nog 1 tikkie mooier door bij iedere flank op de input te reageren te reageren. Dan vervalt de "new &&" in de if. En de 4 wordt een 8: Je wilt 8 input veranderingen zien voor 5 output pulsen.

Edit: Hmm. Mogelijk kom je dan in de problemen omdat je 200 microseconden met de puls bezig bent en dan niet naar de input kijkt. Dat kan je oplossen door de tweede delay weg te halen: je krigjt toch nooit dat je 2x door de lus gaat.

[Bericht gewijzigd door rew op 12 juni 2019 06:31:57 (11%)]

four NANDS do make a NOR . Kijk ook eens in onze shop: http://www.bitwizard.nl/shop/

Een landbouwtraktor gaat ook niet zo gek hard..Gewoon een PLL met een 4046 en een delertje er achter, dat is geen rakettechnologie.Is in een half uurtje gemaakt,en als je die deler dan ook nog kan instellen met dip switches of zo, kan je veel verhoudingen aan.
Beter dan arduinozooi (vind ik).

u=ir betekent niet :U bent ingenieur..

Op 11 juni 2019 23:15:12 schreef Jaap86:
[...]

De ingang van de pulsen varieert tussen de 17hz en 1550hz. De uitgang moet 1,25x de ingang zijn continu

Qua ingang zou het moeten kunnen met een LOGQ, maar de uitgang kan nooit zo snel schakelen.
Uitgang van de LOGQO zou je wel om kunnen zetten naar bv 0 - 10 Volt of 4-20 mA.
Maar kun je daar verder meen?

Daar waar een schakeling rookt, vloeit de meeste stroom (1e hoofdwet van Toeternietoe)
High met Henk

Special Member

Ik zou het doen met een input capture interrupt van 1 timer.
Dan heb je de tijd tussen 2 pulsen. Die stuur je uit via een andere timer met de output compare.

Dus tijd 1 is bijv 1000 timer pulsen op moment capture.

Dan wordt tijd 2 dus op 800 gezet..

Je loopt dan wel altijd 1 puls achter..

to all newbies: RTFM/D of google eens (p.s. RTFM/D = Read the f*cking manual/datasheet).

Bij softwareoplossingen moet je wel rekening houden met extreme waardes.
Als bijv. de waarde < 17Hz is mag er niks vreemds gebeuren.

Arco - "Simplicity is a prerequisite for reliability" - www.arcovox.com

Waarom moet het nou altijd met die stomme software?
Ik hou het gewoon op een schakeling die simpel is, en wat iedereen begrijpt.
Niet iedereen is natuurlijk een softwaregoeroe..

u=ir betekent niet :U bent ingenieur..