This is an old revision of the document!


Single-Axis Solar Tracker with LCD Monitoring

  • Autor: Neacsiu Victor-Teodor
  • Grupa: 331CA

Introducere

Proiectul propune realizarea unui sistem embedded capabil sa urmareasca automat directia unei surse de lumina pe o singura axa. Sistemul este bazat pe Arduino Mega si foloseste doi senzori de lumina pentru a determina directia de incidenta a luminii, respectiv un servomotor pentru orientarea mecanica a platformei.

Obiectivul principal este integrarea unei componente hardware vizibile si relevante intr-un sistem functional, care combina senzori analogici, actuator, interfata de afisare si control local prin butoane. Proiectul urmareste obtinerea unui prototip capabil sa functioneze atat in mod automat, cat si in mod manual.

Ideea a pornit de la dorinta de a construi un sistem simplu, dar sugestiv, care sa evidentieze clar utilizarea perifericelor studiate in cadrul laboratoarelor. Dincolo de partea didactica, un astfel de sistem ilustreaza principiul de baza al orientarii automate catre o sursa de lumina, utilizat in aplicatii reale de monitorizare sau optimizare a expunerii.

Descriere generala

Arhitectura proiectului este construita in jurul placii Arduino Mega. Sistemul este organizat in module de intrare, procesare si iesire.

Datele de intrare provin de la doi senzori de lumina de tip LDR, montati cu un separator fizic intre ei, astfel incat diferenta de iluminare sa poata indica directia in care se afla sursa de lumina. Valorile citite sunt preluate prin intrarile analogice ale microcontrolerului, iar pe baza lor se determina directia si amplitudinea corectiei necesare.

Iesirea principala a sistemului este reprezentata de servomotorul care roteste platforma trackerului. Sistemul mai include un LCD pentru afisarea valorilor citite, a modului de functionare si a pozitiei curente, precum si butoane pentru selectarea modului automat sau manual si pentru controlul pozitiei in modul manual. Optional, doua limit switch-uri sunt utilizate pentru limitarea cursei mecanice si protejarea ansamblului.

Interactiunea modulelor

  • Cei doi senzori LDR sunt conectati in doua divizoare de tensiune si transmit catre Arduino Mega doua valori analogice proportionale cu nivelul de iluminare.
  • Microcontrolerul citeste periodic valorile senzorilor si calculeaza diferenta dintre acestea.
  • Daca diferenta depaseste un prag stabilit, sistemul comanda servomotorul sa roteasca platforma catre senzorul mai puternic iluminat.
  • LCD-ul afiseaza valorile celor doi senzori, modul de functionare si pozitia curenta a servomotorului.
  • Butoanele permit comutarea intre mod automat si mod manual, precum si miscarea trackerului in stanga sau in dreapta.
  • Limit switch-urile, daca sunt montate, opresc deplasarea in cazul atingerii capetelor de cursa.
  • Buzzerul poate fi utilizat pentru semnalizarea schimbarii modului de functionare sau a unei erori.

Schema bloc

Hardware Design

În etapa curentă a proiectului a fost realizată și testată partea principală de hardware a sistemului de tip solar tracker. Au fost conectate și verificate următoarele module: afișajul LCD TC1602A, cei doi senzori de lumină de tip LDR, cele trei butoane pentru controlul sistemului, buzzer-ul activ și servomotorul utilizat pentru orientarea ansamblului.

Afișajul LCD a fost testat separat și funcționează corect, fiind necesară utilizarea unui potențiometru de 10 kOhm pentru reglarea contrastului și a unei rezistențe de 220 Ohm pentru iluminarea de fundal. Cei doi senzori LDR au fost conectați în două divizoare de tensiune și au fost verificați prin citirea valorilor analogice pe Arduino, observându-se modificarea acestora în funcție de intensitatea luminii. Butoanele au fost testate în configurație INPUT_PULLUP și funcționează corect. Servomotorul a fost testat prin comenzi simple de poziționare și răspunde corespunzător.

