Készítette: Téglás Tamás
A projectről röviden
Az előző félévben indult (2009 ősz) TTL keretein belül többen is neki indultunk a rögös útnak melyen megismerkedhettünk az AVR-ek világával. Az alap ötlet egy tesztpanel elkészítése volt, melyet később LED kockává alakíthatunk át.
A célom ezzel a projecttel:
- ha valaki hasonlót szeretne csinálni legyen mire támaszkodni
- saját magamat képezzem az AVR programozásban
- egy olyan eszköz elkészítése amit csodálhatnak az emberek8-)
- újonc project
LED-cube
A kockát úgy kell elképzelni, mintha mátrixokat helyeznénk el egymás mögé, így kialakítva a 3D-s kijelzőt. Például
Alkatrészek
Amit én felhasználtam:
- LED 125 db
- 100 ohmos ellenállás 25 db
- 300 ohmos ellenállás 5 db
- 1k-s ellenállás 1 db
- tranzisztor(NPN), 30V, 800mA, B=100 5 db
- táp szűrő kondi: 100nF 3 db
- ATmega64A-AU 1 db
- 1117as5 stab. IC 1 db
- 100uF-os puffer kondi 1 db
Az összeépítés menete
Az első lépés
Az építést a ledek lábainak hajtogatásával kezdtem. A ledeket előszőr szintenként, majd a szinteket kell egymáshoz forrasztani. Az első probléma ami felmerült: a 25 db ledet összeforrasztani a levegőben elég nehéz így ajánlott egy sablon elkészítése.
Mikor már készen vannak a szintek össze lehet forrasztani a szinteket is. FONTOS: jó tanácsként érdemes megfogadni, hogy a ledek forrasztgatása közben mindig tesztelni kell!!! Ha minden jól megy ezek után kész a LED kocka.
Összefoglalva a főbb lépések:
- led lábak hajtogatása
- szintek összeforrasztása
- a szintek egymáshoz illesztése
Mikor kész a kocka
Kész a remekmű 😀 . Ha mindent jól csináltunk, akkor a szinteknek egy-egy kivezetése lesz (össz. 5 db), míg az oszlopoknak is egy-egy kivezetése lesz (össz. 25 db). Ezekkel csatlakozva a kontrollerre tudjuk majd villogtatni a led-eket. A kocka elkészítése után érdemes erősen elgondolkodni a ledek meghajtásáról. Mivel kontrollerrel hajtjuk meg őket ezért érdemes tranzisztorokat használni a szintek meghajtásánál (25 db led meghajtásáról nem biztos, hogy egy kontroller gondoskodni tud). Végeredményben sikerült úgy összehoznom a vezérlést, hogy a kontroller programozásánál 1-t kell adni arra a kimenetre amelyiket be szeretnénk kapcsolni, legyen az egy szinté vagy épp egy oszlopé.
A programozás
Programozás szempontjából úgy kell tekinteni a led-kockát mintha 5 digites 25 szegmenses kijelző volna, de a szegmensek össze vannak kötve, így multiplexálás szükséges ahhoz hogy valamit megjelenítsünk. Ha sikerül ezt a szemléletet elsajátítani, akkor csak a képzelet és a megfelelő programozói tudás szab határt annak, hogy épp mit jeleztetünk ki vele.
A program lelke:
A vezérlést egy statikusan letárolt tömbbel oldottam meg, mely egy 5×5-ös byte méretű elemeket tartalmazó tömb. Egy-egy elem egy-egy oszlopnyi lednek felel meg. A programkód olyan formátumban lett megírva, hogy ha változik a lábkiosztás akkor csak egy függvényt kelljen módosítani.
Project fejleszthetőségi opciói
Mivel a megvalósításom viszonylag pocsék ledekkel lett megvalósítva ezért lehetséges, hogy kontrollerrel legyen meghajtva az egész kocka. Így az egyik opció a fejlesztésre: normális ledek(diffúz) meghajtása tranzisztor mezővel és latch-el vagy a latch helyett alkalmazható shiftregiszter is(mcu lábspórolás szempontjából). A másik esetleges opció a bonyolultság növelése: hasonló kocka RGB LED-ekkel. Ennek egyik lehetséges megvalósítása shiftregiszteres megoldás.
Kapcsolási rajz:
Nyákterv:
Letölthető források: led_kocka