Proiectul constă în implementarea și comandarea unei matrice de LED-uri RGB și în parsarea de mesaje transmise prin Bluetooth pentru afișarea acestora.
Pentru a nu arde regiștrii, m-am documentat, am calculat și am ajuns la concluzia că un tranzistor este suficient pentru fiecare ieșire de la regiștrii, iar matricea are nevoie de alimentare de la o sursă separată de Raspberry.
Am conectat microcontroller-ul ATmega328p la un Raspberry Pi 3B prin intermediul pinilor GPIO și am folosit un cristal de cuarț de 16MHz.
Cele 4 shift register-uri sunt conectate în configurație daisy chain, primul fiind cel care controlează tranzistorii pentru anozi.
In functia shift_data_out, pe rising edge al clock-ului, se shifteaza un byte bit cu bit pe portul legat la portul de input al primului shift register din circuit.
Functia blink aprinde si stinge toate ledurile de n ori.
Functia serial parseaza inputul primit, iar in functie de acesta se trimit biti pe iesire si se inchide/deschide latch-ul.
Lipiturile slabe sunt spaima componentelor.
Componentele low level vin cu problemele lor, din aceasta cauza folosirea unui microprocesor MAX7219 impreuna cu o matrice de LED-uri fabricata reduce complexitatea proiectului exponential.
Am îndoit pinii de la LED-uri roșu, verde si albastru pe orizontală, iar anod-ul pe verticală.
Am lipit LED-urile.
LED-urile nu au venit cu datasheet așa că am testat dacă la valorile calculate pentru rezistențe culoarea va fi albă.
Matricea în funcțiune.