This shows you the differences between two versions of the page.
|
pm:prj2026:atoader:stefan.covaliu [2026/05/16 22:54] stefan.covaliu [Module Hardware] |
pm:prj2026:atoader:stefan.covaliu [2026/05/16 22:58] (current) stefan.covaliu [Software Design] |
||
|---|---|---|---|
| Line 16: | Line 16: | ||
| ==== Module Hardware ==== | ==== Module Hardware ==== | ||
| - | * **ATmega328P-XMINI** - microcontrolerul central, compatibil Arduino Uno, arhitectura AVR 8-bit la 5V. Coordoneaza toata logica sistemului: citeste senzorii, calculeaza temperatura de culoare, genereaza semnalele PWM si gestioneaza comunicatia cu toate perifericele. | + | * **ATmega328P-XMINI** : microcontrolerul central, compatibil Arduino Uno, arhitectura AVR 8-bit la 5V. Coordoneaza toata logica sistemului: citeste senzorii, calculeaza temperatura de culoare, genereaza semnalele PWM si gestioneaza comunicatia cu toate perifericele. |
| - | * **Modul Bluetooth HC-06** - permite controlul wireless al lampii de pe telefon prin UART. Microcontrolerul primeste comenzi text ("WARM", "COOL", "OFF") si le aplica imediat. TX-ul modulului este conectat direct la D0 (RX), iar RX-ul este protejat printr-un divizor de tensiune 1kΩ+2kΩ deoarece modulul lucreaza la 3.3V logic. | + | * **Modul Bluetooth HC-06** : permite controlul wireless al lampii de pe telefon prin UART. Microcontrolerul primeste comenzi text ("WARM", "COOL", "OFF") si le aplica imediat. TX-ul modulului este conectat direct la D0 (RX), iar RX-ul este protejat printr-un divizor de tensiune 1kΩ+2kΩ deoarece modulul lucreaza la 3.3V logic. |
| - | * **Fotorezistor LDR GL5528** - conectat intr-un divizor de tensiune cu o rezistenta de 10kΩ la GND. Punctul de mijloc este citit pe pinul A0 prin ADC-ul intern pe 10 biti. Valoarea citita determina cat de multa componenta calda se adauga in culoarea finala. | + | * **Fotorezistor LDR GL5528** : conectat intr-un divizor de tensiune cu o rezistenta de 10kΩ la GND. Punctul de mijloc este citit pe pinul A0 prin ADC-ul intern pe 10 biti. Valoarea citita determina cat de multa componenta calda se adauga in culoarea finala. |
| - | * **Modul RTC DS3231** - tine ora exacta inclusiv la oprirea alimentarii, datorita bateriei CR2032. Comunicatia se face prin I2C: SDA pe A4, SCL pe A5. Ora citita determina automat profilul de culoare al momentului din zi. | + | * **Modul RTC DS3231** : tine ora exacta inclusiv la oprirea alimentarii, datorita bateriei CR2032. Comunicatia se face prin I2C: SDA pe A4, SCL pe A5. Ora citita determina automat profilul de culoare al momentului din zi. |
| - | * **Display OLED SH1106 1.3"** - afiseaza modul activ, culoarea curenta si ora. Comunicatia se face prin SPI hardware: SCK pe D13, MOSI pe D11, CS pe D10, DC pe D7, RST pe D4. Actualizat o data pe secunda. | + | * **Display OLED SH1106 1.3"** : afiseaza modul activ, culoarea curenta si ora. Comunicatia se face prin SPI hardware: SCK pe D13, MOSI pe D11, CS pe D10, DC pe D7, RST pe D4. Actualizat o data pe secunda. |
| - | * **3x MOSFET IRLZ44N** - tranzistori N-Channel Logic Level care controleaza independent cele trei canale RGB prin PWM. Gate-urile sunt conectate la D3 (rosu), D5 (verde) si D6 (albastru). Se deschid complet la 5V pe gate. | + | * **3x MOSFET IRLZ44N** : tranzistori N-Channel Logic Level care controleaza independent cele trei canale RGB prin PWM. Gate-urile sunt conectate la D3 (rosu), D5 (verde) si D6 (albastru). Se deschid complet la 5V pe gate. |
| * **3x LED discret (Rosu, Verde, Albastru)** - elementele de iluminat. Fiecare LED are un rezistor de 220Ω in serie pe anod conectat la 5V, iar catodul conectat la Drain-ul MOSFET-ului corespunzator. | * **3x LED discret (Rosu, Verde, Albastru)** - elementele de iluminat. Fiecare LED are un rezistor de 220Ω in serie pe anod conectat la 5V, iar catodul conectat la Drain-ul MOSFET-ului corespunzator. | ||
| - | * **Buton tactil** - conectat la D2 cu pull-up de 10kΩ la 5V. Genereaza intrerupere externa pe INT0 la apasare. Cicleza intre modurile de functionare si are prioritate maxima in logica sistemului. | + | * **Buton tactil** : conectat la D2 cu pull-up de 10kΩ la 5V. Genereaza intrerupere externa pe INT0 la apasare. Cicleza intre modurile de functionare si are prioritate maxima in logica sistemului. |
| * **Regulator L7805** - converteste tensiunea sursei externe de 24V la 5V stabili pentru microcontroler si toate modulele. | * **Regulator L7805** - converteste tensiunea sursei externe de 24V la 5V stabili pentru microcontroler si toate modulele. | ||
| Line 29: | Line 29: | ||
| * **Handler intrerupere buton (INT0)** - la apasarea butonului pe D2 se genereaza intrerupere pe front descrescator. Cicleza intre modurile: AUTO, WARM, COOL, OFF. Are prioritate maxima. | * **Handler intrerupere buton (INT0)** - la apasarea butonului pe D2 se genereaza intrerupere pe front descrescator. Cicleza intre modurile: AUTO, WARM, COOL, OFF. Are prioritate maxima. | ||
| - | * **Receptor UART Bluetooth** - citeste comenzile primite de la HC-06 si actualizeaza modul activ. Comenzi suportate: "WARM", "COOL", "OFF", "AUTO". | + | * **Receptor UART Bluetooth** : citeste comenzile primite de la HC-06 si actualizeaza modul activ. Comenzi suportate: "WARM", "COOL", "OFF", "AUTO". |
| - | * **Citire ADC (LDR)** - ADC-ul intern citeste tensiunea de pe A0 si returneaza o valoare 0–1023 proportionala cu luminozitatea ambientala. | + | * **Citire ADC (LDR)** : ADC-ul intern citeste tensiunea de pe A0 si returneaza o valoare 0–1023 proportionala cu luminozitatea ambientala. |
| - | * **Citire RTC prin I2C** - microcontrolerul citeste ora curenta de la DS3231 o data pe secunda prin TWI/I2C si selecteaza profilul de culoare corespunzator. | + | * **Citire RTC prin I2C** : microcontrolerul citeste ora curenta de la DS3231 o data pe secunda prin TWI/I2C si selecteaza profilul de culoare corespunzator. |
| - | * **Calcul temperatura culoare** - combina valorile LDR si RTC pentru a calcula tripletul RGB final. Trece lin de la (255, 200, 100) seara la (200, 220, 255) dimineata. | + | * **Calcul temperatura culoare** : combina valorile LDR si RTC pentru a calcula tripletul RGB final. Trece lin de la (255, 200, 100) seara la (200, 220, 255) dimineata. |
| - | * **Control PWM canale RGB** - aplica valorile RGB calculate pe D3, D5, D6, controlând duty cycle-ul pentru fiecare MOSFET. | + | * **Control PWM canale RGB** : aplica valorile RGB calculate pe D3, D5, D6, controlând duty cycle-ul pentru fiecare MOSFET. |
| - | * **Driver OLED SPI** - actualizeaza display-ul SH1106 o data pe secunda cu modul activ, valorile RGB curente si ora. | + | * **Driver OLED SPI** : actualizeaza display-ul SH1106 o data pe secunda cu modul activ, valorile RGB curente si ora. |
| - | * **Logica de prioritizare** - buton fizic > comanda Bluetooth > mod automat (LDR + RTC). | + | * **Logica de prioritizare** : buton fizic > comanda Bluetooth > mod automat (LDR + RTC). |
| Line 96: | Line 96: | ||
| **Librarii folosite:** | **Librarii folosite:** | ||
| - | * ''Wire.h'' — comunicatie I2C cu DS3231 | + | * ''Wire.h'' : comunicatie I2C cu DS3231 |
| - | * ''RTClib'' — citire ora de la DS3231 | + | * ''RTClib'' : citire ora de la DS3231 |
| - | * ''U8g2lib'' — driver display OLED SH1106 prin SPI | + | * ''U8g2lib'' : driver display OLED SH1106 prin SPI |
| - | * ''SPI.h'' — comunicatie SPI hardware | + | * ''SPI.h'' : comunicatie SPI hardware |
| **Algoritmi implementati:** | **Algoritmi implementati:** | ||