Stránka 1 z 19

Stavy spínačov.

Napsal: 02 led 2014, 17:25
od kutilmil
Zdravím dámy a páni.
Prosím radu. Nevedel by mi niekto poradiť, ako preniesť stavy cca 72 tlačidiel, po čo najmenšom počte vodičov. Predstavujem si to tak ze by boli dva IO, pričom jeden by bol ako vstupný a druhý ako výstupný. oba by boli prepojené čo najmenším počtom vodičov. Nízka úroveň vstupu by bola nízka na výstupe na príslušnom pine a vysoká na vstupe by bola vysoká na výstupe. Naprogramovať mikrokontroléry tak, aby si rozumeli si netrúfam.
Za radu ďakujem.

Napsal: 02 led 2014, 18:09
od procesor
Klasická logika s posuvnými registrami:
-9x 74HC165 na vstup+ 2 prijímače, 1 vysielač do kábla
-9x 74HC594 na vystup+1prijímač, 2 vysielače do kábla
-nejaký ten generátor hodinových pulzov cca 5-6 IC.
-Kábek pre 3 signály + GND
-Napájenie môže byť súčasťou kábla (závisí to od dĺžky a prierezu a spotreby logiky na strane spínačov)
-5V zdroj cca 100mA?? odhad, možno viac

Načo budú slúžiť tie spínače?....žeby 9 segmentoviek na štadióne, na pumpu je to málo...tam býva aj cez 16 :)

Napsal: 02 led 2014, 19:30
od Olchor
Nebo by to šlo přes analog - 2xD/A, 2xA/D 4bit převodník a 3 dráty - zem, desítky a jednotky. Šlo by to i 2 dráty, ale 72 úrovní už je dost, mohlo by docházet k chybám.

Napsal: 02 led 2014, 19:56
od procesor
72 tlačidiel dá toľkoto rôznych stavov: 4 722 366 482 869 645 213 696.
To číslo ani nevyslovím, a taký AD a DA....

Napsal: 02 led 2014, 20:13
od Olchor
No, asi blbě jsem předpokládal, že je aktivní vždy jen jedno...

Napsal: 02 led 2014, 21:33
od kutilmil
Robím vyvažovačku, a zrejme tak budem snímať polohu hriadele. Ďakujem.

Napsal: 02 led 2014, 22:26
od kutilmil
Ešte ma napadlo iedno riešenie a to kruhový čítač. bol by jeden resp dva vstupy a tie by postupne rozsvecovali povedzme tých 72 led. ale ako dosiahnuť, aby sa register pouval doprava a dolava? Vstup viem vyriešiť, to by boli dve "infrazávory". Pri chode doprava by sa ledky rozsvecovali smerom doprava a pri chode vretena dolava by sa rozsvecovali smerom dolava. Napada Vás nejaký IO resp obojsmerný kruhový čítač Ďakujem

Napsal: 02 led 2014, 22:28
od procesor
Ale na to sú jednoduchšie prostriedky, ako určiť polohu na rotujúcom hriadeli s presnostou 5°.

Napsal: 02 led 2014, 22:35
od kutilmil
A poradíš mi aké procesor. Dík.

Napsal: 02 led 2014, 22:58
od procesor
Nejaký rotačný optický encodér (7/8 bitový) s absolútnou polohou, prípadne tiež optický s tromi stopami a počítadlom do 72, keď ti stačí presnosť 5°.
Ten troj stopový je jednoduchší a vzásade môže mať aj vyššie rozlíšenie ako 72 polôh ak by bolo treba.
Stopa môže byť realizovaná fotosnímačom.
Stopa A a stopa B dávajú 72 impulzov posunutých navzájom o 2°30'
SYnC stopa určuje počiatok otáčky.

Presné profi encodery sú schopné určovať aj 5000 polôh na otáčku.
Taký ako potrebuješ sa dá urobiť aj amatérsky za babku.

Napsal: 02 led 2014, 23:04
od procesor
Olchor píše:No, asi blbě jsem předpokládal, že je aktivní vždy jen jedno...
Nakoniec máš pravdu, 72 stavov

Napsal: 02 led 2014, 23:10
od kutilmil
Enkoder mi bude generovať dva pravouhle signaly vzajomne posunute. tomu rozumiem. ale aky obvod mi bude podla toho posuvať rozsvietenú ledku doprava alebo doľava?
Za radu ďakujem.

Napsal: 03 led 2014, 00:58
od procesor
Aha, už som v obraze...
-Encoder poháňa 8 bit čítač hore/dole pri Sync stope sa prepíše na 0, alebo 71, podľa smeru pohybu.
-Po každom kroku sa prepíše poloha do druhého čítača, ktorý sa vie odpočítavať veľmi rýchlo do stavu 0 (frkv 400kHz...1Mhz)
-ledky sú zapojené na 9ks serial/Pparalel registre 74HC594/595. Prvý taktovací impulz sprevádza dáta=log1 do shiftregistra, a nasledujúce takty obsahujú nuly.
Pri dopočítaní čítača do nuly tretím vodičom sa dá povel prepísať šhiftregister do výstupného ktorý zapína jednu led-ku a nuluje sa shiftregister.

Tento relatívne komplikovaný logický algoritmus by zjednodušilo použitie obojsmerného shiftregistra. Taký 74194 má však iba štyri bity, tým pádom tých obvodov by muselo byť 18.
Druhá vec je aj dostupnosť obvodov, niektoré už nevidno na trhu.

V každom prípade by jeden uProcesor urobil celý cirkus s minimom súčiastok, iba tie ledky by museli mať 9ks 74HC595.
Program pre takú aplikáciu by nebol ani zložitý.

Napsal: 03 led 2014, 03:43
od kutilmil
Ďakujem procesor, ale nerozumiem tomu presne. nemohol by si mi prosím nejak načrtnút alebo konkrétne popísať zapojenie tých 595, tak aby vedeli posúvať vpred a vzad rozsvietenú led?

Napsal: 03 led 2014, 07:02
od procesor
595 nevedia posúvať vzad. To sa musí poslať do nich vždy nový údaj. Buď pravideľne (cca 10 x za sekundu), alebo pri zmene polohy kolesa.
To "nové vyslanie" sa deje na pozadí, zatiaľ čo svieti led-ka v pôvodnej polohe.
Ten obvod má dva registre (posúvací vpred a statický, ktorý posunutú informáciu si zapamätá povelom po dokončení posúvania.

Posúvať vpred a vzad vie 194 ....má však iba 4bity, čo by nemusel byť problém, ale sa bude ťažko zháňať. Tento register by sa dal urobiť do kruhu a svietiaca led by preskakovala podľa pohybu kolesom. Pri zapnutí stroja by sa musel ten register zosynchronizovať (po otočení kolesa o 1 otáčku). On by sa mohol synchronizovať potom stále pri dosiahnutí polohy 0.

Mám otázku:
Toto je proces keď sa kolesom točí manuálne. Tú časť, ktorá určí polohu závažia už máš hotovú?, alebo funkčnú?