Differences

This shows you the differences between two versions of the page.

Link to this comparison view

pm:prj2026:bianca.popa1106:miruna.iliescu [2026/05/23 13:54]
miruna.iliescu [Hardware Design]
pm:prj2026:bianca.popa1106:miruna.iliescu [2026/05/24 20:36] (current)
miruna.iliescu [Hardware Design]
Line 101: Line 101:
 Pompa de apă este controlată prin modulul releu (pinul D7). Releul permite pornirea și Pompa de apă este controlată prin modulul releu (pinul D7). Releul permite pornirea și
 oprirea pompei fără ca aceasta să fie alimentată direct dintr-un pin al microcontrolerului. oprirea pompei fără ca aceasta să fie alimentată direct dintr-un pin al microcontrolerului.
-Pompa este alimentată separat de la suportul cu 4 baterii AA (aproximativ ​6V). Dioda+Pompa este alimentată separat de la suportul cu 4 baterii AA (6V). Dioda
 1N4007, montată în paralel cu terminalele pompei (catodul spre +), elimină spike-urile 1N4007, montată în paralel cu terminalele pompei (catodul spre +), elimină spike-urile
 inductive generate de motorul DC la comutarea releului. inductive generate de motorul DC la comutarea releului.
Line 127: Line 127:
 Timpul este gestionat printr-un contor propriu de milisecunde (uptime_ms()),​ implementat Timpul este gestionat printr-un contor propriu de milisecunde (uptime_ms()),​ implementat
 folosind **Timer1 în mod CTC** cu prescaler 64 și OCR1A = 249, generând o întrerupere la folosind **Timer1 în mod CTC** cu prescaler 64 și OCR1A = 249, generând o întrerupere la
-fiecare 1 ms (pentru F_CPU = 16 MHz).+fiecare 1 ms.
  
 ==== Moduri de funcționare ==== ==== Moduri de funcționare ====
Line 138: Line 138:
 În MODE_AUTO, mașina de stări (irrigation_state_t) parcurge: În MODE_AUTO, mașina de stări (irrigation_state_t) parcurge:
  
-  * **STATE_IDLE**:​ citire senzor la intervale regulatedacă umiditatea < prag → STATE_WATERING +  * **STATE_IDLE**:​ citire senzor la intervale regulatedacă umiditatea < prag -> STATE_WATERING 
-  * **STATE_WATERING**:​ pompă pornită ​pentru ​WATERING_TIME_MSla expirare ​→ STATE_ABSORB_WAIT +  * **STATE_WATERING**:​ pompă pornită ​timp de WATERING_TIME_MSla expirare ​-> STATE_ABSORB_WAIT 
-  * **STATE_ABSORB_WAIT**:​ așteptare ABSORB_TIME_MS pentru absorbția apei → STATE_IDLE+  * **STATE_ABSORB_WAIT**:​ așteptare ABSORB_TIME_MS pentru absorbția apei -> STATE_IDLE
   * **STATE_SAFETY_WAIT**:​ pauză de siguranță după MAX_WATERING_CYCLES cicluri consecutive   * **STATE_SAFETY_WAIT**:​ pauză de siguranță după MAX_WATERING_CYCLES cicluri consecutive
  
Line 171: Line 171:
  
 ===== Rezultate ===== ===== Rezultate =====
 +==== Hardware final proiect ====
 +{{ :​pm:​prj2026:​bianca.popa1106:​miruna.iliescu:​hw2.png?​800 | Hardware final proiect}}
 +{{ :​pm:​prj2026:​bianca.popa1106:​miruna.iliescu:​hw1.png?​800 | Hardware final proiect}}
  
-Această secțiune va fi completată după finalizarea testării sistemului.+==== Senzor de umididate si modulul interfata I2C pentru LCD ==== 
 +{{ :​pm:​prj2026:​bianca.popa1106:​miruna.iliescu:​hw_senzor_lcd.png?​800 | Senzor de umididate si modulul interfata I2C pentru LCD}}
  
