This is an old revision of the document!


Panou de afisaj pe matrici LED

Autor: Serban Alexandru-George

Grupa: 335CBb

Introducere

Prezentarea pe scurt a proiectului:

  • Panou format din 8 matrici 8 x 8 LED-uri.
  • Permite afisarea de mesaje transmise prin bluetooth din smartphone sau preluate din SD card, respectiv ora exacta.
  • Este util pentru vizualizarea de informatii in diverse locuri publice in conditii naturale de iluminare.
  • Sursele de informatii afisate sunt diverse si pot fi schimbate cu usurinta.

Descriere generală

Schema bloc a proiectului este urmatoarea (realizata cu https://app.diagrams.net/):

Panoul este format din 8 matrici 8 x 8 LED-uri si permite afisarea prin scroll stanga de mesaje transmise prin bluetooth sau serial monitor, preluate din SD card, respectiv ora exacta. Mesajele se pot salva pe un microSD introdus in modulul SD card.

In componenta proiectului intervin:

- un modul Arduino (Mega 2560);

- panou cu 8 matrici 8 x 8 LED-uri;

- un modul Bluetooth HC-05;

- un modul ceas de timp real DS3231;

- un modul SD card;

- sursa de alimentare 5V 2A.

Panoul cu 8 matrici 8 x 8 LED-uri foloseste cate un circuit MAX7219 pentru comanda fiecarei matrici de 8 x 8 LED-uri. Panoul este conectat prin interfata SPI cu modulul Arduino. Afisarea mesajelor se face prin scoll (deplasare) stanga. Prin comenzi interpretate de modulul Arduino si care provin fie de la un telefon conectat bluetooth, fie prin folosirea serial monitor, se vor putea modifica parametrii mesajelor afisate: schimbarea vitezei de deplasare a textului afisat, a intensitatii luminose a LED-urilor din panou, dar si afisarea video invers (stingerea pixelilor normal aprinsi si aprinderea celor normal stinsi).

Modulul Bluetooth HC-05 este folosit pentru conectarea cu un telefon (Android) care dispune de bluetooth si permite transmisia de comenzi si mesaje catre Arduino cu afisare pe panoul de LED-uri. Modulul bluetooth este conectat prin interfata UART cu Arduino. Se vor putea seta prin comenzi transmise prin Bluetooth sau folosind serial monitor urmatorii parametri:

- viteza de deplasare a textului (scroll stanga);

- intensitatea luminoasa a LED-urilor pe care se afiseaza mesajele;

- afisarea pe video invers.

Ca aplicatie pe telefon (Android) poate fi folosita Serial Bluetooth Terminal.

Modulul ceas de timp real DS 3231 permite actualizarea permanenta a orei exacte si a datei, functionarea in absenta tensiunii de alimentare de la sursa externa de 5V datorandu-se unei baterii locale de tip CR2032 aflata pe modul. Modulul ceas de timp real este interfatat I2C cu modulul Arduino. Ceasul de timp real va putea fi interogat de Arduino, iar informatia obtinuta (ora, data) va fi afisata pe panoul de LED-uri. Initial, ora exacta la ceasul de timp real va putea fi setata prin comanda transmisa de modulul Arduino. Suplimentar, modulul ceas de timp real ofera si informatii despre temperatura, care va fi afisata pe panoul de LED-uri. Modulul RTC contine si un senzor de temperatura care ofera informatii in acest sens. Comenzile de interogare si de setare a modulului ceas de timp real provin de la telefonul conectat bluetooth, dar si de la serial monitor.

Modulul SD card permite operarea cu un microSD card. Modulul SD card este interfatat SPI cu Arduino. Comenzile executate de catre Arduino asupra modulului SD card sunt:

- citirea unui fisier aflat pe microSD card si transmiterea continutului acestuia in vederea afisarii pe panoul de LED-uri;

- scrierea unui fisier pe SD card, cu denumirea fisierului si continutul acestuia;

- stergerea unui fisier aflat pe SD card;

- listarea fisierelor aflate pe SD card (se va face pe telefonul conectat prin Bluetooth, dar si la serial monitor).

Toate aceste comenzi provin de la telefonul conectat bluetooth sau prin folosirea serial monitor.

Sursa de alimentare 5V 2A permite functionarea panoului de afisaj in locurile destinate expunerii, fara necesitatea folosirii unui laptop/PC. Sursa trebuie sa acopere consumul solicitat indeosebi de cele 8 matrici de LED-uri.

Hardware Design

  • Listă de piese:
  1. 1 Modul Arduino
  2. 1 Modul Bluetooth HC-05/06
  3. 1 Modul Ceas de timp real DS 3231
  4. 1 Modul SDCard
  5. 8 Matrici LED 8 x 8 cu MAX 7219
  6. 1 Sursa de putere 5V / 2A
  7. 1 Cablaj de test 300 x 180 mm
  8. 4 Headere mama, tata
  9. 2 Rezistente (22k si 10k)
  10. 1 pereche conectori mama. tata cu surub de tip 5,5 x 2,1
  11. 5 Suruburi si piulite plastic pentru prinderea modulelor pe placa de test
  12. 2m Fire conexiuni

Primul pas in realizarea proiectului a constat in realizarea unui montaj de test cu modulele implicate (folosind breadboard si fire dupont) si efectuarea de teste software.

S-a inceput cu interfatarea matricilor de LED-uri la Arduino folosind interfata SPI si afisarea de mesaje.

S-a continuat cu conectarea modulului bluetooth HC-05 la Arduino prin interfata UART si transmiterea de mesaje de la acesta catre matricile de LED-uri. S-a avut in vedere ca modulul bluetooth, desi alimentat la +5V, are pinii Tx si Rx compatibili cu nivelele de tensiune specifice alimentarii cu +3,3V. Din acest motiv pe intrarea Rx a modulului este conectat un divizor format din 2 rezistente de 10k si 22k care are rolul de a translata nivele logice specifice alimentarii de +5V pentru semnalele care vin de la Arduino in nivele logice specifice alimentarii cu +3,3V pe intrarea RX de la HC-05. In sens invers, de la pinul Tx al modulului HC-05 catre Arduino nu este nevoie de translatare de nivel logic, intrarea de la Arduino preluand corect respectivele nivele logice ale semnalelor transmise.

A urmat conectarea modului RTC DS3231 la Arduino prin interfata I2C cu preluarea informatiilor gestionate de RTC.

In final, s-a conectat modulul SD Card la Arduino prin interfata SPI cu implementarea operatiilor la nivelul microSD Card-ului.

Pentru proiectare s-a folosit mediul Fritzing (versiunea gratuita 0.9.3) care are avantajul ca modulele folosite in proiect prezinta o reprezentare grafica apropiata de cea reala.

A rezultat schema hardware a montajului prezentata in figura urmatoare, dispunerea componentelor folosite fiind similara cu cea din realizarea practica:

Tot in Fritzing s-a realizat si o schema electrica, prezentata in figura urmatoare:

Software Design

  • Mediul de dezvoltare folosit: Arduino IDE
  • Biblioteci folosite:

MD_Parola - implementeaza functii pentru afisarea de texte pe matricile LED cu folosirea circuitului MAX7219

MD_MAX72XX - implementeaza functii care permit sa se utilizeze circuitele MAX7219, 7221 pentru actionarea matricilor de LED-uri

SPI - implementeaza functii pentru interfata SPI

Wire - implementeaza functii pentru interfata I2C

SD - implementeaza functii pentru lucrul cu SD card

DS3231 - implementeaza functii pentru operarea cu circuitul RTC DS3231

  • Sumarul comenzilor implementate in software-ul realizat

#0<ENTER> afisarea orei exacte, a datei si a temperaturii citite de la RTC;

#1 ‘mesaj’<ENTER> transmisia unui mesaj pentru afisare la panoul de LED-uri;

#2 v ‘mesaj’<ENTER> transmisia unui mesaj de la serial monitor sau bluetooth pentru afisare la panoul de LED-uri cu specificarea viteza deplasare text (v = 0 … 99);

#3 v<ENTER> schimbarea vitezei de deplasare stanga a textului afisat pe panoul de LED-uri (v = 0 … 99);

#4 i<ENTER> schimbarea intensitatii luminoase a LED-urilor (i = 0 … 15);

#5 ‘nume fisier’<ENTER> citirea unui fisier de pe microSD card si afisarea acestuia pe panoul de LED-uri;

#6 ‘nume fisier’ ‘mesaj’<ENTER> scrierea unui mesaj ca fisier pe microSD card;

#7<ENTER> listarea fisierelor aflate pe SD card (in directorul radacina) la telefonul conectat Bluetooth si la serial monitor;

#8 ‘nume fisier’<ENTER> stergerea unui fisier de pe microSD card;

#9 HH MM SS DD MM YY<ENTER> setarea orei exacte la RTC;

#10<ENTER> afisare pe video invers.

Rezultate Obţinute

Montajul realizat initial prin folosirea breadboard-ului si conectarea prin fire Dupont a modulelor bluetooth, RTC DS3231 si SD card, respectiv Arduino este urmatorul:

Montajul final, realizat pe placa de test, avand componentele si conexiunile intre ele lipite, este urmatorul:

Montajul in stare de functionare (in timpul deplasarii spre stanga a textului care prezinta ora si data) cu alimentare de la sursa externa:

Semnalez si o problema intampinata pe parcursul dezvoltarii software si programarii modulului Arduino cu firmware-ul compilat. Astfel, pe intervalul de timp in care se programeaza Arduino, matricile de LED-uri pierd comanda din partea microcontrolerului, se aprind aleator, iar curentul consumat creste mult. Acest curent nu este suportat de interfata USB la care este conectat si alimentat modulul Arduino. Practic programarea modulului Arduino esueaza. Solutia pe care am gasit-o este deconectarea matricilor LED de la alimentarea de +5V pe timpul programarii Arduino prin folosirea unui jumper.

Concluzii

Toate functionalitatile proiectate pentru panoul de afisaj cu matrici LED au fost implementate cu succes si acesta poate fi folosit in scopuri de afisare mesaje in diverse spatii.

Proiectul a reprezentat o buna oportunitate pentru a exersa proiectarea si realizarea concreta a unui sistem embedded avand module conectate prin principalele interfete de comunicatii (UART, SPI si I2C).

Pentru viitor, proiectul poate fi continuat prin realizarea unui panou cu dimensiuni marite.

Download

O arhivă (sau mai multe dacă este cazul) cu fişierele obţinute în urma realizării proiectului: surse, scheme, etc. Un fişier README, un ChangeLog, un script de compilare şi copiere automată pe uC crează întotdeauna o impresie bună ;-).

