This shows you the differences between two versions of the page.
|
pm:prj2026:andrei.batasev:gabriela.floarea [2026/05/16 20:52] gabriela.floarea |
pm:prj2026:andrei.batasev:gabriela.floarea [2026/05/16 21:22] (current) gabriela.floarea [Hardware Design] |
||
|---|---|---|---|
| Line 27: | Line 27: | ||
| ===== Hardware Design ===== | ===== Hardware Design ===== | ||
| - | **Listă de piese:** | + | === Listă de piese === |
| - | ^ Componentă ^ Cantitate ^ Rol în sistem ^ | + | ^ Componentă ^ Cantitate ^ Rol în sistem ^ |
| - | | Arduino UNO R3, ATmega328P, CH340G, Type-C | 1x | Microcontroller principal, FSM | | + | | Arduino UNO R3, ATmega328P, CH340G, Type-C | 1x | Microcontroller principal, FSM | |
| - | | Servomotor SG90 (0°–180°) | 2x | Lopățică (D9) + Clapetă semințe (D10) | | + | | Servomotor SG90 (0°–180°) | 2x | Lopățică (D9) + clapetă semințe (D10) | |
| - | | Condensator electrolitic 470µF 16V | 2x | Stabilizare alimentare per servo | | + | | Condensator electrolitic 470µF 16V | 2x | Stabilizare alimentare servo-uri | |
| - | | Condensator electrolitic 1000µF 16V | 1x | Stabilizare șină principală 5V | | + | | Condensator electrolitic 1000µF 16V | 1x | Stabilizare alimentare principală | |
| - | | Senzor umiditate sol cu modul | 1x | Citire umiditate analogică (A0) | | + | | Senzor umiditate sol cu modul | 1x | Citire umiditate analogică (A0) | |
| - | | Pompă apă 5V | 1x | Udare automată sol | | + | | Pompă apă 5V | 1x | Udare automată | |
| - | | Furtun silicon ~40cm | 1x | Pompă → sol | | + | | Furtun silicon ~40cm | 1x | Transport apă către sol | |
| - | | Modul dual MOSFET 15A 400W | 1x | Control pompă din Arduino (D6) | | + | | Modul dual MOSFET 15A 400W | 1x | Control pompă din Arduino | |
| - | | Diodă protecție 1N4007 | 1x | Protecție curent invers pompă | | + | | Diodă protecție 1N4007 | 1x | Protecție la curent invers | |
| - | | Buton tactil 6x6x5mm 4 pini | 1x | Start secvență (D2) | | + | | Buton tactil 6x6x5mm | 1x | Pornire secvență | |
| - | | Rezistență 10kΩ 0.25W | 2x | Pull-down buton | | + | | Ecran LCD 16x2 + modul I2C | 1x | Afișare stare și umiditate | |
| - | | Rezistență 220Ω 0.25W | 10x | Limitare curent LED-uri | | + | | Modul alimentare breadboard MB102 | 1x | Distribuire alimentare externă | |
| - | | Ecran LCD 16x2 + modul I2C | 1x | Afișare stare + umiditate (A4, A5) | | + | | Adaptor 9V | 1x | Alimentare externă curentă | |
| - | | Power bank 5V / 2A+ | 1x | Alimentare servo-uri + pompă | | + | | Suport 6 baterii AA | 1x | Alimentare autonomă în versiunea finală | |
| - | | Modul alimentare breadboard MB102 | 1x | Distribuie 5V din power bank | | + | | Breadboard 830 puncte | 1x | Breadboard principal | |
| - | | Breadboard 830 puncte | 1x | Principal | | + | | Breadboard 400 puncte | 1x | Zonă pompă + MOSFET | |
| - | | Breadboard 400 puncte | 1x | Pompă + MOSFET | | + | | Fire jumper M-M / M-F | ~70 | Conexiuni între module | |
| - | | Fire jumper M-M / M-F / lungi M-F | ~70x total| Conexiuni între componente | | + | |
| + | === Interconectarea hardware === | ||
| - | ==== Interconectarea hardware ==== | + | Sistemul este construit în jurul plăcii **Arduino UNO**, care coordonează toate componentele hardware. Componentele de intrare sunt senzorul de umiditate și butonul de start, iar componentele de ieșire sunt cele două servomotoare, LCD-ul și pompa de apă controlată prin MOSFET. |
| - | Sistemul este construit în jurul plăcii Arduino UNO, care coordonează toate componentele hardware. Componentele de intrare sunt senzorul de umiditate și butonul de start, iar componentele de ieșire sunt cele două servomotoare, LCD-ul și pompa de apă controlată prin MOSFET. | + | **LCD-ul 16x2 cu modul I2C** este conectat prin interfața I2C folosind pinii A4 și A5 ai plăcii Arduino UNO. Utilizarea I2C reduce numărul de pini necesari și simplifică schema electrică. |
| - | LCD-ul este conectat prin interfața I2C, folosind pinii A4 și A5 ai plăcii Arduino UNO. Senzorul de umiditate este conectat pe pinul analogic A0, deoarece oferă o valoare variabilă în funcție de umiditatea solului. Butonul de start este conectat pe pinul digital D2 și folosește rezistența internă de pull-up a microcontrollerului. | + | **Senzorul de umiditate** este conectat pe pinul analogic A0 deoarece furnizează o valoare analogică variabilă în funcție de nivelul de apă din sol. |
| - | Cele două servomotoare sunt conectate pe pinii D9 și D10, deoarece aceștia pot genera semnale PWM necesare controlului poziției. Pompa de apă nu este conectată direct la Arduino, ci este controlată printr-un modul MOSFET conectat pe pinul D6. | + | **Butonul de start** este conectat pe pinul D2 și utilizează rezistența internă de tip INPUT_PULLUP a microcontrollerului. Astfel, nu mai este necesară utilizarea unei rezistențe externe. |
| - | Alimentarea este separată: Arduino UNO este alimentat prin USB, iar servo-urile și pompa sunt alimentate prin modulul MB102. În prezent, MB102 este alimentat cu un adaptor de 9V conectat la priză. În varianta finală, adaptorul va fi înlocuit cu un suport de 6 baterii AA, care furnizează tot aproximativ 9V. Toate componentele au GND comun. | + | **Cele două servomotoare SG90** sunt conectate pe pinii D9 și D10 deoarece acești pini suportă semnale PWM necesare controlului poziției servo-urilor. Servo 1 controlează lopățica pentru afânarea și acoperirea solului, iar Servo 2 controlează clapeta pentru eliberarea seminței. |
| - | ==== Justificarea pinilor folosiți ==== | + | **Pompa de apă** este controlată prin intermediul modulului dual MOSFET conectat pe pinul D6. Pompa nu este conectată direct la Arduino deoarece consumă mai mult curent decât poate furniza un pin digital al microcontrollerului. |
| - | Pinii au fost aleși în funcție de rolul fiecărei componente și de facilitățile oferite de Arduino UNO. | + | **Condensatoarele electrolitice** sunt conectate pe linia de alimentare externă pentru reducerea fluctuațiilor de tensiune produse de servo-uri și pompă. |
| - | Pinii A4 și A5 sunt utilizați pentru LCD deoarece pe Arduino UNO aceștia sunt pinii dedicați comunicației I2C: A4 pentru SDA și A5 pentru SCL. Astfel, LCD-ul ocupă doar doi pini de semnal. | + | **Dioda 1N4007** este montată paralel pe pompă pentru protecție împotriva tensiunilor inverse generate la oprirea motorului. |
| - | Pinul A0 este folosit pentru senzorul de umiditate deoarece acesta oferă o ieșire analogică. Valoarea citită este utilizată pentru a determina dacă solul are umiditatea potrivită pentru plantare. | + | === Alimentare === |
| - | Pinul D2 este folosit pentru butonul de start deoarece este un pin digital simplu, potrivit pentru citirea unei apăsări. Butonul este conectat între D2 și GND, iar în cod se folosește INPUT_PULLUP, deci nu este necesară o rezistență externă. | + | Sistemul utilizează alimentare separată pentru partea logică și partea de putere. Arduino UNO este alimentat prin USB Type-C, iar servo-urile și pompa sunt alimentate separat prin modulul MB102. În etapa actuală, MB102 este alimentat cu un adaptor de 9V conectat la priză, iar în varianta finală acesta va fi înlocuit cu un suport pentru 6 baterii AA, care furnizează aproximativ 9V și permite funcționarea autonomă a sistemului. |
| - | Pinii D9 și D10 sunt folosiți pentru servomotoare, deoarece permit controlul precis al poziției prin semnale PWM. Un servomotor controlează lopățica pentru afânare și acoperire, iar celălalt controlează clapeta pentru eliberarea seminței. | + | Toate modulele folosesc **GND comun**, necesar pentru interpretarea corectă a semnalelor de control. |
| - | Pinul D6 este folosit pentru controlul modulului MOSFET care comandă pompa. Pompa nu este alimentată direct din Arduino, deoarece consumă mai mult curent decât poate furniza un pin digital. | + | === Justificarea pinilor folosiți === |
| - | ==== Tabel de conexiuni ==== | + | Pinii utilizați au fost aleși în funcție de rolul fiecărei componente și de funcționalitățile oferite de placa Arduino UNO. LCD-ul 16x2 utilizează comunicația I2C, motiv pentru care este conectat la pinii A4 și A5, dedicați liniilor SDA și SCL. Senzorul de umiditate este conectat la pinul analogic A0 deoarece furnizează o valoare analogică proporțională cu nivelul de apă din sol. Butonul de start este conectat pe pinul digital D2 și utilizează rezistența internă INPUT_PULLUP pentru simplificarea conexiunilor hardware. Cele două servomotoare sunt conectate pe pinii D9 și D10 deoarece acești pini permit generarea semnalelor PWM necesare controlului precis al poziției. Modulul MOSFET este conectat pe pinul D6 și este utilizat pentru controlul pompei de apă fără a solicita direct sursa de curent a microcontrollerului. |
| + | |||
| + | === Tabel de conexiuni === | ||
| ^ Componentă ^ Pin componentă ^ Pin Arduino / Alimentare ^ Rol ^ | ^ Componentă ^ Pin componentă ^ Pin Arduino / Alimentare ^ Rol ^ | ||
| - | | LCD I2C | SDA | A4 | Linie de date I2C | | + | | LCD I2C | SDA | A4 | Linie date I2C | |
| - | | LCD I2C | SCL | A5 | Linie de ceas I2C | | + | | LCD I2C | SCL | A5 | Linie ceas I2C | |
| | LCD I2C | VCC | 5V Arduino | Alimentare LCD | | | LCD I2C | VCC | 5V Arduino | Alimentare LCD | | ||
| | LCD I2C | GND | GND | Masă comună | | | LCD I2C | GND | GND | Masă comună | | ||
| - | | Senzor umiditate | AOUT | A0 | Citire analogică umiditate | | + | | Senzor umiditate | AOUT | A0 | Citire analogică | |
| | Senzor umiditate | VCC | 5V Arduino | Alimentare senzor | | | Senzor umiditate | VCC | 5V Arduino | Alimentare senzor | | ||
| | Senzor umiditate | GND | GND | Masă comună | | | Senzor umiditate | GND | GND | Masă comună | | ||
| | Buton START | pin 1 | D2 | Pornire secvență | | | Buton START | pin 1 | D2 | Pornire secvență | | ||
| - | | Buton START | pin 2 | GND | INPUT_PULLUP intern | | + | | Buton START | pin 2 | GND | INPUT_PULLUP | |
| - | | Servo lopățică | semnal | D9 | Control poziție servo | | + | | Servo lopățică | semnal | D9 | Control servo | |
| | Servo lopățică | VCC | 5V_MB102 | Alimentare externă | | | Servo lopățică | VCC | 5V_MB102 | Alimentare externă | | ||
| | Servo lopățică | GND | GND | Masă comună | | | Servo lopățică | GND | GND | Masă comună | | ||
| - | | Servo clapetă | semnal | D10 | Control clapetă semințe | | + | | Servo clapetă | semnal | D10 | Control clapetă | |
| | Servo clapetă | VCC | 5V_MB102 | Alimentare externă | | | Servo clapetă | VCC | 5V_MB102 | Alimentare externă | | ||
| | Servo clapetă | GND | GND | Masă comună | | | Servo clapetă | GND | GND | Masă comună | | ||
| | MOSFET | TRIG/PWM | D6 | Control pompă | | | MOSFET | TRIG/PWM | D6 | Control pompă | | ||
| | MOSFET | VIN+ | 5V_MB102 | Alimentare pompă | | | MOSFET | VIN+ | 5V_MB102 | Alimentare pompă | | ||
| - | | MOSFET | VIN− | GND_MB102 | Masă alimentare pompă | | + | | MOSFET | VIN− | GND_MB102 | Masă alimentare | |
| - | | Pompă | + | VOUT+ MOSFET | Plus pompă | | + | | Pompă | + | VOUT+ MOSFET | Alimentare pompă | |
| - | | Pompă | − | VOUT− MOSFET | Minus pompă | | + | | Pompă | − | VOUT− MOSFET | Alimentare pompă | |
| - | | Diodă 1N4007 | catod, capăt cu bandă | VOUT+ | Protecție pompă | | + | | Diodă 1N4007 | catod | VOUT+ | Protecție pompă | |
| - | | Diodă 1N4007 | anod, capăt fără bandă | VOUT− | Protecție pompă | | + | | Diodă 1N4007 | anod | VOUT− | Protecție pompă | |
| - | | Condensatoare | + | 5V_MB102 | Stabilizare alimentare | | + | | Condensatoare | + | 5V_MB102 | Stabilizare tensiune | |
| - | | Condensatoare | − | GND_MB102 | Stabilizare alimentare | | + | | Condensatoare | − | GND_MB102 | Stabilizare tensiune | |
| - | + | === Schema electrică === | |
| - | + | ||
| - | **Schema electrică:** | + | |
| {{:pm:prj2026:andrei.batasev:screenshot_2026-05-16_203412.png?800|}} | {{:pm:prj2026:andrei.batasev:screenshot_2026-05-16_203412.png?800|}} | ||
| - | ==== Explicarea schemei electrice ==== | + | === Explicarea schemei electrice === |
| - | + | ||
| - | Schema electrică realizată în EasyEDA prezintă interconectarea completă a componentelor folosite în proiect. Arduino UNO se află în centrul sistemului și trimite sau primește semnale de la fiecare modul. | + | |
| - | + | ||
| - | LCD-ul este conectat prin I2C la pinii A4 și A5, ceea ce reduce numărul de conexiuni necesare. Senzorul de umiditate este conectat la pinul A0, iar valoarea analogică citită este folosită pentru decizia de continuare sau oprire a procesului de plantare. | + | |
| - | + | ||
| - | Butonul de start este conectat între D2 și GND. Deoarece în cod se folosește INPUT_PULLUP, starea normală a pinului este HIGH, iar la apăsare devine LOW. Astfel, schema nu mai are nevoie de rezistență externă pentru buton. | + | |
| - | + | ||
| - | Servomotoarele sunt controlate doar prin firele de semnal conectate la D9 și D10. Alimentarea lor este făcută separat, prin MB102, pentru a evita resetarea plăcii Arduino din cauza consumului mare de curent. | + | |
| - | + | ||
| - | Pompa de apă este controlată prin modulul MOSFET. Arduino trimite semnalul de comandă pe D6, iar MOSFET-ul permite alimentarea pompei din sursa externă. Astfel, Arduino nu furnizează direct curentul necesar pompei, ci doar controlează pornirea și oprirea acesteia. | + | |
| - | + | ||
| - | Dioda 1N4007 este montată paralel pe pompă, cu catodul la VOUT+ și anodul la VOUT−. Aceasta protejează circuitul împotriva tensiunilor inverse generate la oprirea motorului pompei. | + | |
| - | Condensatoarele electrolitice sunt conectate între 5V_MB102 și GND_MB102. Acestea ajută la stabilizarea tensiunii și reduc fluctuațiile cauzate de pornirea pompei sau de mișcarea servomotoarelor. | + | * **Arduino UNO** reprezintă unitatea centrală a sistemului și coordonează toate componentele conectate. |
| + | * **LCD-ul** utilizează protocolul I2C pentru reducerea numărului de conexiuni necesare. Comunicarea se realizează prin liniile SDA și SCL, conectate la pinii A4 și A5. | ||
| + | * **Senzorul de umiditate** transmite către Arduino o valoare analogică proporțională cu nivelul de apă din sol. Această valoare este utilizată pentru luarea deciziei privind continuarea sau oprirea procesului de plantare. | ||
| + | * **Butonul de start** este conectat între D2 și GND. În configurația INPUT_PULLUP, pinul are în mod normal valoarea HIGH și devine LOW atunci când butonul este apăsat. | ||
| + | * **Servomotoarele** sunt controlate prin semnale PWM generate de Arduino, însă sunt alimentate separat prin MB102 pentru a evita instabilitatea alimentării microcontrollerului. | ||
| + | * **Pompa de apă** este controlată prin intermediul modulului MOSFET. Arduino trimite doar semnalul de comandă, iar alimentarea efectivă a pompei se face din sursa externă. | ||
| + | * **Dioda 1N4007** este montată paralel pe pompă și protejează circuitul împotriva tensiunilor inverse produse la oprirea motorului pompei. | ||
| + | * **Condensatoarele electrolitice** stabilizează alimentarea și reduc fluctuațiile de tensiune produse de actuatoare. | ||
| + | * Toate modulele folosesc aceeași masă comună pentru funcționarea corectă a întregului sistem. | ||
| - | Toate modulele au masă comună. Acest lucru este important deoarece Arduino, MOSFET-ul, senzorii și actuatoarele trebuie să aibă aceeași referință electrică pentru ca semnalele de control să fie interpretate corect. | + | === Componentele conectate - LCD Test === |
| + | {{:pm:prj2026:andrei.batasev:whatsapp_image_2026-05-16_at_21.20.23.jpeg?700|}} | ||
| ===== Software Design ===== | ===== Software Design ===== | ||