Dynamic Solar Panel

Introducere

În prezent se dorește utilizarea în cea mai mare măsură posibilă a energiei verzi, reprezentată și de energia fotovoltaică.

Proiectul reprezintă un sistem de urmărire a soarelui sau a sursei de lumină, bazat pe un mini panou solar, cu două servomotoare și trei senzori de intensitate a luminii.

În esență, funcționarea acestui sistem este destul de simplă, dar eficientă. Senzorii de lumină detectează intensitatea luminii solare în diferite direcții, iar în funcție de aceste informații, servomotoarele ajustează poziția panoului solar astfel încât acesta să fie mereu orientat cât mai perpendicular pe razele solare. Prin această optimizare a poziționării, se maximizează absorbția energiei solare de către panou, crescând astfel eficiența colectării de energie electrică.

Descriere generală

Schema bloc

Hardware Design

Piese

Arduino UNO:

  • Placuța programabila este un Arduino UNO ce are la baza microcontroller-ul ATmega 328p.

Senzori intesitate luminoasă - TSL2561:

  • Tensiune de alimentare: 3.3V
  • Curent: 0.6mA
  • Măsoară între 0.1 și 40000 Lux
  • Modulul are un ADC integrat și comunică pe interfață I2C
  • Vor fi montați 3 senzori, dispusi sub forma de triunghi echilateral care vor transmite informatii către microcontroller în legatură cu intensitatea luminoasă receptată. Eventual se vor acționa servo motoarele pentru repoziționarea panoului.

Senzor solar UV analogic - GUVA-S12SD

  • Tensiune de alimentare 2.5 - 5V
  • Va fi montat pentru a detecta razele ultraviolete
  • Valoarea captată va fi afișată pe LCD.
  • Senzorul este unul analogic, se va folosi ADC.

Servo motoare - SG 90, 180 grade:

  • Folosirea a două servo motoare este datorată nevoii rotației pe cele 2 axe.
  • Vor primi semnale specifice de la microcontroller pentru a se roti intr-o anumită direcție și cu o anumită viteză, controlat in PWM.

Panou solar

  • Specificații panou solar: 5V, 225mAh, 1.1W
  • Se va afla pe planul mobil angrenat de cele 2 servo motoare și va alimenta un consumator în timp real.

Ecran LCD

  • Funcționeaza pe interfata I2C.
  • Va afișa diverși parametrii corespunazători stării curente a sistemului.

Schemă Electrică

Pini:

  • Cei trei senzori care măsoară intensitatea luminoasă funcționează pe magistrala I2C. Voi conecta la comun SCL-ul si SDA-ul celor 3 la pin-ul PC5 (SCL), respectiv PC4 (SDA). Alimentarea lor o voi conecta la 3.3V pe Arduino. Adresele I2C ale senzorilor sunt 0x29, 0x39, 0x49.
  • Servo motoarele vor fi controlate in PWM, astfel le voi conecta la PB1 și PB2 și alimentarea la 5V.
  • Senzorul solar UV este unul analogic și va fi conectat la pin-ul PC1 și alimentarea la 3.3V.
  • LCD-ul folosește de asemenea I2C, așa ca va fi conectat împreuna cu senzorii de intensitate luminoasă la PC5 si PC4.

Asamblare inițială

Asamblare componenete hardware

  • Crearea platformei pe care este montat panoul solar și îmbinarea platformei pe suportul mobil angrenat de cele două servo motoare.
  • Montarea servo motoarelor care realizează rotațiile pe cele două axe ale panoului solar pe scheletul mobil.
  • Fixarea pe “brațe” de plastic a senzorilor de intensitate luminoasă.

  • Fixarea “bratelor pe planul panoului.”

  • Am testat senzorii de intensitate luminoasă folosind o lanternă pentru a mă asigura ca funcționeaza corect.

Link Video - testare senzor intensitate luminoasă

Software Design

Dezvoltarea software:

  • Mediu de dezvoltare: PlatformIO
  • Biblioteci folosite: <avr/io.h> <delay.h> <stdio.h>

Pentru a realiza miscarea panoului solar în direcția luminii, inițial trebuie să obtin valorile citite de cei trei senzori de intensitate luminoasă. Inițializez comunicația I2C astfel.

După inițializarea senzorilor, doresc să obțin valorile citite de aceștia care vor fi convertite apoi în lux pentru obtinerea intensitații luminoase.

Cu datele despre mediu obtinute, urmează logica ce va pune în mișcare mecanismul reprezentat de cele 2 servo-motoare pentru o poziționare cât mai optima a panoului spre sursa de lumină. Compar diferențele dintre senzori și astfel calculez direcția în care trebuie sa se rotească sistemul sau să se încline sus sau jos.

Pentru a controla servo motoarele am folosit PWM-ul microcontroller-ului pentru a obține un semnal cu frecvența de 50Hz.

Conectarea, logica și controlul display-ului LCD I2C pentru afisarea valorilor intensităților luminoase și a valorii luminii ultra-violete (receptată de un modul sensor UV ADC), precum si restul codului se află pe repository-ul de gitHub disponibil mai jos.

cod-GitHub

Rezultate Obţinute

Videoclip demo funcționare: Demo

Concluzii

Download

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ă ;-).

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.

Jurnal

Puteți avea și o secțiune de jurnal în care să poată urmări asistentul de proiect progresul proiectului.

Bibliografie/Resurse

Listă cu documente, datasheet-uri, resurse Internet folosite, eventual grupate pe Resurse Software şi Resurse Hardware.

Export to PDF

pm/prj2024/vstoica/melih.riza.txt · Last modified: 2024/05/20 18:42 by melih.riza
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