În acest moment, componentele hardware de bază sunt funcționale și permit implementarea completă a logicii proiectului, atât în mod manual, cât și în mod automat.

Componentele folosite și rolul lor în proiect

Componentele principale utilizate în proiect sunt:

  • Arduino Uno
  • LCD TC1602A 16×2
  • 2 x senzori de lumină tip LDR
  • 1 x servomotor SM-S2309S
  • 3 x butoane
  • 1 x buzzer activ 5V
  • 2 x rezistențe de 10 kOhm pentru divizoarele de tensiune ale LDR-urilor
  • 1 x potențiometru de 10 kOhm pentru reglarea contrastului LCD-ului
  • 1 x rezistență de 220 Ohm pentru backlight-ul LCD-ului
  • 1 x breadboard
  • set fire de conexiune
  • suport mecanic pentru servo și senzori
  • separator fizic între cei doi senzori de lumină

Arduino Uno reprezintă unitatea centrală de control a sistemului. Acesta citește valorile de la senzori, preia comenzile de la butoane, comandă servomotorul și actualizează informațiile afișate pe LCD.

Cei doi senzori de lumină LDR sunt utilizați pentru detectarea nivelului de lumină din două direcții diferite. Comparând valorile celor doi senzori, sistemul determină direcția în care trebuie orientat servomotorul.

Rezistențele de 10 kOhm sunt utilizate împreună cu LDR-urile pentru realizarea divizoarelor de tensiune. Acestea transformă variația de rezistență a senzorilor într-o variație de tensiune ce poate fi citită de intrările analogice ale microcontrolerului.

LCD-ul TC1602A este utilizat pentru afișarea informațiilor esențiale în timp real, precum modul de funcționare, valorile citite de la senzori și poziția servomotorului.

Potențiometrul de 10 kOhm are rolul de a regla contrastul afișajului LCD prin controlul tensiunii aplicate pe pinul VO.

Rezistența de 220 Ohm este utilizată pentru limitarea curentului de alimentare a iluminării de fundal a LCD-ului.

Cele trei butoane sunt utilizate pentru interacțiunea locală cu sistemul: schimbarea modului de funcționare și deplasarea manuală a servomotorului spre stânga sau spre dreapta.

Servomotorul SM-S2309S este actuatorul principal al proiectului și are rolul de a orienta ansamblul în funcție de comenzile primite de la microcontroler.

Buzzer-ul activ de 5V este utilizat pentru semnalizare sonoră, de exemplu la pornirea sistemului sau la schimbarea modului de funcționare.

Pinii utilizați pentru fiecare componentă

În implementarea actuală au fost utilizați următorii pini ai plăcii Arduino Uno:

  • A0 – senzor LDR stânga
  • A1 – senzor LDR dreapta
  • D2 – pin RS pentru LCD
  • D3 – pin E pentru LCD
  • D4 – linie de date D4 pentru LCD
  • D5 – linie de date D5 pentru LCD
  • D6 – linie de date D6 pentru LCD
  • D7 – linie de date D7 pentru LCD
  • D8 – buzzer activ
  • D9 – semnal de comandă pentru servomotor
  • D10 – buton schimbare mod
  • D11 – buton mișcare spre stânga
  • D12 – buton mișcare spre dreapta

Intrările analogice A0 și A1 sunt folosite pentru cei doi senzori LDR, deoarece valorile acestora sunt analogice și trebuie convertite numeric de convertorul analog-digital al plăcii.

Pinii D2-D7 sunt folosiți pentru conectarea LCD-ului în modul paralel 4-bit. Această configurație permite reducerea numărului de pini utilizați față de modul 8-bit, păstrând în același timp funcționalitatea completă a afișajului.

Pinul D8 este utilizat pentru buzzer, deoarece acesta funcționează ca o ieșire digitală simplă.

Pinul D9 este utilizat pentru servomotor, deoarece este potrivit pentru generarea semnalului necesar controlului servo-ului.

