This shows you the differences between two versions of the page.
pm:prj2021:alazar:smart_wireless_display [2021/05/31 12:03] cristian.lungeanu [Hardware Design] |
pm:prj2021:alazar:smart_wireless_display [2021/06/03 22:21] (current) cristian.lungeanu [Download] |
||
---|---|---|---|
Line 17: | Line 17: | ||
===== Hardware Design ===== | ===== Hardware Design ===== | ||
== Componente necesare == | == Componente necesare == | ||
+ | * 1 × Raspberry Pi | ||
* 1 × ATmega328P | * 1 × ATmega328P | ||
* 4 × 74HC595 (Shift Regiser) | * 4 × 74HC595 (Shift Regiser) | ||
* 1 × LM2940x (Low Dropout Regulator) | * 1 × LM2940x (Low Dropout Regulator) | ||
- | * 1 × HC-05 (Bluetooth Module) | ||
* 64 × LED RGB 4p Anod comun | * 64 × LED RGB 4p Anod comun | ||
* 32 × 2N2222A (Tranzistor NPN) | * 32 × 2N2222A (Tranzistor NPN) | ||
+ | |||
+ | 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. | ||
+ | {{:pm:prj2021:alazar:cristian_lungeanu:transistor.png?720x0|PNP}} | ||
{{:pm:prj2021:alazar:cristian_lungeanu:hardware_design.png?720x0|Schema Hardware}} | {{:pm:prj2021:alazar:cristian_lungeanu:hardware_design.png?720x0|Schema Hardware}} | ||
+ | |||
+ | |||
+ | 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. | ||
+ | {{:pm:prj2021:alazar:cristian_lungeanu:jurnal:4-atmega+anode.jpg?nolink&720 |ATmega328p}} | ||
+ | {{:pm:prj2021:alazar:cristian_lungeanu:jurnal:4-rgb.jpg?nolink&720 |Shift Registers}} | ||
===== Software Design ===== | ===== Software Design ===== | ||
+ | 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. | ||
+ | |||
+ | {{pm:prj2021:alazar:cristian_lungeanu:matrix.txt}} | ||
===== Rezultate Obţinute ===== | ===== Rezultate Obţinute ===== | ||
+ | |||
+ | [[https://drive.google.com/file/d/1XltqNVPqXLsxzNGS6LWnbKL7_CRMLVPA/view|Video Demo]] | ||
===== Concluzii ===== | ===== Concluzii ===== | ||
+ | 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. | ||
===== Download ===== | ===== Download ===== | ||
+ | |||
+ | |||
+ | <html><a class="media mediafile mf_zip" href="https://drive.google.com/file/d/10w4PyR9-9MruxtuZLdQtL4xfKyxC-2TB/view?usp=sharing">Descarcă arhiva</a></html> | ||
===== Jurnal ===== | ===== Jurnal ===== | ||
+ | Am îndoit pinii de la LED-uri roșu, verde si albastru pe orizontală, iar anod-ul pe verticală. | ||
+ | {{ pm:prj2021:alazar:cristian_lungeanu:jurnal:1-leduri.jpg?nolink&720 |LED-uri}} | ||
+ | |||
+ | Am lipit LED-urile. | ||
+ | {{ pm:prj2021:alazar:cristian_lungeanu:jurnal:2-leduri-lipite.jpg?nolink&720 |LED-uri lipite}} | ||
+ | |||
+ | LED-urile nu au venit cu datasheet așa că am testat dacă la valorile calculate pentru rezistențe culoarea va fi albă. | ||
+ | {{ pm:prj2021:alazar:cristian_lungeanu:jurnal:3-led-res.jpg?nolink&720 |LED China}} | ||
+ | |||
+ | Matricea în funcțiune. | ||
+ | {{ pm:prj2021:alazar:cristian_lungeanu:jurnal:5-matrix-on.jpg?nolink&720 |Matrice}} | ||
===== Bibliografie/Resurse ===== | ===== Bibliografie/Resurse ===== | ||
- | [[pm:prj2021:alazar:smart_wireless_display?do=export_pdf|Exportă ca PDF]] | + | [[http://www.pcbheaven.com/userpages/LED_driving_and_controlling_methods/|LED driving and controlling methods]]\\ |
+ | [[https://lastminuteengineers.com/74hc595-shift-register-arduino-tutorial/|How 74HC595 Shift Register Works]]\\ | ||
+ | [[https://www.youtube.com/watch?v=f-Tx4RvKL0o|ATMEGA328P AVR (Arduino) Programming via GPIO (SPI)]]\\ | ||
+ | [[https://www.ti.com/lit/ds/symlink/sn74hc595.pdf|74HC595 Datasheet]]\\ | ||
+ | |||
+ | |||
+ | <html><a class="media mediafile mf_pdf" href="?do=export_pdf">Exportă ca PDF</a></html> |