This is an old revision of the document!


Solar tracker

Autor: Iustina-Andreea Cărămidă
Grupa: 332CA
Email: iustina.caramida@stud.acs.upb.ro

Introducere

În lumea modernă, energia solară devine tot mai importantă pentru a satisface nevoile noastre de energie într-un mod sustenabil și ecologic. Cu toate acestea, pentru a maximiza eficiența panourilor solare, acestea trebuie să fie aliniate corect către sursa lor de energie primară: Soarele.

Proiectul se concentrează pe automatizarea acestei alinieri, scopul principal fiind crearea unui sistem care să monitorizeze poziția Soarelui și să ajusteze orientarea panoului solar în consecință, astfel încât să maximizeze captarea energiei solare.

Însă, proiectul are o abordare inovatoare: nu ne limităm doar la maximizarea captării de energie solară în timpul zilei, ci dorim să pregătim panoul solar pentru o nouă zi încă de la apusul Soarelui. Astfel, panoul solar se va poziționa automat spre direcția de răsărit, pregătindu-se astfel pentru a începe o nouă zi de captare a energiei solare încă de la primele raze ale dimineții.

În cele ce urmează, vom detalia componentele necesare, conexiunile și codul Arduino utilizat pentru a realiza acest sistem inovator și eficient energetic.

Descriere generală

Dispozitivul va utiliza un servomotor pentru a ajusta alinierea panourilor solare către direcția de unde provine cea mai intensă lumină solară, detectată de cei doi fotorezistori, puși în direcții opuse pentru a capta un mediu mai larg. Microcontroller-ul va coordona acțiunile servomotorului pentru a evalua mediul înconjurător. Informațiile furnizate de fotorezistori vor fi analizate și utilizate pentru a determina poziția optimă față de sursa de lumină, după care dispozitivul va ajusta orientarea panourilor solare în acea direcție.

Mai jos puteți găsi o schemă high-level a proiectului:

Hardware Design

Componentele necesare sunt:

Obiect Cantitate
Arduino UNO board 1
Panou solar 1
SG90 servo motor 1
senzori LDR 2
rezistență 10k 3
rezistență 220 1
LED 1
buton 1
fire multe
poliester mult

Schema electrică este următoarea:

Design-ul montări este umrătorul:

Software Design

Link către repo-ul de Github cu codul sursă: https://github.com/iuniod/Solar-Tracker

Mediul de Dezvoltare

Codul este destinat a fi rulat pe o platformă Arduino, utilizând mediul de dezvoltare Arduino IDE. Arduino IDE oferă suport pentru scrierea, compilarea și încărcarea codului pe plăcile de dezvoltare Arduino. Mediul de dezvoltare este ales pentru simplitatea sa și pentru suportul extins al comunității pentru proiecte de automatizare și robotică.

Librării și Surse Terțe

Codul utilizează librăria `Servo.h` furnizată de Arduino, care simplifică controlul servo motorului. Această librărie gestionează generarea semnalelor PWM necesare pentru a controla un servo motor standard. Utilizarea librăriei reduce complexitatea codului și permite dezvoltatorului să se concentreze pe logica aplicației în loc să se ocupe de detalii de nivel jos.

Organizarea Codului

Codul este structurat în două secțiuni principale: `setup()` și `loop()`. Secțiunea `setup()` este destinată inițializării componentelor hardware și configurării inițiale a sistemului, în timp ce `loop()` conține logica principală care se repetă continuu în timpul funcționării dispozitivului. Codul include următoarele elemente:

  1. Include librării: La început, codul include librăria Servo pentru a permite controlul unui servo motor.
  2. Definește constante: Utilizează directive `#define` pentru a denumi pinii senzorilor LDR și pentru a seta o valoare de eroare.
  3. Inițializează variabile: Declara variabile pentru a păstra starea inițială a servo motorului și pinii pentru LED.
  4. Configurare inițială (`setup()`): Inițializează comunicația serială, configurează pinul PWM pentru servo motor și setările inițiale pentru LED.
  5. Logica de control (`loop()`): Citirea valorilor de la senzorii LDR, compararea lor, ajustarea poziției servo motorului și controlul luminozității unui LED bazat pe intensitatea luminii detectate.

Algoritmi și Structuri Implementate

  1. Citirea senzorilor LDR: Valorile de la doi senzori LDR sunt citite utilizând funcția `analogRead()`. Aceste valori sunt utilizate pentru a determina diferența de intensitate a luminii între cei doi senzori.
  2. Controlul servo motorului: Poziția servo motorului este ajustată pe baza diferenței dintre valorile citite de la senzori. Dacă diferența este semnificativă, poziția motorului este incrementată sau decrementată pentru a orienta sistemul spre sursa de lumină mai puternică.
  3. Controlul luminozității LED-ului: Valorile sumate ale senzorilor LDR sunt mapate la o gamă de luminozitate pentru LED folosind funcția `map()`. LED-ul este apoi controlat utilizând `digitalWrite()`, care setează nivelul de luminozitate în funcție de intensitatea luminii detectate.

Rezultate Obţinute

Care au fost rezultatele obţinute în urma realizării proiectului vostru.

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/mdinica/iustina.caramida.1716796236.txt.gz · Last modified: 2024/05/27 10:50 by iustina.caramida
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