Acest proiect constă în realizarea unui suport motorizat pentru un panou solar, capabil să se orienteze automat în funcție de direcția luminii solare. Scopul principal este creșterea eficienței captării energiei prin poziționarea optimă a panoului pe parcursul zilei, pe două axe, orizontal și vertical. De asemenea, va fi afișat pe un ecran și curentul captat de panoul fotovoltaic.
Ideea proiectului a pornit de la observația că majoritatea panourilor solare sunt poziționate static, fără să urmărească soarele, ceea ce duce la o potențială pierdere semnificativă a energiei.
Proiectul este util atât din punct de vedere educațional, deoarece implică concepte studiate la facultate, și din punct de vedere practic, putând fi aplicat în sisteme de captare a energiei solare.
Proiectul este compus din mai multe module care colaborează pentru a asigura orientarea automată a unui panou solar în direcția optimă față de sursa de lumină.
Partea hardware include:
Modulul software implementat pe Arduino citește valorile de lumină de la fotorezistori și determină direcția către care panoul trebuie să se orienteze pentru a maximiza captarea luminii. De asemenea, este prelucrată curentului, iar rezultatele sunt afișate pe ecran. Astfel, sistemul asigură o urmărire continuă a sursei de lumină și oferă feedback despre eficiența energetică a orientării curente.
Pentru realizarea proiectului, se folosește un Arduino UNO care controlează două servomotoare SG90 pentru orientarea panoului solar pe două axe. Patru foto-rezistoare (LDR) sunt montate în colțurile panoului și conectate prin divizoare de tensiune cu rezistențe de 10kΩ pentru a detecta direcția luminii. Valorile analogice citite sunt procesate pentru a orienta panoul spre cea mai puternică sursă de lumină. Ecranul LCD 16×2 cu interfață I2C afișează informații despre poziția curentă și intensitatea luminii. Alimentarea este asigurată de un panou solar conectat la un senzor de curent ACS712, pentru a monitoriza energia produsă. Toate componentele sunt montate pe o placă de test (breadboard) și alimentate fie prin USB, fie direct de la panoul solar.
Componenta conectata la panoul solar este un senzor de curent ACS712 5A.
Microcontrollerul utilizat este un Arduino UNO bazat pe ATmega328P. Acesta comunică cu componentele prin mai multe tipuri de interfețe. Cei patru foto-rezistori (LDR) sunt conectați la intrările analogice ADC ale plăcii, pentru a permite citirea valorilor de tensiune proporționale cu intensitatea luminii. Cele două servomotoare SG90 sunt controlate prin semnal PWM generat pe ieșiri digitale. Afișajul LCD 16×2 cu modul I2C se conectează prin magistrala I2C prin intermediul librăriei SoftwareWire, care emulează protocolul I2C prin software. Senzorul de curent ACS712 este conectat la o intrare analogică și furnizează o tensiune proporțională cu curentul măsurat, care este convertită de convertorul ADC al Arduino.
Pinii Arduino UNO au fost alocați strategic pentru a asigura compatibilitatea cu funcțiile fiecărei componente, evitând conflictele și maximizând numărul de senzori analogici disponibili. Tabelul de mai jos prezintă configurația exactă:
Componentă | Pini Arduino | Tip semnal | Justificare utilizare |
---|---|---|---|
LDR1 | A2 | Analog (ADC) | Citire lumină – senzor analogic |
LDR2 | A3 | Analog (ADC) | Citire lumină – senzor analogic |
LDR3 | A4 | Analog (ADC) | Citire lumină – senzor analogic |
LDR4 | A5 | Analog (ADC) | Citire lumină – senzor analogic |
Servomotor 1 | D2 | PWM | Control unghi prin semnal PWM |
Servomotor 2 | D3 | PWM | Control unghi prin semnal PWM |
LCD I2C | D8 (SDA), D9 (SCL) | I2C software | Emulare I2C cu `SoftwareWire` pentru a elibera A4/A5 |
Senzor curent ACS712 | A0 | Analog (ADC) | Măsurare curent analogic generat de panoul solar |
Alimentare | 5V, GND | Tensiune DC | Alimentare comună pentru toate modulele |
Nr. | Componenta | Descriere | Datasheet / Sursa |
---|---|---|---|
1 | Arduino UNO | Placă de dezvoltare compatibilă cu ATmega328P | [https://docs.arduino.cc/hardware/uno-rev3] |
2 | Servomotor SG90 ×2 | Servomotor micro de 9g, rotație ~180° | [http://www.ee.ic.ac.uk/pcheung/teaching/DE1_EE/stores/sg90_datasheet.pdf] |
3 | Foto-rezistor (LDR) ×4 | Rezistor dependent de lumină | [https://www.alldatasheet.com/html-pdf/1131893/ETC2/GL5528/110/1/GL5528.html] |
4 | Rezistență 10kΩ ×4 | Rezistență fixă pentru divizoare de tensiune | [https://www.vishay.com/docs/28721/cmfr.pdf] |
5 | LCD 16×2 cu I2C | Afișaj alfanumeric 16 caractere × 2 linii, cu interfață I2C | [https://handsontec.com/dataspecs/module/I2C_1602_LCD.pdf] |
6 | Senzor curent ACS712 5A | Senzor Hall pentru măsurarea curentului continuu și alternativ | [https://www.allegromicro.com/-/media/files/datasheets/acs712-datasheet.ashx] |
7 | Panou solar 6V | Panou fotovoltaic de 6V pentru alimentare sau încărcare | [https://www.emag.ro/panou-solar-6v-3-5w-ai1407/pd/D3TD8GMBM/] |
Logica software a fost implementată și testată cu succes pe placa Arduino UNO. Citirea valorilor analogice de la cei patru senzori LDR funcționează corect, iar algoritmul de decizie determină orientarea optimă a panoului solar. Controlul celor două servomotoare SG90 este stabil, permițând mișcarea pe ambele axe. De asemenea, au fost implementate cu succes senzorul de curent ACS712, afișajul LCD I2C și panoul solar.
Pentru controlul ecranului LCD I2C, am utilizat inițial librăria LiquidCrystal_I2C, deoarece oferă o interfață simplă și eficientă pentru afișajele compatibile. Totuși, având nevoie să eliberăm pinii analogici A4 și A5 pentru alți senzori, am optat pentru librăria SoftwareWire, care permite comunicarea I2C prin alți pini digitali. În acest context, am folosit un fork compatibil, LiquidCrystal_SoftI2C (Arduino-LiquidCrystal-SoftI2C-library), care integrează suportul pentru SoftwareWire, permițând astfel conectarea LCD-ului I2C fără a compromite pinii analogici standard. Pentru controlul servo, am folosit biblioteca Servo.h, deoarece este standard în Arduino și oferă un control precis cu consum redus de resurse.
În cadrul proiectului sunt aplicate concepte studiate în laboratoare precum: citirea semnalelor analogice prin ADC (pentru LDR și ACS712), generarea de semnal PWM pentru controlul servomotoarelor, utilizarea I2C pentru comunicarea cu afișajul LCD. Folosirea SoftwareWire demonstrează cum se poate replica protocolul I2C în lipsa pinilor dedicați.
Codul este organizat într-o manieră clară și funcțională, folosind funcții dedicate pentru principalele componente logice ale sistemului:
Funcționalitățile au fost validate pe hardware-ul real, panoul urmărind corect lumina solară în ambele axe cu ajutorul celor două servomotoare SG90. Valorile senzorilor sunt afișate prin portul serial, iar afișajul LCD I2C confirmă pornirea corectă a sistemului. Funcțiile sunt apelate secvențial în bucla principală (`loop()`), asigurând o actualizare în timp real a poziției panoului și a valorii curentului. Fiecare componentă a fost testată individual și apoi integrată în sistemul complet. Validarea s-a realizat prin teste în condiții de iluminare variabilă.
Pentru a asigura funcționarea corectă a sistemului, a fost necesară calibrarea senzorilor utilizați în proiect. În cazul celor patru foto-rezistori (LDR), s-a observat că aceștia pot avea valori ușor diferite chiar și în condiții identice de iluminare, din cauza toleranțelor de fabricație. Pentru a compensa aceste diferențe, am efectuat citiri multiple în condiții de lumină uniformă și am salvat valorile medii ale fiecărui LDR ca valori de referință. În cod, diferențele dintre citirile curente și cele de referință sunt normalizate pentru a obține o evaluare mai precisă a direcției luminii.
Pentru a asigura funcționarea corectă a sistemului, a fost necesară calibrarea senzorilor utilizați în proiect. În cazul celor patru foto-rezistori (LDR), s-a observat că aceștia pot avea valori ușor diferite chiar și în condiții identice de iluminare, din cauza toleranțelor de fabricație. Pentru a compensa aceste diferențe, am efectuat citiri multiple în condiții de lumină uniformă și am salvat valorile medii ale fiecărui LDR ca valori de referință. În cod, diferențele dintre citirile curente și cele de referință sunt normalizate pentru a obține o evaluare mai precisă a direcției luminii.
Senzorul de curent ACS712 a necesitat și el calibrare, întrucât semnalul de ieșire are un offset de aproximativ 2.5V (corespunzător la 0A). De asemenea, senzorul are și un factor de sensibilitate de 100 mV/A.
Pentru afișajul LCD I2C, am verificat lizibilitatea textului și poziționarea acestuia pe cele două linii ale ecranului (16×2), pentru a asigura o prezentare clară a valorilor.