Sari la conținut

Cub LED-uri


adry

Postări Recomandate

Vreau sa realizez un cub cu leduri, similar cu acesta: https://www.youtube.com/watch?v=6mXM-oGggrM, doar ca de dimensiunile 4x4x4 (ceea ce inseamna 64 led-uri).

Pentru a usura comanda acestuia, voi folosi un procedeu de multiplexare, asa ca voi avea nevoie de 16 terminale de control. Ledurile vor fi actionate cate unul pe rand (de altfel, asa sunt actionate si in clipul dat de mine), la o frecventa foarte mare, creeand iluzia ca sunt mai multe aprinse.

Cele 16 terminale de control sunt impartite in 2 grupuri de 8 (A-H si 1-8). Pentru aprinderea unui led, trebuie sa fie in starea logica 1 cate un terminal din fiecare grup.

Acum problema mea este ca as dori sa controlez acest montaj cu ajutorul computerului, mai exact prin portul paralel. Interfatarea cu portul paralel si controlul acestuia nu este o problema, intrucat o am deja. Problema e ca portul paralel are 8 iesiri. Acum intrebarea e...exista vreo metoda analogica (stiu...cel mai elegant ar fi sa folosesc un microcontroller, dar inca nu prea ma simt in stare de asta), prin care sa pot controla cubul? mentionez ca as putea sa mai fac o multiplexare, reducand numarul de terminale necesare la 12, dar marind necesarul de terminale active pentru aprinderea unui led la 4.

post-566-0-88129500-1344883140_thumb.jpg

Link spre comentariu
Distribuie pe alte site-uri

Ca sa conectezi o matrice de leduri 8 x 8 la portul paralel trebuie sa folosesti un integrat de genul MAX6960, MAX7219 sau MAX6963:

http://datasheets.ma...960-MAX6963.pdf

sau un HT1632C. Dupa aceea trebuie sa lucrezi intens la soft si la modul de interconectare intre LPT si matrice.

La final o sa constati ca era mult mai simplu daca utilizai un microcontroler:

 

post-7268-0-97769400-1344884816_thumb.jpeg post-7268-0-82230900-1344884877_thumb.jpg

 

Softurile pentru PC si PIC:

pic soft.txt

pc side soft Python Code.txt

 

:music_drums:

Link spre comentariu
Distribuie pe alte site-uri

Daca as avea o matrice de 4x4, as putea sa o controlez fara complicatii, legand direct terminalele la interfata cu portul. Problema e ca la 8x8 e putin mai complicat. Ideea e ca nu am nevoie de nu stiu ce softuri sau integrate specializate, ci doar de starea 0 si 1 pe terminalele de control. Si intrebarea era daca pot realiza in mod analogic comang celor 12 sau 16 terminale (as prefera 16 pentru ca e mai simplu, dar nu e o problema sa fac cu 12).

Link spre comentariu
Distribuie pe alte site-uri

Nu m-ai inteles.

 

Uitate la schema cu PIC pe care am atasat-o mai sus. Acum imagineaza-ti ca porturile PIC-ului sunt porturile de date ale portului paralel. CD4017 il lasi asa cum e in schema. Bun, trebuie sa concepi o metoda sa simulezi clock si reset la CD4017. Nu am incercat dar cred ca pinii astia merg simulati cu iesirile 14...17 de la portul paralel. Dar trebuie sa vezi cum pot sa faci asta software.

 

Succes.

Link spre comentariu
Distribuie pe alte site-uri

