Honza, 27.11.2005 18:49:32
Stačilo by použít 2mA LEDku, katodu přes odpor uzemnit a anodu přikládat na dráty. Když se LED rozsvítí, je tam H, pokud se nerozsvítí, je tam L.
Abys vyloučil bychu, můžeš pak dát Anodu na + a přikládat konec odporu na dráty, pokud se LED rozsvítí, je tam L, pokud ne, tak je tam H.
pal, 27.11.2005 20:38:43
Myslím, že to není úplně triviální zadání.
Jedna možnost je tam dát procesor a ručně to počítat přímo v něm.
Druhá možnost je ty vodíče připojit na adresové piny EPROMKY, která má alespoň 16 adresových vodičů (27512).
Ledky pak napojit na výstupy data0 a data1. log 1 na data 0 bude znamenat převažující nuly, log 1 na data1 pak převažující jedničky. log 1 na obou pak nerozhodný stav.
Do epromky vypálit následující data (nějak si to vygeneruj)
adresa=data
00000000 00000000 = 0000 0001 - převažují nuly, rozsvítím data0
00000000 00000001 = 0000 0001
00000000 00000010 = 0000 0001
00000000 00000011 = 0000 0001
00000000 00000100 = 0000 0001
00000000 00000101 = 0000 0001
00000000 00000110 = 0000 0001
...
...
00000000 11111111 = 0000 0011 - tady je to nerozhodně, rozsvítím data0 a 1
00000001 00000000 = 0000 0001 - tady převažují zase nuly
00000001 11111111 = 0000 0010 - převažují jedničky, rozsvítím data1
00000010 00000000 = 0000 0001 - zase převažují nuly, rozsvítím data0
...
10101010 10100101 = 0000 0011 - vyrovnané, svítí data0 a 1
10101010 10100110 = 0000 0011 - vyrovnané, svítí data0 a 1
10101010 10100111 = 0000 0011 - převažují jedničky, svítí data1
...
11111111 00000001 = 0000 0010 - převažují jedničky, svítí data1
...
11111111 11111111 = 0000 0010 - převažují jedničky, svítí data1
Pokud tam mám někde chybičku, tak si toho nevšímej. jde o princip.
Další vylepšení by například bylo vygenerovat si takto data přímo pro ovládání 7segmentového displeje na kterém se bude přímo zobrazovat číslice 0/1.
Doufám, že se tento sáhodlouhý text nerozpadne a zůstane zachováno alespoň zalamování řádků
Honza, 27.11.2005 22:15:47
Já myslel že chce jen příležitostně zjistit nějaký dlouhodobější stav výstupů.
Jestli ne, tak to se omlouvám.
Sendy, 27.11.2005 22:26:04
To jsem kdysi řešil zcela trviálně - každý vstup šel na CMOS tvarovač (myslím něco jako hradlo v 4050, ale s shotky vstupem - v tomto případě by nebylo nutné), a všechny výstupy byly sloučeny přesnými odpory na vstup komparátoru, u kterého se nastavila přesně mez, kdy to je půl na půl
. Muselo se to nakonec hnát na dva komparátory, protože nastával i stav 50"50. Primitivní, ale účinné
mirek, 28.11.2005 00:29:22
obvodove je to nejjednodussi s procesorem. principialne s tim komparatorem jak psal sendy, vytvoris vlastne D/A prevodnik
pal, 28.11.2005 04:27:44
Udělat D/A převodník mne taky napadlo. Jenomže pokud si důkladně přečtu zadání, fish se ptá na počet kusů drátů s log1 a počet kusů drátu s log0. Nechť zvítězí ty, kterých je více. Neptá se na jejich celkovou binární hodnotu.
Kdybych udělat D/A, tak se podívejme, jaký binec by mi to udělalo (vyjádřím si stavy drátů $hexa i decimálně):
00000000 11111111 - $00ff - d255 = případný komparátor by měl vyhodnotit 1
00000001 00000000 = $0100 = d256 = toto ale musí tentýž komparátor vyhodnotit jako 0, přestože je binární hodnota drátů vyšší. Protože počet nul prostě převažuje.
...
00000001 11111111 - $01ff - d511 = případný komparátor by měl vyhodnotit 1
00000010 00000000 = $0200 = d512 = tady ale musí opět vyhodnotit 0, protože počet nul převažuje
Graf snad kreslit nemusim.
fish, 28.11.2005 11:17:37
>>>to Sendy ... s tím komparátorem mě to taky napadlo ale nevím jak to zapojit. Nemohl bys sem hodit jak by to asi mělo vypadat? Jinak u tohoto obvodu je ošetřeno, že vždy bude převládat jedna hodnota (log.1/0). Stav nerozhodnosti nemůže nastat.
pal, 28.11.2005 15:28:35
Fishi, tady nejde o stav nerozhodnosti ve smyslu: drát nemá ani ani 0 ani 1. Na 16 drátech ale nemůžeš vyloučit že libovolných 8 drátů bude v 1 a zbytek v 0.
fish, 28.11.2005 16:31:10
Teď nevim co myslíš, ale já říkám, že nemůže nastat stav, že bude 8 libovolných drátů na úrovni log.1 a 8 ostatních na log.0. Prostě toto nemůže nastat, vždycky bude převládat alespoň 9 drátů s log.1 nebo 0.
Chtělo by to více popsat,např. jak rychle se stavy mění, zda na všech vývodech nezávisle nebo podle nějaké logiky, zapojení se pak může třeba zjednodušit. Nejjenodušší řešení bude s mikroprocesorem (PIC, ATMEL)tak, že bude počítat výstupy na úrovni L, H dopočítá a porovnáním indikuje většinový stav.
fish, 28.11.2005 17:03:53
>>> jezevec ... na všech vývodech jsou log. úrovně ve stejném okamžiku...