"Decoda" en 3600 cpr encoder. Hur?

PIC, AVR, Arduino, Raspberry Pi, Basic Stamp, PLC mm.
jonte_s
Inlägg: 88
Blev medlem: 11 februari 2006, 17:13:48
Ort: Stockholm

Inlägg av jonte_s »

Japp. I mitt andra inlägg så länkar jag till motorerna/encodern jag använder. Det är dem från badtastex. Alltså encodern sitter på motoraxeln.

JBV: Fattar inte riktigt varför det inte funkar att dividera frekvensen A och B för sig. Hmm... Om någon har lust att förklara, så vore det schysst.

Så som jag tänker borde det ju funka. Jag har ju iof aldrig använt någon divideringskrets tidigare.
Användarvisningsbild
Icecap
Inlägg: 26659
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Man kan inte dela A och B var för sig för att de "hänger ihop". Deras inbördes fas anger riktningen, ska man veta hastigheten mätar man på endera fas enbart.

Man kan i enkelhet säga att när A har en stigande flank kan man på nivån på B se riktningen.

Så som en del andra har skrivit: är det för att du ska veta hastigheten och riktningen är fast räcker det alldeles fint med att bara läsa en av faserna, det är samma information i dom ändå.

Vad är det du vill uppnå? Vill du ha en absolut positionering av motorn eller bara veta hastigheten?
Användarvisningsbild
PerE
Inlägg: 1084
Blev medlem: 13 januari 2006, 08:54:05
Ort: Göteborg
Kontakt:

Inlägg av PerE »

I databladet till den står det max 200 kHz & 12.000 rev./min.
Du har ju index pulsen som är en per varv som man kan använda (Pin 10).
Men som sagt, vad är det du försöker göra med den ?
Per
jonte_s
Inlägg: 88
Blev medlem: 11 februari 2006, 17:13:48
Ort: Stockholm

Inlägg av jonte_s »

Jo, i slutändan så skulle jag väl vilja göra positionsreglering, men till att börja med så blir det hastighetsreglering. Jag vill alltså använda båda A och B och utnyttja deras inbördes fasförskjutning så att man kan bestämma åt vilket håll motorn snurrar, så att använda enbart index (Z?) pulsen är inte aktuellt.

Tappar man A och B inbördes fasförskjutning om man frekvensdelar båda signalerna?
Användarvisningsbild
Icecap
Inlägg: 26659
Blev medlem: 10 januari 2005, 14:52:15
Ort: Starup (Haderslev), Danmark

Inlägg av Icecap »

Om du tar en vanlig D-flip-flop (t.ex. 4013) och matar in B på D-ingången och klockar med A kommer Q att visa vilket håll den kör. Tar du sedan en µC med Capture-enhet till att kolla hastigheten kan du på en pinne kolla riktningen ('0'=CW, '1'=CCW eller vice-versa).

Har du en µC med 2 räknare i kan du även använda detta riktningssignal till att dela upp via ett par externa gates vilken räknaringång som ska ha pulserna, den ena räknare räknar alltså alla CW-pulser och den andra räknar CCW-pulserna, sedan klarar mjukvaran resten.
jonte_s
Inlägg: 88
Blev medlem: 11 februari 2006, 17:13:48
Ort: Stockholm

Inlägg av jonte_s »

Tack för alla svar. Nu när jag har lite mer kött på benen är det väl bara att sätta igång att labba! Har beställt hem lite prylar, så får vänta på dem...
Nihilim
Inlägg: 121
Blev medlem: 12 mars 2006, 21:00:20

Inlägg av Nihilim »

Vid 3600ppr och 3000rpm finns totalt 720.000 flanker/s att ta om hand. Om man skrämmer upp en ATtiny i 24mhz och programmerar assembler kanske man kan ta omhand om alla pulserna. Annars kan man skrota t.ex. de fallande flankerna och få 360.000 pulser. Bryr man sig inte om riktningen heller kan man komma undan med så lite som 180.000 flanker/s =)
Skriv svar