This shows you the differences between two versions of the page.
|
pm:prj2026:farhad_ali.gul:victor.neacsiu [2026/05/03 17:46] victor.neacsiu created |
pm:prj2026:farhad_ali.gul:victor.neacsiu [2026/05/19 10:35] (current) victor.neacsiu [GitHub] |
||
|---|---|---|---|
| Line 32: | Line 32: | ||
| ==== Schema bloc ==== | ==== Schema bloc ==== | ||
| - | https://ocw.cs.pub.ro/courses/_media/pm/prj2026/farhad_ali.gul/schema_bloc.png?w=120&h=90&t=1777819066&tok=7d55fe | + | {{https://ocw.cs.pub.ro/courses/_media/pm/prj2026/farhad_ali.gul/schema_bloc.png?700}} |
| ===== Hardware Design ===== | ===== Hardware Design ===== | ||
| - | Componentele principale utilizate in proiect sunt: | + | Î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. |
| - | * Arduino Mega | + | 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. |
| - | * LCD 16x2 | + | |
| - | * 2 x senzori de lumina tip LDR | + | Î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. |
| - | * 1 x servomotor SG90 | + | |
| + | ==== Componentele folosite și rolul lor în proiect ==== | ||
| + | |||
| + | Componentele principale utilizate în proiect sunt: | ||
| + | |||
| + | * Arduino Uno | ||
| + | * LCD TC1602A 16x2 | ||
| + | * 2 x senzori de lumină tip LDR | ||
| + | * 1 x servomotor SM-S2309S | ||
| * 3 x butoane | * 3 x butoane | ||
| - | * 2 x limit switch-uri | + | * 1 x buzzer activ 5V |
| - | * 1 x buzzer | + | * 2 x rezistențe de 10 kOhm pentru divizoarele de tensiune ale LDR-urilor |
| - | * 2 x rezistente de 10 kOhm pentru divizoarele de tensiune ale LDR-urilor | + | * 1 x potențiometru de 10 kOhm pentru reglarea contrastului LCD-ului |
| - | * 1 x sursa externa de 5V pentru alimentarea servomotorului | + | * 1 x rezistență de 220 Ohm pentru backlight-ul LCD-ului |
| * 1 x breadboard | * 1 x breadboard | ||
| * set fire de conexiune | * set fire de conexiune | ||
| - | * suport mecanic pentru servo si senzori | + | * suport mecanic pentru servo și senzori |
| - | * separator fizic intre cei doi senzori de lumina | + | * 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** | ||
| + | |||
| + | {{https://ocw.cs.pub.ro/courses/_media/pm/prj2026/farhad_ali.gul/schema_electrica_nvt.png?700}} | ||
| + | |||
| + | 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** | ||
| + | |||
| + | {{ https://ocw.cs.pub.ro/courses/_media/pm/prj2026/farhad_ali.gul/cablaj_nvt.jpeg?700 }} | ||
| + | |||
| + | 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: | ||
| - | Conectarea senzorilor de lumina se realizeaza prin divizoare de tensiune, astfel incat valorile sa poata fi citite pe intrari analogice. Servomotorul este controlat printr-un semnal PWM generat de microcontroler, dar este alimentat dintr-o sursa externa de 5V pentru a evita instabilitatea sistemului. Masa sursei externe este comuna cu masa placii Arduino. | + | * **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 | ||
| - | LCD-ul este utilizat pentru afisarea informatiilor esentiale in timp real. Daca acesta este echipat cu adaptor I2C, conexiunea se reduce la liniile SDA si SCL, simplificand mult cablarea. Butoanele sunt conectate pe intrari digitale si sunt folosite pentru controlul local al sistemului. Limit switch-urile sunt montate la extremitatile cursei mecanice pentru protectia ansamblului. | + | ==== 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 Design ===== | ||
| Line 97: | Line 213: | ||
| ===== GitHub ===== | ===== GitHub ===== | ||
| - | * Link repository: | + | * Link repository: https://github.com/teoneacsiu/PM_project |
| ===== Jurnal ===== | ===== Jurnal ===== | ||