Solar tracker

  • Autor: Goanta Rares-Stefan
  • Grupa: 333CB

Introducere

Proiectul “Solar Tracker” prezinta un sistem de urmarire a soarelui automatizat pe o singura axa, care are scopul de a imbunatatii eficienta unui paou solar prin orientarea constanta a acestuia catre soare/sursa de lumina.

Descriere generală

Functionarea sistemului se bazeaza pe doi fotorezistori pusi pe partile opuse ale unei suprafete, care detecteaza diferenta de intensitate a luminii solare. Aceste valori sunt analizate de o placa Arduino, care controleaza un servomotor SG90 pentru a roti panoul solar. Panoul se roteste pana cand cei doi fotorezistori arata valori similare, ceea ce inseamna ca niciunul nu e in umbra, iar panoul solar este perpendicular pe directia luminii.

Panoul solar este conectat la Arduino printr-un divizor de tensiune, ceea ce permite monitorizarea tensiunii generate in timp real.

Pentru monitorizarea de la distanta, sistemul este echipat cu un modul Bluetooth HC-05, prin care pot fi transmise date precum valorile fotorezistorilor sau tensiunea generata de panou, catrea aplicatia Serial Bluetooth Terminal.

Conexiuni hardware:

  • Cei doi fotorezistori sunt conectati in divizoare de tensiune, iar iesirile sunt conectate la pinii A0 si A1 ai Arduino-ului (interfata ADC)
  • Panoul solar este conectat printr-un divizor de tensiune la pinul A2, tot prin ADC
  • Servomotorul este conectat la pinul digital 9, folosind semnal PWM pentru controlul pozitiei
  • Modulul Bluetooth HC-05 este conectat prin interfata UART, utilizand pinii 10(TX) si 11(RX)

Schema bloc generală

Hardware Design

Schema electrica

Fotorezistori - 2 senzori

* Conectati la:

  • Fotorezistor 1 - analog pin A0
  • Fotorezistor 2 - analog pin A1

* Motiv: Fotorezistorii sunt folositi pentru a detecta diferenta dintre lumina intre cele 2 parti ale suprafetei. Sunt conectati prin cate un divizor de tensiune cu rezistente de 10kΩ, iar iesirea este citita de pinii analogici A0 si A1 prin ADC.

Servomotor SG90

* Conectat la:

  • Pin D9

* Motiv: Servomotorul controleaza orientarea panoului solar. Este conectat la un pin digital cu functionalitate PWM, necesara pentru control precis

Panoul solar 5V

* Conectat la:

  • Plus(VCC) - analog pin A2 prin divizor de tensiune
  • Minus(GND) - masa comuna

* Motiv: Panoul genereaza o tensiune proportionala cu lumina primita. Este folosit un divizor de tensiune deoarece panoul e posibil sa produca prea mult pentru Arduino. Tensiunea panoului este citita de Arduino prin pinul analog A2, tot prin ADC, pentru a putea fi monitorizata in timp real

Modul Bluetooth HC-05

* Conectat la: * TX(modul) - D10 * RX(modul) - D11 * Motiv: Modulul comunica prin interfata UART. Se utilizeaza libraria SoftwareSerial pentru a crea o comunicare seriala pe D10 si D11. Prin aceasta conexiune, Arduino transmite catre aplicatia Serial Bluetooth Terminal informatii

Proiect

Bill Of Materials


Componenta Link Datasheet
Arduino MEGA2560 Nu am link Datasheet
Servomotor SG90 Nu am link Datasheet
Fotorezistori Optimus Digital Datasheet
Panou solar eMAG Nu am datasheet
Modul Bluetooth HC-05 Optimus Digital Datasheet

Software Design

Rotirea panoului:

* Sistemul citește valori de la doi fotorezistori, calculează diferența de iluminare și mișcă un servomotor pentru a orienta un panou solar în direcția cu lumină mai puternică

Transmiterea datelor prin Bluetooth:

* Se transmit valorile fotorezistorilor si voltajul panoului solar prin bluetooth catre aplicatia Serial Bluetooth Terminal

Motivarea bibliotecilor:

* Servo.h: permite controlul simplu și precis al servomotorului cu funcții precum .attach() și .write()