Am inteles ca nu discutam despre matrici 8x10, ci despre un cub cu 4x4x4 LED-uri. Fiecare LED are trei coordonate: linie, coloana si strat si doua borne de alimentare + si -. Intr-un strat se leaga 16 LED-uri cu bornele + la linii si cu bornele - la coloane. Intr-un strat pot fi aprinse oricate LED-uri si in orice configuratie, aplicand un cuvant de 4 biti la linii si altul (in logica inversa) la coloane, fara multiplexare. Se pot folosi in acest scop doua jumatati ale portului de date ale LPT (4 biti pentru linii si 4 pentru coloane) configurat ca port de iesire. Toate liniile de comanda vor fi "intarite" cu cate un tranzistor repetor, PNP la linii si NPN la coloane. Borna de alimentare cu minus a tuturor tranzistoarelor NPN din fiecare strat va fi multiplexata cu cate un tranzistor NPN comandat de 4 biti din portul de comenzi al LPT (are 3 porturi: Date, Comenzi si Status, cu adrese diferite). Cuvantul de comanda a multiplexarii trebuie sa aiba un singur bit in 1 si restul in 0 (1000, 0100, 0010 sau 0001). Circuitul de alimentare a cubului se alimenteaza la 5 V cu borna minus la masa calculatorului. Se poate alimenta si dintr-o mufa USB care poate duce pana la 0,5 A, sau din doua in paralel. In serie cu fiecare LED se leaga un rezistor pentru limitarea cuentului (de ex. 120 ohmi). In plus schema mai necesita cele 12 tranzistoare si rezistoarele lor de baza (de ex. 1 kiloohm), deci mai simplu decat un microcontroler. Programul din PC va incepe si se va termina cu comanda 0000 pe iesirile de multiplexare a straturilor pentru ca toate LED-urile sa fie stinse. Pentru a obtine o imagine mobila se transmit succesiv adresa unui strat pe 4 biti la portul de comenzi, cuvantul de configurare a stratului pe 8 biti (linii plus coloane) la portul de date, o pauza sub 10 ms, adresa urmatorului strat, etc. Programarea unei imagini mobile este laborioasa, de aceea ar trebui scris in prealabil un program de programare grafica. Cubul se reprezinta in perspectiva cu fiecare LED ce poate fi aprins sau stins cu un click. Cand arata bine, cuvintele de comanda se trec intr-o baza de date folosita de programul de comanda a cubului. La rulare se pot folosi, dupa dorinta, una sau mai multe baze de date.

Mult succes!

Link spre comentariu
Distribuie pe alte site-uri

dan, adry,

 

M-am uitat la clipul de pe YouTube. Acum am inteles mai bine ce anume vrei sa faci.

 

dan, daca ai sa te uiti la clipul de pe YouTube ai sa vezi ca daca la 8x8x8=512leduri, la 4x4x4=64leduri. Deci, are dreptate adry.

 

adry, cubul respectiv nu poti sa-l emulezi cu portul paralel, nu e suficient, iti mai trebuie niste circuite adiacente, spre exemplu un Atmega16 sau 32 cum a folosit individul ala in clip. Plus, pe langa astea iti mai trebuie niste integrate de expandare a porturilor microcontrolerului. Ai putea incerca, dar nu sunt sigur daca merge, sa expandezi cu integratele alea portul paralel al PC-ului, dar nu e prea greu, pentru ca trebuie sa jonglezi pe mai multe axe. Te-ai uitat aici:

http://www.instructa...8x8x8/?ALLSTEPS

Editat de prog
Link spre comentariu
Distribuie pe alte site-uri

Solutia data de domnul puriu este mai buna decat cea gasita de mine. Eu vroiam sa fac o matrice de 8x8 pe care sa o impart in 4 submatrici pe care sa le supapun. Asta ar fi complicat oarecum comanda (deoarece ledurile nu aveau niste coordonate bine precizate) dar problema e ca ar fi fost nevoie de 16 terminale, care se pot multiplexa sa ajung la 12. Cu solutia data de domnul puriu, am 12 terminale foarte simplu.

Alta intrebare, pot folosi portul de comenzi ca output, si asfel sa am 12 pini output pe portul paralel?

Link spre comentariu
Distribuie pe alte site-uri

donpetru, foarte misto a iesit schema, dar eu am niste retineri in privinta utilizarii pinilor de control a portului paralel. Nu stiu daca vor putea fi utilizati ca pini de clock si intrarii pentru pinii A, B, C.

Editat de prog
Link spre comentariu
Distribuie pe alte site-uri

Pinii de control se pare ca pot fi folositi, numai ca 3 dintre ei sunt inversati (daca in registru am 0, pe pin am 1) ceea ce duce la o oarecare neplacere dar nu e un impediment major.

Daca fac alimentarea de la 5V, cum se modifica schema? renunt la partea de alimentare pana la condensatorul C6?

Link spre comentariu
Distribuie pe alte site-uri

Nu trebuie sa renuntati la condensatorul C6 daca folositi o alimentare separata de +5Vcc (spre exemplu de la o sursa PC). Renuntati doar la componentele din amonte pana la C6.

 

