Breaking News

Monday 22 February 2016

(ARDUINO PROJECT) Membuat Termometer dengan Arduino dan Sensor Suhu MAX6675

MAX6675 dibentuk dari kompensasi cold-junction yang outputnya didigitalisasi dari sinyal termokopel tipe-K. data output memiliki resolusi 12-bit dan mendukung komunikasi SPI mikrokontroller secara umum. Data dapat dibaca dengan mengkonversi hasil pembacaan 12-bit data. 

Fitur MAX6675
- Konversi digital langsung dari output termokopel tipe-K
- Kompensasi cold-junction
- Komunikasi kompatibel dengan protocol SPI
- Open thermocouple detection



Fungsi dari termokopel adalah untuk mengetahui perbedaan temperature di bagian ujung dari dua bagian metal yang berbeda dan disatukan. Termokopel tipe hot junction dapat mengukur mulai dari 0 °C sampai +1023,75 °C. MAX6675 memiliki bagian ujung cold end yang hanya dapat mengukur - °C sampai +85 °C. Pada saat bagian cold end MAX6675 mengalami fluktuasi suhu maka MAX6675 akan tetap dapat mengukur secara akurat perbedaan temperature pada bagian yang lain. MAX6675 dapat melakukan koreksi atas perubahan pada temperature ambient dengan kompensasi cold-junction. Device mengkonversi temperature ambient yang terjadi ke bentuk tegangan menggunakan sensor temperature diode. Untuk dapat melakukan pengukuran actual, MAX6675 mengukur tegangan dari output termokopel dan tegangan dari sensing diode.

Performance optimal MAX6675 dapat tercapai pada waktu termokopel bagian cold-junction dan MAX6675 memiliki temperature yang sama. Hal ini untuk menghindari penempatan komponen lain yang menghasilkan panas didekat MAX6675.

Konversi Temperatur
Untuk mendapatkan nilai suhu pada termokopel tipe-K, perubahan tegangan sebesar 41µV/°C dengan menggunakan pendekatan karakteristik dapat menggunakan rumus dibawah ini:

VOUT = (41µV / °C) 5 (TR – TAMB)
Dengan:
VOUT = Voutput termokopel (µV)
TR adalah termperatur remote junction (°C)
TAMB adalah temperature ambient (°C)

Max6675 cocok digunakan pada tungku pembakaran yang memiliki suhu di atas sampai dengan 1000 °C.

Kebutuhan software dan hardware:

Gambar Skema


//Inisialisasi Library untuk LCD
#include <LiquidCrystal.h>
//Inisialisasi Library untuk MAX6675
#include <MAX6675.h>

int CS = 10; // CS pin on MAX6675
int SO = 12; // SO pin of MAX6675
int SCK0 = 11; // SCK pin of MAX6675
int units = 1; // Units to readout temp (0 = raw, 1 = ˚C, 2 = ˚F)
float temperature; // Temperature output variable

// Inisialisasi Pin Mode untuk LCD
LiquidCrystal lcd(2, 3, 4, 5, 6, 7);
// Inisialisasi Pin Mode untuk MAX6675
MAX6675 temp(CS,SO,SCK0,units);

/*Menampilkan Pesan Pembuka pada LCD */
void setup() {
Serial.begin(9600);
lcd.begin(16, 2);
lcd.print("MONITORING SUHU");
lcd.setCursor(0, 1);
lcd.print("DENGAN ARDUINO");
delay(2000);
lcd.clear();

/*Menampilkan Nama Sensor pada LCD*/
lcd.print("Suhu : ");
lcd.setCursor(0,1);
}

void loop()
{
// Membaca temperatur dari sensor MAX6675
temperature = temp.read_temp();
delay(500);
lcd.setCursor(9,0);
lcd.print(suhu); //output suhu LM35
lcd.print(char(0xDF));
lcd.print("C ");
lcd.print(temperature); //output suhu MAX6675
lcd.print(char(0xDF));
lcd.print("C ");
delay(500);
}
//Inisialisasi Library untuk LCD #include float adc, suhu, temperature; // Temperature output variable // Inisialisasi Pin Mode untuk LCD LiquidCrystal lcd(2, 3, 4, 5, 6, 7); /*Menampilkan Pesan Pembuka pada LCD */ void setup() { Serial.begin(9600); lcd.begin(16, 2); lcd.print("MONITORING SUHU"); lcd.setCursor(0, 1); lcd.print("Dengan ARDUINO"); delay(2000); lcd.clear(); /*Menampilkan Nama Sensor pada LCD*/ lcd.print("Suhu :"); lcd.setCursor(0,1); } void loop() { // Membaca temperatur dari sensor LM35 adc = analogRead(0); //inisiasi pembacaan dari pin analog suhu=adc*(5.0*100.0/1024.0) ; /*Resolusi ADC(Analog to Digital Converter) adalah 10 bit, artinya nilai terkecilnya 0(tegangan masukan 0 volt) dan terbesar 1024 (tegangan masukan 5 volt) 1 bit = 5V/1024 = 4,89mV */ delay(500); lcd.setCursor(9,0); lcd.print(suhu); //output suhu LM35 lcd.print(char(0xDF)); lcd.print("C "); }

2 comments:

  1. Blog yg bermanfaat mas.. terima kasih.
    Saya awam sekali dengan arduino, tp pengen belajar. Bisakah rangkain tersebut digunakan untuk mengukur suhu sejumlah 5 sensor sekaligus, dan tampil di LCD?
    Dimana saya bisa mendapatkan komponen dan cara memprogramnya?
    Terima kasih atas bantuannya...
    Semoga sehat dan lancara rejekinya mas..

    ReplyDelete
    Replies
    1. Pin 1 s.d. 9 bis digunakan untuk mengirim datanya.ground dan 5V bisa diparalel ke sensor yg lain.

      Delete

Designed By