* SoftwareSerial.h: permite utilizarea altor pini digitali pentru comunicare serială (Bluetooth), deoarece pinii 0 și 1 sunt deja rezervați pentru comunicația USB (Serial Monitor). Am evitat AltSoftSerial.h din cauza conflictelor cu biblioteca Servo.

Utilizarea funcționalităților din laborator: * ADC (Analog-to-Digital Converter):

  • Folosit pentru a citi valorile analogice de la fotorezistorii conectați la A0 și A1 și de la panoul solar (A2)
  • Funcția analogRead(pin) convertește tensiunile analogice (0–5V) în valori numerice între 0 și 1023
  • Aceste valori sunt folosite pentru a calcula diferența de lumină și tensiunea generată de panou

* PWM (Pulse Width Modulation):

  • Folosit prin biblioteca Servo.h, care utilizează semnal PWM pentru a controla un servomotor conectat la pinul digital 9
  • Funcția servo.write(angle) trimite semnal PWM corespunzător unui unghi între 0 și 180 de grade
  • Această funcționalitate permite orientarea precisă a panoului solar către sursa de lumină

* UART (Universal Asynchronous Receiver/Transmitter):

  • Este utilizat pentru comunicare serială, atât prin interfața USB (Serial Monitor), cât și prin Bluetooth
  • SoftwareSerial BTSerial(<pin1>, <pin2>) creează o conexiune UART software pentru comunicația cu modulul Bluetooth HC-05
  • Datele sunt trimise de la Arduino către dispozitivul conectat prin BTSerial.println(…)

Structura proiectului și interacțiunea funcționalităților:

* Fotorezistori - măsoară lumina pe două direcții.

* Logica diferenței - determină dacă servomotorul trebuie să se rotească stânga/dreapta pentru a alinia panoul.

* Servo motor - este controlat în funcție de diferență (dacă e mai mare decât margin).

* Panoul solar - măsoară tensiunea furnizată de lumină.

* Bluetooth - transmite datele colectate într-un format structurat.

* Validare - s-a făcut prin observarea mișcării servo în funcție de lumină și recepționarea corectă a datelor transmise.

Elementul de noutate al proiectului:

* Proiectul implementează un sistem simplu dar eficient de urmărire solară cu feedback în timp real transmis prin Bluetooth * Alimentarea folosind panouri solare este “la moda”, iar acest proiect poate duce la eficientizarea ei

Rezultate Obţinute

Stadiul actual al implementarii:

* Cele doua functionalitati principale, anume cea de rotire a panoului in functie de lumina si cea de transmitere prin bluetooth a datelor sunt functionale si merg bine

* Cele doua nu functioneaza concomitent totusi

* O posibila rezolvare pentru acasta problema este conectarea servomotorului la o sursa de alimentare separata fata de modulul Bluetooth

Optimizari realizate:

* Setarea unei valori “margin” cu 50 pentru a evita fluctuații minore ce pot cauza mișcări inutil

Incercari de rezolvari pentru problema servomotor + modul(care nu au dat roade): * Verificarea alimentarii:

  • Am testat cele 2 functinalitati principale separat, caz in care functionau corect; am sesizat astfel posibila problema cu alimentarea

* Modificarea pinilor de comunicatie pentru SoftWareSerial:

  • pinii 10 si 11 - servomotorul se roteste stanga-dreapta constant dar bluetooth functioneaza
  • pinii 2 si 3 - bluetooth merge dar servomotorul nu se misca deloc
  • pinii 5 si 6 - servomotorul merge dar bluetooth-ul nu

* Incercarea folosirii biblioteci AltSoftSerial

* Logica de separare temporara intre scrierea prin bluetooth si rotirea servomotorului

Concluzii

Proiectul a demonstrat cu succes funcționarea sistemului de urmărire solară și transmiterea datelor prin Bluetooth, evidențiind atât potențialul cât și limitările soluției curente. În continuare, o soluție hardware pentru alimentarea separată a modulului Bluetooth și a servomotorului este posibil sa asigure funcționarea simultană. Astfel, proiectul oferă o bază solidă pentru dezvoltări ulterioare în monitorizarea și orientarea panourilor solare, cu aplicabilitate practică crescută.

[!Video](https://youtu.be/GAS8k1Odir0)

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/prj2025/vradulescu/rares_stefan.goanta.txt · Last modified: 2025/05/25 23:07 by rares_stefan.goanta
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