This is an old revision of the document!


Controlul temperaturii

E-mail: ion_radu.patrascoiu@stud.acs.pub.ro

Introducere

Proiectul își propune rezolvarea prin metode inginerești: primire date de la un senzor, trimitere comanda de ON/OFF asupra unor module, a unei probleme uzuale, controlul temperaturii unei incinte. Principalul obiectiv al aplicației nu îl reprezintă procesul fizic de încălzire/răcire, ci partea de comanda: citirea temperaturii de la senzor, citirea temperaturii dorite de utilizator, analizarea diferențelor si comandarea fie a elementului de încălzire, fie a elementului de răcire. Acestea trebuie sa funcționeze si sa fie oprite, automat, in momentul in care referința primita de la utilizator este egala, într-o toleranta, cu outputul primit de la senzorul de temperatura.

Descriere generală

Descrierea funcționalității:

Placa de dezvoltare Arduino UNO R3 oferă suport complet atât pentru manipularea componentelor fizice cat si pentru realizarea algoritmului de control ce sta in spatele funcționarii componentelor hardware. Pentru comunicarea cu utilizatorul, se propune utilizarea unui afișaj LCD, pe care se vor afla temperatura primita de la senzor, temperatura dorita de utilizator, setata prin doua butoane, unul pentru creșterea valorii iar celălalt pentru scăderea ei, împreuna cu starea curenta a elementelor ce realizează procesul de încălzire/răcire. Pentru a putea comanda componentele active, se vor folosi doi tranzistori cărora li se va pune in evidenta proprietatea de switch. Pentru răcirea incintei, va fi folosit un ventilator iar pentru procesul de încălzire se vor folosi rezistente cu suport de pana la 3W pe fiecare.

Diagrama bloc:

Hardware Design

  • Lista de Componente:
    1. Placuta Arduino UNO, pe care am conectat toate componentele menționate mai sus, folosind atât pinii digitali, cât și pe cei analogici, si pinii de alimentare 5V si masa GND.;
    2. Breadboard;
    3. Fire conductoare;
    4. Senzor de temperatură și umiditate DHT11, care are 4 pini dintre care doar 3 sunt folosiți, VCC prin care se face alimentarea la 3V – 5V, GND și DATA pe care l-am conectat pe plăcuța Arduino la un pin digital, datele preluate de către acesta fiind trimise către plăcuță prin intermediul acelui pin. De asemenea, temperatura citita va fi afișata pe afișajul LCD;
    5. Ventilator DC de 5V si 0.19A, conectat la un tranzistor pentru a putea fi comandat automat;
    6. Doi tranzistori TIP122, fiecare având conectata baza la un pin digital al plăcuței Arduino, prin care se va trimite comanda de ON/OFF, colectorul fiind conectat la partea de GND a elementelor de încălzire/răcire, iar emitorul la GND.;
    7. Afișaj LCD si modul I2C, pentru o implementare mai robusta a proiectului, fiind necesari doar 4 pini, dintre care unul conectat la alimentare, unul la GND si doi dintre ei la pini analog ai plăcuței.;
    8. Doua butoane pentru a permite utilizatorului introducerea temperaturii de referința.;
    9. Trei rezistente de 68 ohmi, cu o putere maxima suportata de 3W pe fiecare. Legate in paralel si conectate la o tensiune de 5V, acestea au o putere de încălzire de 1,1W.;
    10. Rezistente de diferite valori folosite pentru tranzistoare, 15K si 17K, si de 10K pentru butoane.

Schema electrica:

Software Design

Pentru a putea folosi componentele DHT11 si afisajul LCD cu modul I2C, in mediul de dezvoltare Arduino IDE a fost nevoie si de importarea bibliotecilor SimpleDHT.h, LiquidCrystal_I2C.h, Wire.h. Pentru setarea temperaturii referinta de catre utilizator, pinilor la care au fost conectate butoanele, au fost associate sisteme de intrerupere. Arduino UNO R3 permite sisteme de intrerupere hardware doar pentru pinii digitali 2 si 3. Variabilele stareA si stareU reprezinta starea in care sistemul se afla la momentul actual, respective starea urmatoare ce este calculata pe baza datelor primate de la sensor. Reglarea in bucla se face prin intermediul acestor doua variabile ale caror valori reprezinta 0 – Ambele OFF, 1 – Incalzirea ON; Racirea OFF, 2 – Racirea ON; Incalzirea OFF.

Din cauza limitarilor impuse de senzorul DHT11, care citeste doar valori intregi, pornirea sistemelor de incalzire/racire se face doar in momentul in care temperatura indicata de senzor este cu 2*C mai mica/mare decat cea dorita de client. Totodata, reglarea in bucla nu poate fi facuta cu o eroare stationara 0 deoarece sistemul ar fi foarte instabil iar la fiecare fluctuatie a senzorului. De aceea, sistemul este fortat sa mearga pana cand senzorul afiseaza o temperature mai mica cu 1*C fata de cea de referinta, din practica observand ca prima trecere a senzorului de la temperature T la T-1 este foarte sensibila, acesta indicand din nou T dupa mai putin de o secunda.

Funcțiile folosite pentru citirea schimbării temperaturii de referință.

Rezultate Obţinute

TODO

Concluzii

TODO

Download

TODO

Jurnal

  • 21.04.2021: Obtinerea acordului asistentului in privinta temei alese.
  • 23.04.2021: Crearea paginii de wiki.
  • 26.04.2021: Au sosit toate piesele de care am nevoie.

Bibliografie și Resurse

pm/prj2021/dbrigalda/controlul-temperaturii.1622059533.txt.gz · Last modified: 2021/05/26 23:05 by ion_radu.patrascoiu
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