0% au considerat acest document util (0 voturi)
226 vizualizări3 pagini

Termostat Arduino

Documentul descrie construirea unui termostat folosind Arduino. Include schema de conectare a unui senzor de temperatura MAX6675, un LCD si un triac pentru controlul unei rezistente de incalzire. Codul Arduino masoara temperatura, afiseaza pe LCD temperatura setata si cea masurata si controleaza triacul in functie de diferenta dintre cele doua temperaturi.

Încărcat de

Tacu Alexandru
Drepturi de autor
© © All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca DOCX, PDF, TXT sau citiți online pe Scribd
0% au considerat acest document util (0 voturi)
226 vizualizări3 pagini

Termostat Arduino

Documentul descrie construirea unui termostat folosind Arduino. Include schema de conectare a unui senzor de temperatura MAX6675, un LCD si un triac pentru controlul unei rezistente de incalzire. Codul Arduino masoara temperatura, afiseaza pe LCD temperatura setata si cea masurata si controleaza triacul in functie de diferenta dintre cele doua temperaturi.

Încărcat de

Tacu Alexandru
Drepturi de autor
© © All Rights Reserved
Respectăm cu strictețe drepturile privind conținutul. Dacă suspectați că acesta este conținutul dumneavoastră, reclamați-l aici.
Formate disponibile
Descărcați ca DOCX, PDF, TXT sau citiți online pe Scribd

[Link]

net/438/arduino-termostat/

Arduino Termostat
Jan 27 under General | Leave a comment
A trecut Anul Nou i uite c e timpul s ie im din ntuneric, deja e februarie. Deci pentru desert v-am
pregtit un articol, despre mblnzirea destoinic a unui termocuplu de tip K (Alumel Chromel)
folosind platforma ARDUINO, un controller ATmega8, un circuit integrat MAX6675, un pic de fantezie,
vreo 20 de ore de Counter Strike 1.6, nc tot attea cuvinte vulgare i ciocanul de lipit.
Astfel c mi-am creat de la nceput un plan de aciuni i mi-am pus scopuri ce le voi realiza:
1. Afiarea temperaturii setate(0-500 C)
2. Afiarea temperaturii de la termocuplu()
3. Utilizarea unui triac conectat la microcontroler prin optocuplu
4. Realizarea acestui dispozitiv ntr-o carcas relativ mic
5. Curentul maximal prin nclzitor = 10 A
Pentru c mrimea sketch-ului binar este de: 5148 bytes (din 7168 byte ) nu am avut o necesitate de
200 de supercomputere i am hotrt s folosesc ATmega8. Cum e se ncarc bootloader-ul am scris
aici : [Link]

Schema principial a blocului de msur i comand


nregistrarea temperaturii de pe termocuplu.
Precum am menionat anterior, am utilizat un circuit specializat MAX6675, care comunic prin ina SPI
cu procesorul, valoarea temperaturii poate fi n grade Celsius sau Farenheit i nc multe interesante
pe care le putei citi n descrierea tehnic a circuitului.

Conectarea LCD de tip WH0802


Din motiv c MAX6675 utilizeaz unii pini ai controllerului pe care n mod standart se utilizau i pentru
conectarea LCD la ARDUINO UNO am hotrt s schimb aa cum vreau, pentru c LiquidCristal este o
clas i numrul pinului poate fi setat n felul urmtor: LiquidCrystal(rs, enable, d4, d5, d6, d7) , unde
se n paranteze se va indica numrul pinilor utilizai n ordinea admis.
Codul pentru acest proiect:
1 #include <SPI.h>
2 #include <LiquidCrystal.h>
3 #include <MAX6675.h>
4 LiquidCrystal lcd(6, 7, 5, 4, 3, 2);
5
6 int heater = 9; // PWM output
7 int CS = 10; // CS pin on MAX6675
8 int SO = 12; // SO pin of MAX6675
9 int SCK = 13; // SCK pin of MAX6675
10 int units = 1; // Units to readout temp (0 = raw, 1 = C, 2 = F)
11 float temperature = 0.0; // Variabila temperaturii
12 double setTemp;
13 // Iniializm biblioteca MAX6675
14 MAX6675 temp(CS,SO,SCK,units);
15 // setm conectarea
16 // MAX6675 Library already sets pin modes for MAX6675 chip!
17 void setup(){
18 [Link](8, 2);
19 pinMode(heater, OUTPUT);
20 }
21 int x;
22 void loop() {
23 int i=x;
24 temperature = temp.read_temp();
25 setTemp = analogRead(A5);
26 setTemp = map(setTemp, 0, 1023, 0, 500);
27 [Link](0, 0);
28 [Link](setTemp);
29 [Link] (0,1);
30 [Link](temperature);
31 delay(200);
32 float tempDiff = setTemp - temperature;
33 if (tempDiff > 0.1)
34 {
35 analogWrite(heater,255);
36 }
37 else { analogWrite(heater,0 ); }
38 if (tempDiff = 0) {
39 digitalWrite(heater,HIGH );
40 delay (200);
41 digitalWrite(heater,LOW );
42 delay (300);
43 }
44 }

V propun un asemnea cod prost scris pentru c am dorin a ca cel ce va repeta construc ia s poat
s-l optimizeze i s mbunteasc ntr-o msur acest dispozitiv.
n ce privete partea fizic a dispozitivului am hotrt s folosesc un triac BT139 (Imax = 16 A) i un
optocuplu MOC3083 (l aveam n rezervele de conserve pentru iarn). Schema de conexiune poate fi
gsit cutnd pe google, de asemenea poate fi schimbat triacul i MOC-ul. Curentul prin optocuplu
trebuie s fie 10 % din curentul prin sarcin.
Setarea temperaturii eu am realizat prin utilizarea unei rezisten e variabile cu 3 tura ii.
n circuit am utilizat un stabilizator pe LM 317, acesta a fost utilizat pentru a alimenta MAX6675 cu 3,3
V n scop de experiment, deci el trebuie omis, eu am fcut scurtcircuit ntre input i output al
stabilizatorului.
Toate fiierele acestui proiect le voi trimite la prima solicitare a celui ce vrea s repete circuitul,
scriindu-mi un mesaj prealabil la adresa : constantinlindemann@[Link]
Video cu lucrul acestui dispozitiv: [Link]

S-ar putea să vă placă și