Differences

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

Link to this comparison view

pm:prj2025:apredescu:luca.spataru [2025/05/16 14:43]
luca.spataru [Schema bloc]
pm:prj2025:apredescu:luca.spataru [2025/05/28 14:05] (current)
luca.spataru [Software Design]
Line 7: Line 7:
 ===== Schema bloc ===== ===== Schema bloc =====
  
-{{:​pm:​prj2025:​apredescu:​diagramapm.png}}+{{:​pm:​prj2025:​apredescu:​diagramapm.png?720}}
 ===== Hardware Design ===== ===== Hardware Design =====
 +{{:​pm:​prj2025:​apredescu:​pmfinall.png?​720}}
 +
 +==== Lista piese ====
 +
 +| Arduino UNO R3 | [[https://​www.optimusdigital.ro/​ro/​placi-avr/​4561-placa-de-dezvoltare-compatibila-cu-arduino-uno-r3-atmega328p-atmega16u2-cablu-50-cm.html?​search_query=placa+arduino+uno&​results=84|Optimus digital]] |
 +| Rotary Encoder Module | [[https://​www.optimusdigital.ro/​en/​touch-sensors/​7150-rotary-encoder-module.html?​search_query=Rotary+Encoder+Module%09&​results=9|Optimus digital]] |
 +| KCD10-101 Switch | [[https://​www.optimusdigital.ro/​en/​buttons-and-switches/​7377-kcd10-101-switch.html?​search_query=KCD10-101+Switch%09&​results=1|Optimus digital]] |
 +| 400p HQ Breadboard | [[https://​www.optimusdigital.ro/​en/​breadboards/​44-400p-hq-breadboard.html?​search_query=400p+HQ+Breadboard%09&​results=6|Optimus digital]] |
 +| 1602 LCD | [[https://​www.optimusdigital.ro/​en/​lcds/​2894-1602-lcd-with-i2c-interface-and-blue-backlight.html?​search_query=1602+LCD+with+I2C+Interface+and+Blue+Backlight%09&​results=2|Optimus digital]] |
 +| 2 x 18650 Battery Case | [[https://​www.optimusdigital.ro/​en/​battery-holders/​941-2x18650-battery-case.html?​search_query=2+x+18650+Battery+Case%09&​results=28|Optimus digital]] |
 +| 4x White Button with Round Cover | [[https://​www.optimusdigital.ro/​en/​buttons-and-switches/​1115-white-button-with-round-cover.html?​search_query=White+Button+with+Round+Cover%09&​results=1|Optimus digital]] |
 +| Buzzer | [[https://​www.optimusdigital.ro/​ro/​audio-buzzere/​12247-buzzer-pasiv-de-33v-sau-3v.html?​search_query=0104210000081527&​results=1|Optimus digital]] |
 +| TDA2822 ​ | [[https://​www.optimusdigital.ro/​en/​audio-amplifiers/​12589-tda2822-2x1w-dc-5v-12v-stereo-audio-amplifier-module.html?​search_query=TDA2822+2x1W+DC+5V+12V+Stereo+Audio+Amplifier+Module%09&​results=1|Optimus digital]] |
 +| TEA5767 | [[https://​ardushop.ro/​en/​modules/​1490-tea5767-fm-stereo-radio-module-5v-for-arduino-radio-76-108mhz-i2c-communication-with-free-cable-antenna-6427854022004.html|ArduShop]] |
 +| Difuzor | [[https://​tehnoelectric.ro/​difuzoare/​1302-12154-difuzor-40x18mm-3w-4.html|tehnoelectric]] |
 +|4xRezistenta 10k|
 +|5xLed|
 +|Rezistenta 220|
 +|Fire|
  
-<note tip> 
-Aici puneţi tot ce ţine de hardware design: 
-  * listă de piese 
-  * scheme electrice (se pot lua şi de pe Internet şi din datasheet-uri,​ e.g. http://​www.captain.at/​electronic-atmega16-mmc-schematic.png) 
-  * diagrame de semnal ​ 
-  * rezultatele simulării 
-</​note>​ 
  
 ===== Software Design ===== ===== Software Design =====
  
 +=== Descrierea codului aplicatiei (firmware) ===
 +Firmware-ul este dezvoltat pentru un radio digital construit in jurul platformei Arduino Uno R3. Proiectul permite utilizatorului sa asculte posturi FM, sa comute intre ele, sa caute automat frecvente, sa seteze un temporizator de oprire (sleep timer), sa activeze functia mute si sa salveze posturi preferate in memoria EEPROM.
 +
 +Interfata cu utilizatorul se face prin intermediul unui ecran LCD 1602 (cu interfata I2C), un rotary encoder (cu switch), patru butoane, si un switch pentru comutarea modului de functionare al butoanelor.
 +
 +=== Mediu de dezvoltare ===
 +  * **Placa**: Arduino Uno R3
 +  * **Mediu de dezvoltare**:​ Arduino IDE
 +  * **Limbaj de programare**:​ C++
 +
 +=== Librarii si surse third-party ===
 +  * **TEA5767N.h**:​ librarie folosita pentru controlul modulului radio FM TEA5767.
 +  * **LiquidCrystal_I2C.h**:​ pentru afisarea informatiilor pe ecranul LCD 1602 cu interfata I2C.
 +  * **EEPROM.h**:​ librarie nativa Arduino pentru citirea si scrierea datelor persistente (posturi salvate).
  
-<note tip> +=== Structura ​codului ​=== 
-Descrierea ​codului ​aplicaţiei ​(firmware): +  * **Initializare Sistem**  
-  * mediu de dezvoltare ​(if any(e.gAVR Studio, CodeVisionAVR+    * Se initializeaza componentele:​ LCD, radio TEA5767, buzzer, butoane, encoder, LED de stare. 
-  * librării şi surse 3rd-party (e.gProcyon AVRlib+    * Se incarca frecventa radio salvata anterior din EEPROM. 
-  * algoritmi şi structuri pe care plănuiţi să le implementaţi +    * Se afiseaza informatiile initiale pe LCD (frecventa, semnal, canal memorat). 
-  * (etapa 3surse şi funcţii implementate +  * **Control Encoder** 
-</​note>​+    * Encoderul incrementa sau decrementeaza frecventa curenta. 
 +    * Se detecteaza directia ​de rotatie ​(stanga/​dreaptasi se actualizeaza frecventa. 
 +    * Dupa un interval (default 1 secunda), se face actualizarea efectiva a semnalului radio si LCD-ului. 
 +  * **Butonare ​Functionalitati Multiple** 
 +    * Fiecare dintre cele 4 butoane are 2 functii, in functie de starea comutatorului fnSw (Function Switch): 
 +      * Salvare/​Accesare posturi memorate (FM1–FM4):​ cu fnSw activat, fiecare buton incarca un canal memorat si actualizeaza frecventa. 
 +      * Functii speciale (cu fnSw dezactivat)
 +        * Buton 1/2: cautare automata a postului anterior/​urmator (search()). 
 +        * Buton 3: Mute/​Unmute. 
 +        * Buton 4: Timer pentru oprire automata sau reactivare din standby. 
 +  * **Timer de Oprire Automata** 
 +    * La apasarea butonului 4 in mod normal, se poate activa un cronometru de oprire (sleepTimer). 
 +    * Utilizatorul poate selecta durata in minute (de la 1 la 10 minute). 
 +    * Dupa expirare, sistemul intra in standby: radio se opreste, LED-ul si afisajul sunt dezactivate. 
 +  * **EEPROM - Salvare si Incarcare Date ** 
 +    * Se salveaza frecventa curenta intr-o adresa EEPROM corespunzatoare ​(FM1–FM4). 
 +    * La repornirea sistemului, frecventa si butonul utilizat anterior sunt incarcate automat din EEPROM (LAST).
  
 ===== Rezultate Obţinute ===== ===== Rezultate Obţinute =====
pm/prj2025/apredescu/luca.spataru.1747395822.txt.gz · Last modified: 2025/05/16 14:43 by luca.spataru
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