Převodník z rotačního enkoderu na STEP DIR

Uživatelský avatar
jova
Příspěvky: 2510
Registrován: 2. 11. 2007, 1:40
Bydliště: Chýnov to je kousek od Tábora
Kontaktovat uživatele:

23. 10. 2018, 8:57

Zdravím, nemáte někdo ověřené schémátko obvodu který by mi převáděl signál A,B, z rotačního enkoderu na signály STEP, DIR?
Něco jsem na internetu našel, ale buď je to složeno z obvodů co se špatně shání, nebo se mi to zdá pro uvažovanou aplikaci pomalé.
Předpokládám použití enkoderu s 1000pulzi na otáčku při cca 0-1600 otáčkách/min. Procesorové zapojení nechci. Dík.
Tomáš Svoboda
Příspěvky: 225
Registrován: 22. 8. 2007, 12:51
Bydliště: Zlín

23. 10. 2018, 9:20

Na to je asi nejjednodušší použít malinké CPLDčko třeba Xilinx. Něco podobného jsem kdysi dělal ale přepočet souřadnic . Na výstupu zase bylo A a B .

Ale vzpomínám si že existuje jednoduché zapojení s TTL obvůdkama .Chce to prohrabat amaterské radia .
gnat
Příspěvky: 1002
Registrován: 24. 2. 2009, 9:14
Bydliště: doma
Kontaktovat uživatele:

23. 10. 2018, 11:33

OR hradlo na STEP a klopák na DIR, ale stejně asi za to budeš potřebovat dát děličku. To jsou minimálně 3 pouzdra místo jednoho uC.
SABLE-2015
Mex
Příspěvky: 10287
Registrován: 6. 2. 2014, 10:29

23. 10. 2018, 1:15

Na STEP spíš XOR než OR.
Jde taky o to, kolik STEPů chceš dostat v každém cyklu. Pokud chceš STEP od každé hrany, tak to už asi chce nějaký monostabilní klopák.
Navíc tahle jednoduchá zapojení mají často problémy s nestandardními stavy, např. s kmitáním vstupu když ten enkodér stojí zrovna na hranici čárky, případně u mechanických enkodérů (což ale vzhledem k rychlosti nebude Tvůj případ) se zakmitáváním kontaktů.
t256
Příspěvky: 2831
Registrován: 19. 1. 2012, 4:49

23. 10. 2018, 1:30

Delaji se na to specialni obvody, hledej pod pojmem Quadrature Decoder IC
Uživatelský avatar
jova
Příspěvky: 2510
Registrován: 2. 11. 2007, 1:40
Bydliště: Chýnov to je kousek od Tábora
Kontaktovat uživatele:

23. 10. 2018, 2:12

Mex píše: 23. 10. 2018, 1:15 ...
Jde taky o to, kolik STEPů chceš dostat v každém cyklu...
Na tom až tak nezáleží, v podstatě je mi jedno zda to bude z každé sestupné hrany, nebo jen třeba z výstupu A.
t256 píše: 23. 10. 2018, 1:30 Delaji se na to specialni obvody, hledej pod pojmem Quadrature Decoder IC
Vím, nějaké jsem na netu našel, např LS7184, ale cena v řádu stovek korun se mi moc nezamlouvá :(
Mex
Příspěvky: 10287
Registrován: 6. 2. 2014, 10:29

23. 10. 2018, 2:49

Třeba tady je jedno pěkné zapojení, má to tam i časované monostabilem z RC obvodu, takže umí udělat STEP na každou hranu.
https://cnctar.hobbycnc.hu/VarsanyiPete ... tepDir.pdf
Použil trochu netypická hradla XNOR, tak by se to chtělo zamyslet jak to případně předělat na běžný XOR, nebo to pojmout zednicky a vyjít z toho toho, že XNOR je XOR s jedním negovaným vstupem, a tak prostě použít klasické XORy (74HC86) a vždy jeden vstup znegovat.
Ty tranzistory na konci tam samozřejmě být nemusí.

Ale pokud Ti nezáleží na počtů STEPů, tak jenom na XORu (74HC86) sečti signály A a B, a do klopného obvodu D (74HC74) pusť do dat A do do hodin B.
Výstup XORu je pak STEP, výstup toho klopáku je DIR.
Uživatelský avatar
jova
Příspěvky: 2510
Registrován: 2. 11. 2007, 1:40
Bydliště: Chýnov to je kousek od Tábora
Kontaktovat uživatele:

23. 10. 2018, 5:44

Mex píše: 23. 10. 2018, 2:49 ...Ale pokud Ti nezáleží na počtů STEPů, tak jenom na XORu (74HC86) sečti signály A a B, a do klopného obvodu D (74HC74) pusť do dat A do do hodin B.
Výstup XORu je pak STEP, výstup toho klopáku je DIR.
Tak jak to popisuješ by to mělo být tohle zapojení:
encoder.jpg
Pokud je ten horní šváb 74HC86, nějak tam nemohu tu hodnotu přečíst :?
Naposledy upravil(a) jova dne 21. 4. 2019, 8:59, celkem upraveno 1 x.
Mex
Příspěvky: 10287
Registrován: 6. 2. 2014, 10:29

23. 10. 2018, 5:53

Jo, to je ono.
Je to jedno hradlo XOR, tedy 1/4 pouzdra 74HC/HCT/LS86.
Pokud je enkodér napájený 5V, tak to ošetřování diodama atd. nemá moc smysl. Jen možná ty 2 pull-up odpory ano.
Pokud má enkodér jako výstup open-collector, tak ty pull-upy dej menší, třeba 2k2 nebo ještě míň.
Pokud má výstup push-pull, tak tam vyhoví cokoli, a je jedno, jestli tam budou pull-upy nebo pull-downy (tj. odpory do +5V nebo do GND).
Pokud nehrozí provoz s odpojeným enkodérem a jeho výstup je push-pull, tak tam pull-upy nemusí být vůbec.

A pokud bys neměl 74HC86, tak jedno hradlo XOR se dá poskládat ze 4 hradel NAND, tedy z jednoho pouzdra 74HC00.
Uživatelský avatar
jova
Příspěvky: 2510
Registrován: 2. 11. 2007, 1:40
Bydliště: Chýnov to je kousek od Tábora
Kontaktovat uživatele:

23. 10. 2018, 6:13

Zatím díky, jdu hledat další informace kolem děliček. Hlavně ale musím oslovit jednoho místního odborníka zda potvrdí mé úvahy o správném principu obrábění a pak se rozhodnu zda to má cenu vůbec celé stavět.
Mex
Příspěvky: 10287
Registrován: 6. 2. 2014, 10:29

23. 10. 2018, 6:22

Tys jistě myslel děličku mechanickou.
Ale připomněl jsi mi, že kdybys to postavil, tak Ti zbude jedem klopný obvod v tom 74HC74, takže ho můžeš použít jako děličku dvěmi, kdyby se to k něčemu hodilo.

Pokud chceš stavět děličku na principu enkodéru, nějak poháněné univerzály a brzdy, tak rozhodně zkus zvážit použití nějakého jednochipu. Přece jen pak máš možnosti nesrovnatelné.
No ale třeba plánuješ něco úplně jiného, třeba stavíš odpalovací rampu pro balistické rakety směrem na Saudskou arábii. Pokud ano, tak Ti rád přijdu pomoct. ;-)
Uživatelský avatar
jova
Příspěvky: 2510
Registrován: 2. 11. 2007, 1:40
Bydliště: Chýnov to je kousek od Tábora
Kontaktovat uživatele:

28. 10. 2018, 8:41

Dneska jsem otestoval ten převodník enkoderu, nakonec jsem použil trochu zjednodušené zapojení jež zde už bylo publikováno s 74HC86AP. Zdá se, že to bude funkční.
74HCT86.jpg
S děličkou mám trochu tak říkajíc "morální" problém. Zkoušel jsem svůj oblíbený PICAXE, bohužel je moc pomalý a víc jak cca 2kHz už to nedá, potřebuji dělit pulsy kolem 20kHz. Klasická dělička s číslicovými obvody by nebyl problém, ale špatně by se to propojovalo s případným procesorem. Zkoušel jsem, ale ARDUINO a to jde snad až ke 100kHz. No a to je ten problém. Ten program se 6ti řádky jsem sestavoval snad 4 hodiny :? Představa že dělám komplet program s tisícovkou řádků mě přímo děsí. Nedala by se ta dělička z ARDUINA řídit PICAXEM? V podstatě by mi tam stačilo posílat jedno číslo. :roll:
Mex
Příspěvky: 10287
Registrován: 6. 2. 2014, 10:29

28. 10. 2018, 9:29

Zřejmě by to chtělo napřed napsat, jakého stavu chceš dosáhnout, co má být výstupem.

Jinak na tom Tvém schematu jsou všechny ty odpory zbytečné. Dávat odpor na výstup push-pull CMOS hradla (R5, R6) je nejen k ničemu, ale ještě si to říká o návštěvu "Komise pro kontrolu šetření energií". Když už bys někam ty odpory chtěl pověsit, tak na ty vstupy A, B pro ošetření případně nepřipojeného enkodéru.
A ty odpory na vstupech hradel jsou taky zbytečné, i když tady by ta zmíněná komise nic nenamítala (nic to nežere, teda kromě peněz za součástky a místa na desce). Klidně to pověs přímo na +5V (místo R7), případně na +5V nebo na GND (místo R13).

Jinak obecně nejpříjemnější je připojovat enkodéry k obvodům, které pro to mají přímo nachystané čítače se vstupy pro kvadraturní signály. To je například mnoho ARMů, včetně třeba těch na velmi levných deskách Blue-pill. A pak můžeš čítat MHz.
t256
Příspěvky: 2831
Registrován: 19. 1. 2012, 4:49

29. 10. 2018, 7:13

No ja nevim jestli se zrovna na tomhle vyplati setrit stokoruny. Pokud to mas jen na snimani otacek vretene, asi vyhovi i ty jednoduche zapojeni, ale u nizkych otacek a rizeni polohy je treba osetrit chveni a pripadne ruseni. Mi by to za ty potencionalni problemy urcite nestalo. Pokud uz to budes programovat, nedelej to zbytecne rychle, nastav filtr tak o 30% vys nez je maximalni pozadovana frekvence.
Josef
Sponzor fora
Příspěvky: 5699
Registrován: 19. 11. 2006, 9:25
Bydliště: Valašsko

29. 10. 2018, 7:16

Já jsem kdysi někde našel tohle, ale zatím nezkoušel.
Quad2StepDir.pdf
(15.62 KiB) Staženo 364 x
Odpovědět

Zpět na „Ostatní elektronika“