Referitor la ajustari, astazi am vazut o mica greseala si anume: pinii D4...D7 de la ambele 74HCT754 nu trebuie sa ramana liberi, ci va trebui sa fie legati de traseele D0...D3 ale aceluias integrat. Sau, aici trebuie facute cateva teste, s-ar putea sa fie nevoie sa mai folositi 2 buc. 74HCT754, care sa preia coloanele E, F, G, H si M, N, O, P, asemenea integratelor U2 si U3. Apoi pinii CP a acestor integrate vor trebui sa faca legatura cu pinii Y2 si Y3 ale 74HC138.

Deci, corectarea greselii presupune doua solutii: folosirea a doua 74HCT754 suplimentare (deci in total vor fi 4 buc.) sau utilizarea pinilor D4...D7 ramasi liberi de la actualele exemplare 74HCT754. Alegerea unei solutii din cele doua mentionate anterior se va face si dupa o analiza prealabila a pseudocodului pe baza caruia se va concepe soft-ul. Daca soft-ul se poate concepe mult mai usor pentru prima solutie (cea in care se va folosi cele doua 74HCT754 existente), atunci se poate merge practic pe aceasta varianta, in caz contrar se va aplica a doua solutie.

 

O sa incerc in cursul zilei de astazi sa revin cu o schema sau doua care sa cuprinda ambele solutii.

Link spre comentariu
Distribuie pe alte site-uri

Si cele doua solutii de care va spuneam mai sus:

Led cub 4x4x4 - solutia 1.pdf

Led cub 4x4x4 - solutia 2.pdf

 

Mai trebuie luat in considerare si posibilitatea micsorarii valorii grupurilor de rezistoare R1, R2, R7 si R8 pana la 500 Ohm pe fiecare rezistenta. Acest lucru se va stabili in faza de alegere a ledurilor.

 

Numai bine

  • Like 1
Link spre comentariu
Distribuie pe alte site-uri

Multumesc pentru scheme.

In cazul folosirii unor leduri albe, 1k pentru rezistente ar fi de ajuns?

Si din curiozitate, care este rolul condensatorului C6, sau in general, rolul acestor condesatori legati direct la masa?

Link spre comentariu
Distribuie pe alte site-uri

Masurati curentul absorbit de led alimentat printr-o rezistenta serie de un 1K la 5Vdc. Vedeti in acest caz daca ledul lumineaza corespunzator. Daca totul e OK, atunci ramaneti la 1K, daca nu, incercati sa folositi rezistente de valoare mai mica.

 

editare ulterioara: Condensatoarele de 100nF de pe alimentarea fiecarui integrat decupleaza corespunzator alimentarea circuitelor sau altfel spus, asigura performante tranzitorii, fara a da posibilitatea integratelor sa se perturbeze in functionare unele pe altele (afirmatia e cu atat mai valabila cu cat frecventa de functionare devine mai mare). Condensatorul de 470uF este un filtraj local a riplului tensiunii de alimentare.

Link spre comentariu
Distribuie pe alte site-uri

Creează un cont sau autentifică-te pentru a adăuga comentariu

Trebuie să fi un membru pentru a putea lăsa un comentariu.

Creează un cont

Înregistrează-te pentru un nou cont în comunitatea nostră. Este simplu!

Înregistrează un nou cont

Autentificare

Ai deja un cont? Autentifică-te aici.

Autentifică-te acum
  • Navigare recentă   0 membri

    • Nici un utilizator înregistrat nu vede această pagină.
×
×
  • Creează nouă...

Informații Importante

Folosim cookie-uri și tehnologii asemănătoare pentru a-ți îmbunătăți experiența pe acest website, pentru a-ți oferi conținut și reclame personalizate și pentru a analiza traficul și audiența website-ului. Înainte de a continua navigarea pe www.tehnium-azi.ro te rugăm să fii de acord cu: Termeni de Utilizare.

ATENTIE !!! Functionarea Tehnium Azi depinde de afisarea de reclame.

Pentru a putea accesa in continuoare site-ul web www.tehnium-azi.ro, va rugam sa dezactivati extensia ad block din browser-ul web al vostru. Dupa ce ati dezactivat extensia ad block din browser dati clic pe butonul de mai jos.

Multumim.

Apasa acest buton dupa dezactivarea extensiei Adblock