Max6675 impreuna cu o termocupla de tip K

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:

 

Autentificare