Pinii D10-D12 sunt utilizați pentru butoane și sunt configurați software folosind INPUT_PULLUP, astfel încât butoanele sunt conectate simplu între pin și masă.

Descrierea conexiunilor hardware

Cei doi senzori de lumină de tip LDR sunt conectați în două divizoare de tensiune identice. Fiecare LDR este conectat între +5V și nodul de semnal, iar din același nod o rezistență de 10 kOhm este conectată la GND. Punctul median este conectat la una dintre intrările analogice ale plăcii Arduino. Astfel, variația de lumină produce o variație de tensiune care poate fi citită de microcontroler.

LCD-ul TC1602A este conectat în modul paralel 4-bit. Pinii de alimentare sunt conectați la +5V și GND, pinul RW este legat direct la GND, iar pinul VO este conectat la potențiometrul de contrast. Pinii RS și E sunt controlați de Arduino, iar liniile de date folosite sunt D4-D7. Pentru backlight este utilizată o rezistență de 220 Ohm pe pinul LED+.

Butoanele sunt conectate între pinii digitali și GND. În cod este folosită configurația INPUT_PULLUP, ceea ce înseamnă că în stare normală pinul este citit ca HIGH, iar la apăsare devine LOW.

Servomotorul este conectat la un pin digital de control și este comandat prin semnal de poziționare. Acesta modifică orientarea fizică a ansamblului în funcție de comenzile primite din program.

Buzzer-ul activ este conectat între pinul D8 și GND și este utilizat pentru feedback sonor.

Explicația schemei electrice

Schema electrică este organizată în jurul plăcii Arduino Uno, care reprezintă elementul central al sistemului. Toate componentele periferice sunt conectate la aceasta în funcție de rolul lor.

Senzorii LDR formează două canale de intrare analogică, prin care sistemul primește informații despre iluminarea din partea stângă și din partea dreaptă. Aceste informații sunt comparate în software pentru a decide direcția de orientare a servomotorului.

LCD-ul reprezintă interfața de afișare a proiectului și primește date de la Arduino prin pinii digitali. Potențiometrul conectat la pinul VO permite reglarea contrastului și face posibilă afișarea corectă a caracterelor.

Butoanele reprezintă interfața de intrare pentru utilizator și permit controlul local al sistemului în modul manual, precum și schimbarea modului de funcționare.

Servomotorul este elementul de ieșire principal și transformă comenzile digitale primite de la Arduino în mișcare mecanică. Acesta realizează orientarea sistemului spre direcția în care iluminarea este mai puternică.

Buzzer-ul este o ieșire auxiliară, utilizată pentru semnalizare acustică.

Schema electrică

Figura 1. Schema electrică a proiectului

Schema electrică evidențiază interconectarea dintre Arduino Uno și toate componentele principale ale sistemului. Se observă cele două divizoare de tensiune realizate cu LDR-uri și rezistențe de 10 kOhm, conexiunile LCD-ului în modul paralel 4-bit, legarea butoanelor pe intrări digitale folosind INPUT_PULLUP, conectarea buzzer-ului și a servomotorului, precum și alimentarea componentelor la 5V și GND.

Montajul hardware în practică

Figura 2. Cablajul real al proiectului

cablaj_nvt.jpeg

Figura prezintă implementarea practică a conexiunilor hardware pe breadboard. Se pot observa placa Arduino Uno, afișajul LCD TC1602A, potențiometrul de contrast, rezistența de backlight, firele de conexiune și interconectarea componentelor conform schemei electrice. Montajul realizat a fost utilizat pentru testarea individuală și integrată a componentelor.

Dovezi de funcționare

Pentru validarea implementării hardware au fost realizate teste individuale pentru principalele componente.

Afișajul LCD a fost verificat prin afișarea unui text de test, confirmând funcționarea corectă a conexiunilor și a reglării contrastului. Cei doi senzori LDR au fost testați prin citirea valorilor în Serial Monitor, observându-se variații ale acestora în funcție de intensitatea luminii. Butoanele au fost testate prin citirea stărilor logice și s-a confirmat funcționarea corectă în configurația INPUT_PULLUP. Servomotorul a fost verificat prin deplasarea la mai multe poziții, iar acesta răspunde corect la comenzile date de microcontroler.