Fişierele se încarcă pe wiki folosind facilitatea Add Images or other files. Namespace-ul în care se încarcă fişierele este de tipul :pm:prj20??:c? sau :pm:prj20??:c?:nume_student (dacă este cazul). Exemplu: Dumitru Alin, 331CC → :pm:prj2009:cc:dumitru_alin.

Jurnal

21 aprilie 2022 Crearea paginii web a proiectului;

21 aprilie 2022 Comanda pentru componente;

27 aprilie 2022 Primire componente comandate;

28 aprilie 2022 Realizarea de montaje de test cu modulele implicate in proiect (folosind breadboard si fire dupont) si testari software;

6 mai 2022 Finalizarea testarilor;

7 mai 2022 Realizarea schemei electrice a proiectului folosind Fritzing;

8 mai 2022 Pagina wiki si documentatia pentru Milestone1;

10 mai 2022 Inceperea realizarii montajului final pe cablajul de test (cu lipirea componentelor si a firelor de conexiune);

12 mai 2022 Finalizarea montajului final;

12 mai 2022 Inceperea implementarii programului software;

20 mai 2022 Finalizarea implementarii software;

23 mai 2022 Pagina wiki si documentatia pentru Milestone2.

Bibliografie/Resurse

pm/prj2022/amocanu/panou_de_afisaj_pe_matrici_led.1653333422.txt.gz · Last modified: 2022/05/23 22:17 by alexandru.serban00
CC Attribution-Share Alike 3.0 Unported
www.chimeric.de Valid CSS Driven by DokuWiki do yourself a favour and use a real browser - get firefox!! Recent changes RSS feed Valid XHTML 1.0