Schema electrica
Biblioteci Incluse - Wire.h: Utilizată pentru comunicarea I2C. - LiquidCrystal_I2C.h: Controlul display-ului LCD prin I2C. - IRremote.h: Pentru a citi semnalele de la telecomanda infraroșu.
Definirea Componentelor - LiquidCrystal_I2C lcd(0x27, 16, 2): Inițializează display-ul LCD cu adresa I2C 0x27, având 16 coloane și 2 rânduri. - decode_results results: Structură pentru a stoca rezultatele decodării semnalului IR. - Pinii de conexiune:
- Coduri pentru butoane IR:
- Constante:
Setup - Inițializează LCD-ul și buzzer-ul. - Configurează pinii pentru senzorii de ultrasunete, releu și receptorul IR. - Pornește citirea semnalului IR și comunicarea serială.
Loop - Afișează pe serial monitor distanțele citite de la senzorii de apă și pahar. - Verifică dacă a fost primit un semnal IR:
Funcții Auxiliare - beep(): Emite un sunet de avertizare prin buzzer. - pourWater(): Activează releul pentru a turna apă pentru timpul specificat și resetează variabila pourTime. - isWater(): Verifică dacă nivelul apei este suficient. - isGlass(): Verifică dacă este prezent un pahar. - readWaterLevel(): Citește și returnează nivelul apei folosind senzorul cu ultrasunete. - readGlassDistance(): Citește și returnează distanța până la pahar folosind senzorul cu ultrasunete.
Fluxul de Operare 1. Utilizatorul apasă un buton pe telecomandă pentru a selecta mărimea paharului. 2. Codul IR este citit și interpretat. 3. Când utilizatorul confirmă cu butonul OK:
Acest cod integrează funcționalitatea de citire a senzorilor, controlul releului pentru dozarea apei, și interfața cu utilizatorul prin intermediul unui display LCD și a unei telecomenzi IR.