Lab 5.1: Control funcțional – ON-OFF cu Histereză
Scopul lucrării
Realizarea unei aplicații modulare pentru un microcontroler (MCU) care să implementeze un sistem de control ON-OFF cu histereză aplicat asupra unui parametru de control (ex.: temperatură, umiditate sau poziție rotor), acționat prin releu sau driver L298. Setarea valorii de referință (Set Point) se va face printr-un mecanism de interacțiune ales, iar valorile vor fi afișate pe LCD și/sau prin interfața serială utilizând STDIO.
Obiectivele lucrării
Familiarizarea cu principiile metodei de control ON-OFF cu histereză.
Aplicarea histerezei în sistemele de acționare bazate pe releu sau driver L298.
Dezvoltarea unei aplicații modulare, cu interfață STDIO și afișare LCD.
Afișarea și ajustarea parametrilor de control în timp real.
Definire Problemă
Să se realizeze o aplicație în baza de MCU care implementează un sistem de control ON-OFF cu histereză pentru una dintre următoarele variante (la alegere):
Varianta A – Control temperatură sau umiditate, pe baza valorii de la un senzor digital (ex. DHT22), cu acționare prin releu.
Varianta B – Control poziție rotor (ex. servo motor) cu acționare prin driver L298, folosind control ON/OFF cu histereză. Motorul va fi acționat în regim de saturație (putere fixă 50%), cu comutare între direcții în funcție de abatere.
Pentru ambele variante:
Setarea valorii de referință (Set Point) se va face prin una dintre metodele: potențiometru, două butoane (UP/DOWN), senzor encoder, keypad 4x4 sau interfață serială.
Valoarea de Set Point și valoarea curentă se vor afișa pe LCD (2x16 sau 4x20) și/sau prin interfața serială folosind STDIO (printf).
Se va aplica o histereză configurabilă (valoare fixă sau definită prin cod) pentru a preveni comutările frecvente.
Controlul se va face cu logica: ON sub pragul inferior, OFF peste pragul superior.
Materiale și resurse
Componente hardware:
Microcontroler (ESP32, STM32 sau Arduino cu suport STDIO)
Senzor: DHT11/DHT22 (pentru temperatură/umiditate) sau potențiometru/encoder (pentru poziție rotor)
Actuator: Releu sau motor cu driver L298
LCD (2x16 sau 4x20, preferabil I2C)
Tastatură 4x4, butoane, rezistențe, breadboard, fire jumper
Sursă de alimentare (USB sau externă pentru actuator)
Resurse software:
Visual Studio Code cu extensia PlatformIO
Biblioteci pentru LCD, STDIO (Serial), senzorul ales, Keypad etc.
Emulator terminal serial (Monitor Serial din PlatformIO, TeraTerm, Putty)
Simulator hardware (opțional, ex.: Proteus)
Recomandări
Se recomandă utilizarea unui IDE cu suport Arduino, cum ar fi Eclipse sau VS Code cu PlatformIO.
Pentru validare, se recomandă utilizarea unui simulator hardware (ex.: Proteus).
Funcționalitățile pentru fiecare echipament periferic (senzor, actuator, LCD etc.) să fie realizate în fișiere separate, pentru reutilizare.
Se recomandă respectarea convențiilor de codare CamelCase și evitarea magic number.
Se recomandă trimiterea datelor către Serial Plotter pentru analiză vizuală a comportamentului sistemului.
Pontaj
Cerințe obligatorii:
Respectarea structurii modulare a proiectului.
Prezentarea schițelor arhitecturale, schemelor bloc și schemelor electrice.
Respectarea formatului raportului conform normelor UTM.
Notare:
50% – Funcționarea corectă a controlului ON-OFF cu histereză (releu sau L298)
10% – Implementarea corectă a metodei de setare a valorii de referință
10% – Utilizarea STDIO (printf) pentru afișare și interacțiune
10% – Prezentarea schemelor electrice și diagramelor arhitecturale
10% – Demonstrarea funcționării fizice complete a soluției
10% – Implementarea unui comportament adițional improvizat (ex.: alertă la abatere mare, LED avertizare, sunet buzzer)
NOTĂ: Pontajul maxim este posibil doar la prezentarea funcționării fizice complete a soluției și implementarea comportamentului adițional improvizat.
10% penalizare pentru fiecare săptămână întârziere față de termenul stabilit.
Întrebări de control
Ce este metoda de control ON-OFF cu histereză și de ce este utilă?
Cum se implementează logica de histereză în codul unui MCU?
Care sunt diferențele între acționarea prin releu și prin driver L298?
Ce avantaje și dezavantaje oferă fiecare metodă de setare a Set Point-ului?
Ce probleme pot apărea la controlul sistemelor cu comutări frecvente și cum pot fi evitate?
De ce este importantă raportarea valorilor SetPoint și Actual Value în timp real?