Dovezile de funcționare sunt reprezentate de:

  • afișarea corectă a textului pe LCD
  • variația valorilor LDR în funcție de lumină
  • răspunsul corect al butoanelor
  • poziționarea servomotorului la comenzi simple

Laboratoare acoperite prin proiect

Prin implementarea hardware actuală, proiectul acoperă următoarele laboratoare:

  • GPIO – utilizat pentru butoane, buzzer și interfața digitală a LCD-ului
  • ADC – utilizat pentru citirea celor doi senzori LDR
  • Timere / PWM – utilizat pentru controlul servomotorului
  • UART – utilizat pentru testare și debug prin Serial Monitor

Concluzie

Partea principală de hardware a proiectului a fost implementată și testată cu succes. Modulele esențiale pentru funcționarea sistemului sunt deja conectate și validate individual. În etapa următoare, accentul va fi pus pe integrarea completă a logicii de control automat și pe finalizarea montajului mecanic al sistemului.

Software Design

Software-ul este organizat in mai multe module logice:

  • modul de citire a senzorilor
  • modul de decizie
  • modul de control al servomotorului
  • modul de interfata utilizator
  • modul de afisare pe LCD

In bucla principala a programului sunt citite periodic valorile celor doi senzori de lumina. Dupa o filtrare simpla a valorilor si compararea lor, se calculeaza diferenta de iluminare. Daca aceasta diferenta este mai mare decat un prag ales experimental, se decide miscarea servomotorului intr-o anumita directie. Daca diferenta este sub prag, sistemul considera ca trackerul este deja orientat corespunzator si nu modifica pozitia.

Programul ofera doua moduri de functionare:

  • Mod automat - pozitia este ajustata automat pe baza valorilor citite de la senzori
  • Mod manual - pozitia este controlata de utilizator prin doua butoane dedicate

Afisajul LCD este actualizat periodic cu informatii despre starea curenta a sistemului. In plus, intrarile de la butoane sunt tratate astfel incat sa permita schimbarea modului de functionare si controlul platformei fara comportamente instabile.

Laboratoarele valorificate in proiect sunt:

  • GPIO
  • ADC
  • Timere / PWM
  • I2C

Rezultate Obtinute

Sistemul reuseste sa detecteze diferenta de iluminare dintre cei doi senzori si sa orienteze platforma catre directia in care intensitatea luminii este mai mare. Modul automat permite urmarirea simpla a sursei de lumina, iar modul manual ofera utilizatorului control direct asupra pozitiei servomotorului.

LCD-ul afiseaza informatiile esentiale pentru monitorizarea sistemului, iar integrarea componentelor hardware ofera o demonstratie clara a modului in care pot fi combinate perifericele studiate in laborator intr-un proiect practic.

Poze / video demo:

Concluzii

Proiectul demonstreaza integrarea cu succes a mai multor componente hardware si software intr-un sistem embedded functional. Au fost utilizate notiuni legate de citiri analogice, control PWM, interfatare digitala si afisare de informatii, toate intr-un context aplicat si usor de inteles.

Un avantaj important al proiectului este componenta hardware vizibila si interactiva, care il face potrivit pentru demonstrarea practica a principiilor studiate in cadrul materiei. Ca dezvoltari viitoare, sistemul ar putea fi extins catre o varianta pe doua axe, cu mai multi senzori sau cu functionalitati suplimentare de logare si monitorizare.

GitHub

  • Link repository:

Jurnal

  • martie - 2 mai 2026: planificare, cautare piese proiect, comanda
  • 3 mai - onwards: incepere executie

Bibliografie/Resurse

pm/prj2026/farhad_ali.gul/victor.neacsiu.1778952235.txt.gz · Last modified: 2026/05/16 20:23 by victor.neacsiu
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