Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2022:amocanu:panou_de_afisaj_pe_matrici_led [2022/05/23 21:53]
alexandru.serban00 [Concluzii]
pm:prj2022:amocanu:panou_de_afisaj_pe_matrici_led [2022/05/23 23:13] (current)
alexandru.serban00 [Download]
Line 10: Line 10:
 <note tip> <note tip>
 Prezentarea pe scurt a proiectului:​ Prezentarea pe scurt a proiectului:​
-  * Panou format din 8 matrici 8 x 8 LED-uri.  +  * Panoul este format din 8 matrici 8 x 8 LED-uri, afisarea facandu-se prin deplasarea textului la stanga (scroll stanga).  
-  * Permite afisarea de mesaje transmise prin bluetooth din smartphone sau preluate ​din SD card, respectiv ora exacta.+  * Permite afisarea de mesaje transmise prin bluetooth din smartphonesau folosind serial monitor, sau prin preluare ​din SD card, respectiv ora exacta.
   * Este util pentru vizualizarea de informatii in diverse locuri publice in conditii naturale de iluminare.   * 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.   * Sursele de informatii afisate sunt diverse si pot fi schimbate cu usurinta.
Line 57: Line 57:
 **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 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. ​ 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. Suplimentar,​ modulul ceas de timp real ofera si informatii despre temperatura,​ care va fi afisata pe panoul de LED-uri. ​+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. Initial, ora exacta la ceasul de timp real va putea fi setata prin comanda transmisa de modulul Arduino.
-Modulul RTC contine si un sensor ​de temperature ​care ofera informatii in acest sens.+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. Comenzile de interogare si de setare a modulului ceas de timp real provin de la telefonul conectat bluetooth, dar si de la serial monitor.
  
Line 127: Line 128:
  
   * **Mediul de dezvoltare folosit**: ​ Arduino IDE   * **Mediul de dezvoltare folosit**: ​ Arduino IDE
 +
  
   * **Biblioteci folosite**:   * **Biblioteci folosite**:
Line 142: Line 144:
 DS3231 - implementeaza functii pentru operarea cu circuitul RTC DS3231 DS3231 - implementeaza functii pentru operarea cu circuitul RTC DS3231
  
-   * **Sumarul comenzilor implementate**+ 
 +   * **Sumarul comenzilor implementate ​in software-ul realizat**
  
 #​0<​ENTER> ​ afisarea orei exacte, a datei si a temperaturii citite de la RTC; #​0<​ENTER> ​ afisarea orei exacte, a datei si a temperaturii citite de la RTC;
Line 165: Line 168:
  
 #​10<​ENTER> ​ afisare pe video invers. #​10<​ENTER> ​ afisare pe video invers.
 +
 +
 +
 +  * **Conceptul programului software**:
 +
 +Programului realizat pentru Arduino in vederea gestionarii Panoului de afisaj cu matrici LED este bazat pe urmatoarele:​
 +
 +- in functia setup se initializeaza diverse componente folosite: panoul de afisaj si parametrii de afisare (intensitate luminoasa, viteza scoll text), comunicatia seriala cu modulul bluetooth, respectiv cu serial monitor, comunicatia prin I2C;
 +
 +- in functia principala loop se asteapta comanda ce trebuie executata fie de la bluetooth, fie de la serial monitor, aceasta se parseaza si se aplica functiei ce realizeaza afisarea pe matricea de LED-uri.
 +
 +Pentru parsarea comenzii primite si executia acesteia au fost implementate o serie de functii (14 la numar) care sunt apelate in mod corespunzator:​
 +
 +  * String splitStr(String strToSplit, char sep, int noToken) - functie pentru aflarea token-ului cu indice noToken obtinut dupa split-uirea stringului strToSplit delimitat de separatorul sep;
 +
 +  * String copyStr(String strToCopy) - functie pentru copierea continutului unui string in alt string;
 +
 +  * void strRemoveNLCR(String &​strNLCR) - functie pentru stergerea caracterelor NL si CR de la finalul unui string;
 +
 +  * bool isNumStr(String strNum) - functie care verifica daca un string este de tip numeric (contine doar cifre);
 +
 +  * int readCmdStr(String &​strCmdValue,​ String strDisplay) - functie care afla tokenii in urma split-uirii unui string ce reprezinta comanda data (delimitat de spatiu);
 +
 +  * void getEnvData(String &​strDisplay) - functie care citeste circuitul RTC (timp, data, temperatura);​
 +
 +  * void setEnvData(String &​strDisplay) - unctie care programeaza RTC (timp si data);
 +
 +  * bool updateTimeCommand(String &​strDisplay) - functie care seteaza string-ul cu datele de la RTC actiualizate;​
 +
 +  * bool checkSD() - functie care verifica daca SD card a fost initializat;​
 +
 +  * void readSD(String &​strDisplay,​ String fileName_SD) - functie care citeste fisier din SD card;
 +
 +  * void writeSD(String &​strDisplay,​ String writeStr_SD,​ String fileName_SD) - functie care scrie in fisierul din SD card;
 +
 +  * void removeFileSD(String fileName_SD) - functie care sterge fisier din SD card;
 +
 +  * void listDirSD(File dir) - functie care listeaza fisierele si directoarele din radacina SD card la serial monitor si la bluetooth;
 +
 +  * void parseCommand(String &​strDisplay) - functie care determina tipul comenzii primite si retine rezultatul acesteia in string-ul strDisplay.
 +
  
 </​note>​ </​note>​
Line 189: Line 233:
 ===== Concluzii ===== ===== 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.+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 ​chiar in conditii naturale de iluminare.
  
 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). 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).
Line 198: Line 242:
  
 <note warning> <note warning>
-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ă ;-).+Arhiva ​proiectului ​Panou de afisaj ​pe matrici LED 
 + 
 +{{:​pm:​prj2022:​amocanu:​panou_afisaj_pe_matrici_led.zip|}}
  
-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**. 
 </​note>​ </​note>​
  
pm/prj2022/amocanu/panou_de_afisaj_pe_matrici_led.1653331995.txt.gz · Last modified: 2022/05/23 21:53 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