Sok LED vezérlése kevés lábon

Processing/Wiring (illetve C) nyelvű programozási fogások, tippek. (AVR-Duino, Arduino, EthDuino, Diecimila, Severino, Nano, LilyPad)
Gorrodin
SzínkódFestő
Hozzászólások: 76
Csatlakozott: 2014. július 10. csütörtök, 19:54

Sok LED vezérlése kevés lábon

Hozzászólás Szerző: Gorrodin »

Találtam egy leírást a Microchip oldalán, ami azt taglalja, hogyan lehet a PIC chipekkel úgy meghajtani sok ledet, hogy csak kevés lábat használsz fel. Tudom, shift regiszterrel, meg led vezérlőkkel könnyen megoldható, de most az lenne a lényeg, hogy semmi egéb áramköri egység nem kell hozzá. Ők úgy nevezik: „complementary led drive”.
Így néz ki:
complementer led.jpg
Arról van szó, hogy az I/O lábaknak felhasználják mindhárom állapotát. Folyamatosan kapcsolgatva a lábakat magas, alacsony szintre és bemenetként. Így 8 biten 56 ledet tudnak meghajtani, ráadásul egyenként, multiplex nélkül.

A kérdés az, hogy meg lehet-e oldani ezt Arduinoval? Én próbálkoztam vele, de ha bemenetre váltom a lábat, akkor nem csinál semmit.
Nincs meg a kellő jogosultságod a hozzászóláshoz csatolt állományok megtekintéséhez.
Avatar
kapu48
Elektronbűvölő
Hozzászólások: 3375
Csatlakozott: 2008. augusztus 29. péntek, 6:00

Re: Sok LED vezérlése kevés lábon

Hozzászólás Szerző: kapu48 »

Akkor valamit rosszul csinálsz!
A bemenetre kapcsolással tudod a diódákat lekapcsolni.
Vegyük, hogy minden kimenet és minden L szint, nem világít semmi. 0-s állapot,
1-es állapot: 0, 6, 8 LED-ek világítanak.
2-es állapot: 0, 6 LED-ek világítanak.
stb…

Kód: Egész kijelölése

állapot 0	 1	 2
pin0	 L	 H	 H
pin1	 L	 L	 L
pin2	 L	 L	 L
pin3	 L	 L	 BE

Gorrodin
SzínkódFestő
Hozzászólások: 76
Csatlakozott: 2014. július 10. csütörtök, 19:54

Re: Sok LED vezérlése kevés lábon

Hozzászólás Szerző: Gorrodin »

Valamit nem értettél.
Azt írtam egyenként lehet vezérelni. Vagyis minden ledet külön-külön. Nem világít egyszerre kettő.
Avatar
csegebiga
Chipgyilok
Hozzászólások: 288
Csatlakozott: 2015. március 27. péntek, 21:27

Re: Sok LED vezérlése kevés lábon

Hozzászólás Szerző: csegebiga »

Azt kell megnézni, hogy az avr chip nagyimpedanciás bemenet lesz-e, ha bemenetre programozod a lábat? (magyarán nem húzza semelyik irányba a bemeneti lábat?)
azzal játszik a fenti kapcsolás, hogy két pin közötti led nem világít, ha led valamelyik vége nem h vagy l állapotú pinen van, hanem nagyimpedinceás bemeneten lóg.
a 4 pin mindegyik variációja megtalálható a kapcsolásban. valamelyik pinre h, és egy másikra l kapcsolása után egy és csak egy led gyullad ki. a többi pin bemenetként megy ilyenkor.

valahogy így:

Kód: Egész kijelölése

led  | 0  1  2  3  4  5  6  7  8  9  10 11
-------------------------------------------
pin0 | H  L  BE BE BE BE H  L  H  L  BE BE
pin1 | L  H  H  L  BE BE BE BE BE BE H  L
pin2 | BE BE L  H  H  L  L  H  BE BE BE BE 
pin3 | BE BE BE BE L  H  BE BE L  H  L  H
-------------------------------------------
Avatar
csegebiga
Chipgyilok
Hozzászólások: 288
Csatlakozott: 2015. március 27. péntek, 21:27

Re: Sok LED vezérlése kevés lábon

Hozzászólás Szerző: csegebiga »

természetesen a belső felhúző ellenállásokat ki kell kapcsolni :)
még az a kérdés, hogy az arduino rendszer engedi-e a pinmode (gyors) állítgatását menet közben?
Avatar
csabeszq
Bitfaragó
Hozzászólások: 678
Csatlakozott: 2012. szeptember 5. szerda, 6:00

Re: Sok LED vezérlése kevés lábon

Hozzászólás Szerző: csabeszq »

Nálam 100-200 LED-et kellene vezérelni Arduino alatt, ezeket a módszereket is átnéztem és arra jutottam, hogy inkább nem ügyeskedek.

A legtöbb esetben a baj ugye az. hogy kevés a kakaó. Például egy shift regiszter (74HCT595) max 70mA-t tud gyárilag leadni, tehát 8 LED 10mA-s kapcsolására nem alkalmas.
Végül a TLC5940-es IC-t választottam, ami 16 LED-et tud kapcsolni, akár 120mA-rel is csatornánként. Emellett a 16 LED-nek 1 felhúzó ellenállás kell, a többi áramtükörrel megy.

Beállítható rajta, hogy hány százalékos PWM-et adjon ki csatornánként és kiolvasható vele, hogy melyik PIN-re van valami csatlakoztatva. Kaszkádolható is, szóval meg lehet vele hajtani simán 200 LED-et is.
Gorrodin
SzínkódFestő
Hozzászólások: 76
Csatlakozott: 2014. július 10. csütörtök, 19:54

