Differences

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

Link to this comparison view

pm:prj2026:farhad_ali.gul:diana_ioana.novac [2026/05/20 17:39]
diana_ioana.novac [Hardware Design]
pm:prj2026:farhad_ali.gul:diana_ioana.novac [2026/05/20 18:01] (current)
diana_ioana.novac
Line 61: Line 61:
 ===== Software Design ===== ===== Software Design =====
  
-===== Rezultate Obţinute =====+  * **Mediu de dezvoltare:​** PlatformIO 
 +  * **Biblioteci și resurse folosite:** Am făcut configurarea Timer1 pentru generarea semnalului PWM al pompei prin scriere directă în registrele AVR TCCR1A, TCCR1B și OCR1A. Configurarea ADC pentru citirea senzorilor de nivel și TDS se face prin registrele ADMUX și ADCSRA. Am folosit biblioteca //​MFRC522.h//​ pentru comunicația cu cititorul RFID RC522 prin SPI. Biblioteca gestionează inițializarea registrelor interne ale modulului și citirea UID-ului tag-urilor. O altă bibliotecă folosită este //​EEPROM.h//​ pentru salvarea și citirea persistentă a statisticilor per animal.
  
-===== Concluzii =====+== Mașina de stări ​==
  
-===== Download ​=====+Sistemul este implementat ca o mașină de stări finită cu patru stări: Repaus, Activ, Eroare și Configurare. Starea curentă e reținută într-un enum. Tranzițiile între stări sunt declanșate de flag-uri booleene setate de funcțiile de citire ale senzorilor. 
 + 
 +== Profiluri animale ​== 
 + 
 +Datele fiecărui animal sunt reținute într-o structură PetProfile care conține UID-ul tag-ului RFID, numărul de vizite din ziua curentă, durata acestora și timestamp-ul ultimei vizite. Array-ul de aceste structuri e sincronizat cu EEPROM-ul la finalul fiecărei vizite. 
 + 
 +== Controlul pompei ​==  
 + 
 +Debitul e reglat prin modificarea valorii registrului OCR1A care controlează duty cycle-ul semnalului PWM. La detectarea animalului, valoarea e incrementată la fiecare iterație a loop-ului până la nivelul maxim configurat, iar la plecarea animalului procesul e inversat. 
 + 
 +== Filtrarea ADC == 
 +Citirile brute de la senzorul nivel și cel TDS sunt procesate și filtrate pentru a reduce zgomotul. 
 + 
 +== Funcționalități din laboratoare ==  
 + 
 +  * **GPIO** - folosit pentru controlul pinilor de Trig și Echo ai senzorului ultrasonic HC-SR04 și pentru citirea stării butoanelor de meniu 
 +  * **Întreruperi** - folosite pentru detectarea apăsărilor de butoane prin PCINT 
 +  * **PWM** - duty cycle-ul PWM e modificat pentru a regla debitul pompei 
 +  * **SPI** - folosit pentru comunicația cu modulul RFID RC522. 
 +  * **I2C** - folosit pentru comunicația cu display-ul LCD 16x2 
 +  * **ADC** - folosit pentru citirea semnalelor analogice ale senzorilor de nivel al apei și cel TDS
  
 ===== Jurnal ===== ===== Jurnal =====
pm/prj2026/farhad_ali.gul/diana_ioana.novac.1779287978.txt.gz · Last modified: 2026/05/20 17:39 by diana_ioana.novac
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