Lab 5.1 Control - ON-OFF cu histereza

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?