Re: Sok LED vezérlése kevés lábon

Hozzászólás Szerző: Gorrodin »

Ez a kapcsolás arra lenne jó, hogy nem kell sok kakaó, mivel csak 1 leden folyik áram egyszerre. Magyarul, minden körítés nélkül lehet 56 ledet vazérelni. Ha elég gyors a panel, akár komplett képet is láthatsz. Persze úgy tűnik, hogy nem az Arduinora találták ki ezt a módszert. A PIC-en 1 bájton lehet kezetni a 8 pint, így sokkal egyszerűbb, és főleg gyorsabb a kód. Talán ha az AVR-t programozom, itt is mehet, de azt még nem csináltam.
Avatar
csabeszq
Bitfaragó
Hozzászólások: 678
Csatlakozott: 2012. szeptember 5. szerda, 6:00

Re: Sok LED vezérlése kevés lábon

Hozzászólás Szerző: csabeszq »

Ez nem biztos, hogy működne. Ha 56 LED-et akarsz vezérelni 10mA-n, ahhoz 560 mA áram kell, amit egy AVR IC nem tud számukra biztosítani.
Ha kisebb kakaóval multiplexelve adod, akkor átlag 3mA-es terhelés fér még bele, ami időben egy LED-re juthat. Ilyenkor nem léped át a chip 200mA-es korlátját.

Hidd el nekem, hogy ha egy LED-et 3mA-rel vezérelsz, akkor kisebb a fénye, mintha 10mA-t kapna.

Ha persze nem zavar, hogy halványan világítanak a LED-ek, akkor nem baj. Harmad akkora teljesítményt adsz rájuk, mint ami a nagy könyvben le van írva.

Persze ha az 56 LED-ből nem világít egyszerre mind, akkor megoldható. Nálam ez a feltétel nem volt adott.
Avatar
SanyiSay
Elektronbűvölő
Hozzászólások: 1031
Csatlakozott: 2009. február 28. szombat, 7:00

Re: Sok LED vezérlése kevés lábon

Hozzászólás Szerző: SanyiSay »

Képeken 4, 6, 56 ledre a vezérlés.
...ha másra nem, majd Jó lesz halvány éjszakai csillagos égboltnak a plafonon. :D

https://onedrive.live.com/?authkey=%21A ... EE0158403F
Avatar
winnerbt
Elektronbűvölő
Hozzászólások: 907
Csatlakozott: 2007. március 25. vasárnap, 6:00

Re: Sok LED vezérlése kevés lábon

Hozzászólás Szerző: winnerbt »

Ne is mondd, a Zaszony 1 éve könyörög a csillagos égboltért... :)
Avatar
SanyiSay
Elektronbűvölő
Hozzászólások: 1031
Csatlakozott: 2009. február 28. szombat, 7:00

Re: Sok LED vezérlése kevés lábon

Hozzászólás Szerző: SanyiSay »

Az égbolt már kész, csak az ágy van rossz helyen. :)
Gorrodin
SzínkódFestő
Hozzászólások: 76
Csatlakozott: 2014. július 10. csütörtök, 19:54

Re: Sok LED vezérlése kevés lábon

Hozzászólás Szerző: Gorrodin »

csabeszq, mit nem értesz azon, hogy egyszerre 1 világít? Miért kéne 1 lednek fél amper?
Avatar
SanyiSay
Elektronbűvölő
Hozzászólások: 1031
Csatlakozott: 2009. február 28. szombat, 7:00

Re: Sok LED vezérlése kevés lábon

Hozzászólás Szerző: SanyiSay »

Csak akkor kell a rettenetes áram ha álló képet szeretnél látni, (mintha mind világítana) ha csak egy egy led világít folyamatosan akkor nem kell. Mert: 1 led, 1 fix árammal 1 idő alatt lead 1 fényt, akkor 56 led, 1 árammal, 1 idő alatt ledenként csak 1/56 áram jut és abból csak 1/56-od fénye lesz. Mint a képeimen is látszik.
Szerintem. :)
Avatar
csabeszq
Bitfaragó
Hozzászólások: 678
Csatlakozott: 2012. szeptember 5. szerda, 6:00

Re: Sok LED vezérlése kevés lábon

Hozzászólás Szerző: csabeszq »

Igaz is meg nem is. A LED fényereje a rajta leadott energiával arányos.

Ha egy 2.5V nyitófeszültségű LED-en 10 mA megy át, akkor 25mW teljesítményt ad le, részben világításként, részben hőként.
Ha te multiplexelsz, akkor 1/56-od idő jut a LED bekapcsolására. Durva számítással 25mW/56 (=~ 0.5 mW) energia lesz a LED-en leadva, amit természetesen fel fog tűnni, mert látni fogod hogy kissé másképpen világít.

Mi a megoldás? Nem 10mA-t, hanem 560 mA-t kell keresztül-nyomni a LED-en, hogy ugyanazt a fényerőt kapd. Ez persze elvi szintű, mert a mezei LED kinyiffan 560 mA áramtól.
Gorrodin
SzínkódFestő
Hozzászólások: 76
Csatlakozott: 2014. július 10. csütörtök, 19:54

Re: Sok LED vezérlése kevés lábon

Hozzászólás Szerző: Gorrodin »

Térjünk vissza az eredeti kérdéshez.
Meg lehet csinálni Arduinoval?
Válasz küldése