This is an old revision of the document!
Lampa RGB Inteligenta cu Adaptare Automata a Culorii
Smart Lamp Controller
Introducere
Punctul de plecare a fost observatia ca lumina albastra seara afecteaza calitatea somnului. Majoritatea oamenilor stau la birou sau in camera cu aceeasi lumina alba tot timpul, indiferent de ora din zi. O lampa care isi adapteaza singura temperatura de culoare rezolva aceasta problema fara nicio interventie din partea utilizatorului.
Proiectul consta intr-o lampa RGB controlata de un microcontroler ATmega328P-XMINI. Lampa trece automat de la lumina rece (albastru-alb) ziua la lumina calda (galben-portocaliu) seara, in functie de luminozitatea ambientala citita de un fotorezistor si de ora curenta furnizata de un modul RTC. Pe langa modul automat, lampa poate fi controlata manual printr-un buton fizic sau de pe telefon prin Bluetooth. Un display OLED afiseaza in timp real modul activ, culoarea setata si ora curenta.
Proiectul este util pentru confortul vizual zilnic si pentru prevenirea durerilor de ochi cauzate de expunerea prelungita la lumina albastra seara. In acelasi timp, acopera practic toate periferalele studiate in laboratoarele PM: GPIO, UART, intreruperi externe, PWM, ADC, SPI si I2C.
Descriere generala
Sistemul are urmatoarele module principale:
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.
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.
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.
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.
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.
Module Software
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”.
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.
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.
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).
Hardware Design
Lista componente
| Componenta | Model / Specificatii | Cantitate |
| Placa microcontroller | ATmega328P-XMINI | 1 |
| Modul Bluetooth | HC-06 UART | 1 |
| Display OLED | SH1106 1.3” SPI | 1 |
| Modul RTC | DS3231 I2C | 1 |
| MOSFET | IRLZ44N N-Channel Logic Level | 3 |
| LED rosu | LED 5mm rosu | 1 |
| LED verde | LED 5mm verde | 1 |
| LED albastru | LED 5mm albastru | 1 |
| Fotorezistor | GL5528 LDR | 1 |
| Buton | Push tactil | 1 |
| Regulator tensiune | L7805CV | 1 |
| Rezistor | 220Ω | 3 |
| Rezistor | 10kΩ | 2 |
| Rezistor | 1kΩ | 1 |
| Rezistor | 2kΩ | 1 |
| Breadboard | 830 puncte | 1 |
| Fire jumper | Male-to-male | ~30 |
| Cablu USB | Micro-USB | 1 |
| Sursa alimentare | 24V externa | 1 |
Conexiuni pini
| Pin MCU | Conectat la | Functie |
| D0 (RX) | HC-06 TX | UART receptie Bluetooth |
| D1 (TX) | HC-06 RX via 1kΩ+2kΩ | UART transmisie (protejat 3.3V) |
| D2 | Buton + pull-up 10kΩ | Intrerupere externa INT0 |
| D3 (PWM) | Gate MOSFET Rosu | PWM canal R |
| D4 | OLED RST | SPI Reset |
| D5 (PWM) | Gate MOSFET Verde | PWM canal G |
| D6 (PWM) | Gate MOSFET Albastru | PWM canal B |
| D7 | OLED DC | SPI Data/Command |
| D10 | OLED CS | SPI Chip Select |
| D11 (MOSI) | OLED SDA | SPI Date |
| D13 (SCK) | OLED SCK | SPI Clock |
| A0 | Nod LDR + 10kΩ | ADC citire luminozitate |
| A4 (SDA) | DS3231 SDA | I2C date RTC |
| A5 (SCL) | DS3231 SCL | I2C clock RTC |
Schema electrica
Lista de piese
| Componenta | Model | Cantitate |
| Microcontroler | ATmega328P-XMINI | 1 |
| Modul Bluetooth | HC-06 RS232 | 1 |
| Modul RTC | DS3231 ZS-042 | 1 |
| Baterie RTC | CR2032 3V | 1 |
| Display OLED | SSD1306 0.96” SPI 7 pini | 1 |
| Fotorezistor | GL5539 5mm | 1 |
| MOSFET | LR7843 (Logic Level N-ch) | 3 |
| Regulator tensiune | L7805CV | 1 |
| Banda LED RGB | 12V anod comun, 5050 | 1m |
| Condensator electrolitic | 10uF 50V | 2 |
| Condensator ceramic | 100nF 50V | 2 |
| Rezistenta | 220 ohm | 3 |
| Rezistenta | 1k ohm | 1 |
| Rezistenta | 2k ohm | 1 |
| Rezistenta | 4.7k ohm | 2 |
| Rezistenta | 10k ohm | 5 |
| Breadboard | 830 puncte | 1 |
| Fire DuPont M-F | 40 bucati 20cm | 1 set |
| Fire DuPont M-M | 40 bucati 20cm | 1 set |
| Conector DC | 5.5×2.1mm cu terminal | 1 |
| Adaptor alimentare | 12V 2A | 1 |