-===== Concluzii =====+==== Sistem de irigare finalizat ​==== 
 +{{ :​pm:​prj2026:​bianca.popa1106:​miruna.iliescu:​hw_start.png?​800 | Sistem de irigare }}
  
-Această secțiune va fi completată după finalizarea proiectului.+==== Video demonstrativ al modului de functionare ====
  
-===== Cod sursă și resurse =====+[[https://​youtube.com/​shorts/​-Wmx8Wu8yMY|Video demonstrativ - Sistem Irigare]]
  
-Această secțiune va fi completată după crearea repository-ului pentru codul sursă.+===== Cod sursă ===== 
 + 
 +Codul sursă complet al proiectului este disponibil pe GitHub 
 +[[https://​github.com/​MirunaIliescu21/​Sistem-Irigare | Reposit GitHub - Sistem Irigare]] 
 + 
 +Proiectul este structurat ca un proiect **PlatformIO** și se compilează direct din VS Code. 
 +Toate modulele software (I2C, LCD, USART, ADC, releu, buton, timer, RGB LED) sunt implementate în C pur, fără framework Arduino.
  
 ===== Jurnal ===== ===== Jurnal =====
Line 189: Line 200:
  
   * Milestone 3: Implementare completă software: mașină de stări non-blocantă,​ mod AUTO cu cicluri de udare și absorbție, mod MANUAL cu pulsuri, protecție EMI pentru buton, driver I2C și LCD propriu.   * Milestone 3: Implementare completă software: mașină de stări non-blocantă,​ mod AUTO cu cicluri de udare și absorbție, mod MANUAL cu pulsuri, protecție EMI pentru buton, driver I2C și LCD propriu.
 +
 +  * Uterior, am devin independenta de laptop, din punctul de vedere al sursei de alimentare. Placuta Arduino este alimentata la o baterie de 9V prin barrel jack. Intern, placa are un regulator de tensiune care coboară la 5V pentru ATmega și restul componentelor.
 +
  
 ===== Bibliografie / Resurse ===== ===== Bibliografie / Resurse =====
Line 194: Line 208:
   * Template proiect PM: https://​ocw.cs.pub.ro/​courses/​pm/​pm/​prj2021/​template   * Template proiect PM: https://​ocw.cs.pub.ro/​courses/​pm/​pm/​prj2021/​template
   * Datasheet ATmega328P: https://​ww1.microchip.com/​downloads/​en/​DeviceDoc/​Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf   * Datasheet ATmega328P: https://​ww1.microchip.com/​downloads/​en/​DeviceDoc/​Atmel-7810-Automotive-Microcontrollers-ATmega328P_Datasheet.pdf
-  * Datasheet PCF8574 (I2C LCD expander): https://​www.ti.com/​lit/​ds/​symlink/​pcf8574.pdf+  ​* Placă de dezvoltare: Arduino Uno R3 (kit Plusivo) https://​store.arduino.cc/​products/​arduino-uno-rev3 
 +  ​* Datasheet PCF8574 (modul interfata ​I2C LCD 1602): https://​www.ti.com/​lit/​ds/​symlink/​pcf8574.pdf
   * Documentație senzor umiditate sol FC-28   * Documentație senzor umiditate sol FC-28
   * Documentație LCD 1602 HD44780   * Documentație LCD 1602 HD44780
 +  * Documentație modul releu
 +  * Datasheet diodă protecție 1N4007
 +  * PlatformIO IDE: https://​platformio.org
 +  * Laboratoare OCW: https://​ocw.cs.pub.ro/​courses/​pm/​lab/​lab3-2023-2024
 +
 <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​ <​html><​a class="​media mediafile mf_pdf"​ href="?​do=export_pdf">​Export to PDF</​a></​html>​
  
  
pm/prj2026/bianca.popa1106/miruna.iliescu.1779533689.txt.gz · Last modified: 2026/05/23 13:54 by miruna.iliescu
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