Hur får man ökad upplösning från pulsgivare?
Hur får man ökad upplösning från pulsgivare?
Jag har en pulsgivare som har två utgångar, A och B.
Dessa ligger 90° "fasförskjutna" (se fig)
Om man kopplar ihop A och B med en XOR-krets så ökar antalet pulser till det dubbla. Så långt är det inga problem.
Om man läser av positiva och negativa flanker i pulståget "A xor B" så fördubblas antalet pulser/varv ytterligare en gång.
Hur löser man detta på ett elegant sätt?
Jag antar att det krävs (minst) en monostabil vippa. Vad mer?
/Klas
Dessa ligger 90° "fasförskjutna" (se fig)
Om man kopplar ihop A och B med en XOR-krets så ökar antalet pulser till det dubbla. Så långt är det inga problem.
Om man läser av positiva och negativa flanker i pulståget "A xor B" så fördubblas antalet pulser/varv ytterligare en gång.
Hur löser man detta på ett elegant sätt?
Jag antar att det krävs (minst) en monostabil vippa. Vad mer?
/Klas
- JimmyAndersson
- Inlägg: 26308
- Blev medlem: 6 augusti 2005, 21:23:33
- Ort: Oskarshamn (En bit utanför)
- Kontakt:
Du skulle kunna få en sådan funktion med en 555-krets som triggas med "A xor B"-signalen. I 555-uppkopplingen ställer man sedan in pulslängden.
Problemet är bara att pulserna blir lika långa oavsett hur långa pulserna i Kanal A och B är. Så om det är ett problem i ditt fall så behövs nog en annan lösning.
Jag har en idé i bakhuvudet men den vill inte riktigt komma fram än. Återkommer.
Problemet är bara att pulserna blir lika långa oavsett hur långa pulserna i Kanal A och B är. Så om det är ett problem i ditt fall så behövs nog en annan lösning.
Jag har en idé i bakhuvudet men den vill inte riktigt komma fram än. Återkommer.
Att pulslängderna blir konstanta spelar ingen roll.
Jag har en Basic Stamp2 som räknar pulser under en viss tid för att får
fram varvtalet (och senare accelerationen) på en axel. Så länge pulserna är längre än 2 mikrosekunder så klarar BS2:en att registrera dem.
Applikationen är en accelerationsbänk för effektmätning av MC.
Här finns några bilder på den "in action". Farsgubben står vid styret.
http://www.home.staertesjoen.se/lgh51/dyno/bilder/
/Klas
Jag har en Basic Stamp2 som räknar pulser under en viss tid för att får
fram varvtalet (och senare accelerationen) på en axel. Så länge pulserna är längre än 2 mikrosekunder så klarar BS2:en att registrera dem.
Applikationen är en accelerationsbänk för effektmätning av MC.
Här finns några bilder på den "in action". Farsgubben står vid styret.
http://www.home.staertesjoen.se/lgh51/dyno/bilder/
/Klas
Du får inte bättre upplösning egentligen, varje puls kommer ju vid en övergång på antingen A eller B - så kan du inte bara titta på A och B direkt?
Nu har jag inte använt BS2, men med t.ex. en PIC vore det lätt fixat genom att använda interrupt-on-change eller liknande funktion. Finns det inget sånt på BS2?
Nu har jag inte använt BS2, men med t.ex. en PIC vore det lätt fixat genom att använda interrupt-on-change eller liknande funktion. Finns det inget sånt på BS2?
Precis, upplösningen ökar ju inte alls om du håller på att XORar ihop dem, du får precis samma resultat som om du skulle läsa av A och B separat. Jag antar att du utgår från att du alltid har sama rotationsriktning, då är det väl ingen poäng med att göra så?
Tyvärr använder du dig av en Basic Stamp, då har du automatiskt minimerat dina chanser till att utnyttja hårdvarufinesser som externa interrupt och capture on change, som hade varit perfekt i ditt fall!
Men åter till Stampen, är det inte precis lika lätt ärr mäta på två originalsignaler? Var får du egentligen din mätprecission rent tidsmässigt ifrån på Stampen?
Tyvärr använder du dig av en Basic Stamp, då har du automatiskt minimerat dina chanser till att utnyttja hårdvarufinesser som externa interrupt och capture on change, som hade varit perfekt i ditt fall!
Men åter till Stampen, är det inte precis lika lätt ärr mäta på två originalsignaler? Var får du egentligen din mätprecission rent tidsmässigt ifrån på Stampen?
$tiff:
I dagsläget använder jag endast den ena kanalen. Så i mitt fall får jag ökad mätprecision.
Jag vet inte riktigt hur jag ska mäta på två signaler med BS2:n?
Programmet i BS2:n ser ut såhär:
LOOP:
count 9,25,W1 'räkna pulser på pin9 under 0,025s, lagra i W1
serout 0,16416,[dec w1,10,13] 'skicka värdet seriellt som ASCII+LF+CR
goto LOOP
Mätprecisionen i BS2:n har jag inte riktigt koll på.
cyr:
BS2 är så simpel att den inte kan hantera interrupt.
Ja, jag vet att allt skulle vara mycket bättre om jag använder en "riktig" PIC eller liknande, men mitt intressefokus ligger på motorcyklar.
Accbänken är endast ett verktyg.
/Klas
I dagsläget använder jag endast den ena kanalen. Så i mitt fall får jag ökad mätprecision.
Jag vet inte riktigt hur jag ska mäta på två signaler med BS2:n?
Programmet i BS2:n ser ut såhär:
LOOP:
count 9,25,W1 'räkna pulser på pin9 under 0,025s, lagra i W1
serout 0,16416,[dec w1,10,13] 'skicka värdet seriellt som ASCII+LF+CR
goto LOOP
Mätprecisionen i BS2:n har jag inte riktigt koll på.
cyr:
BS2 är så simpel att den inte kan hantera interrupt.
Ja, jag vet att allt skulle vara mycket bättre om jag använder en "riktig" PIC eller liknande, men mitt intressefokus ligger på motorcyklar.
Accbänken är endast ett verktyg.
/Klas
Vad pratar vi för hastigheter på pulserna?
Försökte en gång i tiden mäta ett liknande pulståg med en STAMP, föll på att stampen tappa för många pulser. Iof försökte jag mäta en längd vilket kräver att INGA pulser missas, ska man bara mäta varvtal så är det lugnare.
Att köra count på två pinnar samtidigt har jag svårt att se hur man skulle kunna göra i Stampe. Så det kräver nog XOR grinden om man vill köra stamp
Försökte en gång i tiden mäta ett liknande pulståg med en STAMP, föll på att stampen tappa för många pulser. Iof försökte jag mäta en längd vilket kräver att INGA pulser missas, ska man bara mäta varvtal så är det lugnare.
Att köra count på två pinnar samtidigt har jag svårt att se hur man skulle kunna göra i Stampe. Så det kräver nog XOR grinden om man vill köra stamp
Periferihastigheten är max 220km/h och diametern på trumman är 250 mm.
Detta ger ett maxvarvtal på ca 4700rpm.
Pulsgivaren som jag har ger 1250 pulser/varv (per kanal).
Det skulle ge 2500 pulser/varv om man kör A xor B.
Det blir ett pulståg på 195kHz, pulslängd alltså 5.1 µs.
[kollar manualen]
Skit, kortaste pulstid är 4.16µs. 120kHz.
Alltså hinner den inte ens mäta A xo B.
End of discussion.
/Klas
Detta ger ett maxvarvtal på ca 4700rpm.
Pulsgivaren som jag har ger 1250 pulser/varv (per kanal).
Det skulle ge 2500 pulser/varv om man kör A xor B.
Det blir ett pulståg på 195kHz, pulslängd alltså 5.1 µs.
[kollar manualen]
Skit, kortaste pulstid är 4.16µs. 120kHz.
Alltså hinner den inte ens mäta A xo B.
End of discussion.
/Klas