Stránka 2 z 7
Napsal: 21 pro 2018, 08:24
od jova1
Ještě přidám obrázek podle kterého to mám zapojené.
Pokud přeruším to buzení L, tak to funguje jako klasická dělička 100.
Pokud to mám podle obrázku, tak na tom výstupu už mi servo nereaguje a je jedno co mám na předvolbě nastaveno za kód.
"Vnitřně" to funguje, například když nastavím na předvolbě v druhém řádu 8, tak už se mi výstup D nepřeklopí, jen mi to nedělí na tom výstupu, nebo už je ten impulz pod 2,5 µS co potřebuje to servo.
Napsal: 21 pro 2018, 09:36
od lesana87
Šířka toho pulsu je daná jen zpožděním ze vstupu load na výstup borrow. U 74HC192 je to asi 30ns, jestli tam máš opravdu 74AC tak ještě o dost míň. Jestli je puls krátký, tak si ho prodluž nějakým MKO. Třeba 74HC123, ale tomu puls z 74AC192 možná taky stačit nebude, ostatně je to kanon na vrabce, na výstup z kodéru stačí s rezervou i to 74HC a neruší tolik.
Napsal: 21 pro 2018, 11:40
od jova1
Obvody mám 74LS192. Podle mě, bych asi potřeboval na výstup BO2 zapojit nějaký klopný obvod, který by při sestupné hraně změnil na svém výstupu stav (to by byl výstup pro motor) a zároveň při tom generoval ten impulz L. Pak bych měl pro motor střídu 1:1 a impulz L by se generoval až po té změně na výstupu, nebo současně se změnou.
Jen nevím jaký použít:(
Napsal: 21 pro 2018, 11:56
od lesana87
Nemusí být na sestupnou, vzhledem k šířce pulsu je to jedno. Takže třeba 74LS74 jako dělička dvěma, na CLK přivedeš ten BO2.
Napsal: 21 pro 2018, 12:04
od jova1
Už jsem na to taky přišel, jen jsem z té 7474 musel udělat obvod T zavedením z neg. výstupu, signál na D.
Ale ještě tam bude nějaká zrada, ta předvolba BCD funguje nějak divně a nedělí to jak by mělo.
Napsal: 21 pro 2018, 12:42
od lesana87
Asi by bylo čistější náběžnou hranou BO2 spustit MKO aspoň 200ns a jeho negovaným výstupem přednastavit ty čítače.
Napsal: 21 pro 2018, 13:05
od jova1
Díky za rady, už jsem asi na to přišel, ty mé palcové předvolby jsou zřejmě uvnitř zapojené obráceně než v plánku, tak stačilo přehodit jejich logickou funkci a už to funguje.

Napsal: 19 dub 2019, 19:44
od jova1
Tak jsem zase tady s dalším problémem.
Už sice kolečka frézuji, ale zvolil jsem špatnou koncepci a potřeboval bych to předělat. Jde o to, že jsem ty obvody 74192 zapojil jako děličku s předvolbou čítající do nuly, viz obrázek nahoře, pak se to vynuluje, pošle impulz na motor a opět to počítá od přednastavené hodnoty k 0. Problém nastane v okamžiku, kdy se změní směr otáček. Obvod to sice správně vyhodnotí a začne servem otáčet na druhou stranu, bohužel ale dělička dál počítá směrem dolů a pokud mám například nastavenou předvolbu na 100 a já obrátím směr otáček při načítaném čísle např. 20 tak mi to v tom okamžiku odcouvá jen těch 20 kroků do 0, místo aby to couvalo těch 80 kterých by to správně mělo.
Je mi jasné že bych tam měl zapojit čítání nahoru a dolů, ale jak mám zapojit tu předvolbu? Jediné co mě zatím napadlo, neřešit předvolbu obvodu 74192, ale porovnávat hodnotu jeho BCD výstupů s BCD palcovou předvolbou a v okamžiku shody obvody nulovat a poslat impulz do motoru.
Bude to funkční? Nenapadá vás něco jiného?
Napsal: 19 dub 2019, 20:58
od lesana87
Napadá mě, že tam bude úplně stejný problém při opačném čítání. Ale přiznám se, že pořád nechápu, k čemu ten obvod má sloužit, tak se špatně vymýšlí realizace. Mohl bys to trochu osvětlit? Jaký pohyb to při tom frézování snímá a jaký to řídí?
Napsal: 19 dub 2019, 21:17
od jova1
Obvod slouží jako dělička vstupních impulzů. Mám enkodér který mi snímá otáčky a směr otáčení vřetena (odvalovací frézy). Dělička to dělí v určitém poměru a impulzy pak poháním servo motor který otáčí budoucím ozubeným kolem. Když mám dělící poměr 1:20 vytvořím 20 zubů, 1:100 100zubů...
Občas ale potřebuji zastavit a tam právě může dojít ke změně směru otáčení. Mám tam vstupní obvod který to vyhodnotí a změní směr otáčení serva, ale vznikne tam ten problém s dělením viz výše. Jak ta dělička počítá jen směrem dolů, do prvního vynulování to počítá špatně pokud zrovna nezastavím v polovici dělení.
Potřebuji aby ten obvod byl nastavitelný na libovolný dělící poměr 1:999, čítal nahoru i dolů a vždy při průchodu 0 vyslal impulz. Pak by to mělo snad pracovat správně.
Takhle to funguje v praxi, jen tam v těch záběrech chybí to couvnutí a pootočení zpět.
https://www.youtube.com/watch?v=2Z9NwbsRTmM
Napsal: 19 dub 2019, 21:57
od jova1
Když nad tím tak přemýšlím, asi by tam musela být i ta předvolba obvodu 74192. Jestli dobře uvažuji, mám předvoleno 22. Počítám dolů, při 0 dojde k vynulování, načtení předvolby a obvod bude směrem dolů počítat zase od 22 do nuly. Zastavím na 5ti, budu čítat nahoru do 22 a dojde porovnání BCD výstupů 74192 s palcovou předvolbou a opět dojde k vynulování a počítání od 0 do 22…
Má to asi jednu chybu. Co se bude dít, když při počítání dolů a vynulování dojde k načtení předvolby. Pak by se na BCD výstupech objevilo těch 22 a došlo k porovnání s palcovou předvolbou a tím pádem k vynulování

Napsal: 19 dub 2019, 22:12
od danhard
Dělička musí být obousměrná

Napsal: 19 dub 2019, 22:24
od jova1
Nějaký nápad jak to zapojit s těmi obvody 74192?
Napsal: 19 dub 2019, 22:53
od VASEK_W
Je třeba změnit (prohodit) přidanou logikou i zapojení vstupů CD a CU v děličkách při zreverzování, aby se to chovalo korektně. Pak by to snad mohlo fungovat správně. Nejjednodušší asi bude, si to zapojit na zapojovacím poli a vyzkoušet, jak se to bude chovat.
Vašek
Napsal: 19 dub 2019, 23:08
od lesana87
To nulování nedělej od "je rovno", ale od "je větší", použij např. 74HC682. Tak se to při načtení předvolby nevynuluje. Ale možná tak bude cyklus v jednom směru o 1 delší, to chce ještě dopromyslet.
Mimochodem, výstupy z kvadraturního kodéru, pokud jsou bez zákmitů, jdou přímo přivést na vstupy čítání nahoru a čítání dolu a bude to čítat oběma směry bez potřeby další logiky.