In acest articol vom folosi un modul cu MAX6675 impreuna cu o termocupla de tip K pentru a citi temperaturile ridicate.
Chip-ul MAX6675 se poate alimenta cu o tensiune cuprinsa intre 3,3V si 5V. Gama de temperatura este intre 0 si 1024 grade Celsius.
Conectarea intre chip si arduino se face pe interfata SPI si avem nevoie de doar 3 fire. In cazul de fata am folosit modulul conectat in urmatorul mod la Arduino Mega:
MAX6675 Arduino
D0 -------------------- D22
CS -------------------- D24
CLK -------------------- D26
Pentru a putea folosi acest modul vom avea nevoie de libraria MAX6675-library. Aceasta oate fi descarcata de aici si se adauga in editorul Arduino accesand Schita > Incarcare biblioteca > Adauga biblioteca.zip.
Sketch-ul folosit pentru afisarea temperaturii in terminalul serial este mai jos:
#include "max6675.h"
int termoDO = 22;
int termoCS = 24;
int termoCLK = 26;
MAX6675 termo(termoCLK, termoCS, termoDO);
void setup() {
Serial.begin(9600);
Serial.println("Testarea modulului MAX6675");
delay(1000);
}
void loop() {
Serial.print("Celsius = ");
Serial.println(termo.readCelsius());
Serial.print("Fahrenheit = ");
Serial.println(termo.readFahrenheit());
delay(1000);
}
De asemenea putem folosi un display LCD 1604 pentru a afisa temperatura. Eu voi folosi modul de conectare a acestui tip de display asa cum am prezentat in acest articol.
Sketch-ul va arata in felul urmator:
#include "max6675.h"
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int termoDO = 22;
int termoCS = 24;
int termoCLK = 26;
MAX6675 termo(termoCLK, termoCS, termoDO);
byte customChar[] = {
B00100,
B01010,
B00100,
B00000,
B00000,
B00000,
B00000,
B00000
};
void setup() {
lcd.begin(16,4);
lcd.setCursor ( 0, 0 );
lcd.print (" www.");
lcd.setCursor (0, 1 );
lcd.print ("electronicstore");
lcd.setCursor (0, 2 );
lcd.print (" .ro");
lcd.setCursor (0, 3 );
lcd.print ("****************");
delay (2000);
lcd.clear();
lcd.setCursor ( 0, 0 );
lcd.print ("Termocupla tip K");
lcd.setCursor (0, 1 );
lcd.print ("si MAX6675");
lcd.setCursor (0, 2 );
lcd.print ("");
lcd.setCursor (0, 3 );
lcd.print ("****************");
delay (2000);
lcd.clear();
lcd.createChar(0, customChar);
}
void loop() {
lcd.setCursor ( 0, 0 );
lcd.print ("Temperatura... ");
lcd.setCursor ( 0, 1 );
lcd.print (termo.readCelsius());
lcd.print (" ");
lcd.write(byte(0));
lcd.print ("C");
lcd.setCursor ( 0, 2 );
lcd.print ("Temperatura... ");
lcd.setCursor ( 0, 3 );
lcd.print (termo.readFahrenheit());
lcd.print (" ");
lcd.write(byte(0));
lcd.print ("F ");
delay(1000);
}
Poze cu modulul folosit mai jos:
Lasa un comentariu