Arduino dan Sensor Suhu DS1822

Bagaimana kabar sahabat inkubatek semua ? Semoga senantiasa dalam keadaan yang bertambah baik. Aamiin.. Oke, masih bermain dengan Arduino. Kali ini kita akan membaca sensor suhu dengan Arduino. Kalau pada artikel sebelumnya memakai sensor suhu Lm35, sekarang Arduino kita jajal dengan DS1820/22. Sensor suhu dengan output digital. Cukup dengan 1 kabel data saja bro .. alias one wire..

Sensor Suhu DS18222

Sensor Suhu DS18222

99 proyek arduino

Cara menyambung Arduino dengan sensor suhu DS1820/22 juga gampang. Tinggal sambung jalur data (DQ) ke salah satu pin Arduino, dengan ditambah resistor pullup 4k7. Pin vDD dapat 5V dan pin gnd ketemu dengan ground.

Rangkaian Arduino dg DS1822

Rangkaian Arduino dg DS1822

Program Arduino dengan sensor suhu DS1822 yang pertama kita tampilkan ke serial port. Kalau memakai program/sketch Arduino bisa langsung pakai “Serial Monitor” (Tools — Serial Monitor). Disini saya pakai simulasi dengan Virtual Terminal. Cukup sambung pin Rx dari Virtual Terminal ke pin Tx dari Arduino (pin 1).

Iklan MM ARDU

Program monitoring suhu dengan Arduino dan DS1822 tampilan serial seperti dibawah ini :

#include
OneWire ds(10);

void setup(void) {
Serial.begin(9600);
}

void loop(void) {
byte i;
byte present = 0;
byte type_s;
byte data[12];
byte addr[8];
float celsius, fahrenheit;

if ( !ds.search(addr)) {
ds.reset_search();
delay(250);
return;
}

switch (addr[0]) {
case 0x10:
type_s = 1;
break;
case 0x28:
type_s = 0;
break;
case 0x22:
type_s = 0;
break;
default:
return;
}

ds.reset();
ds.select(addr);
ds.write(0x44, 1);
delay(1000);
present = ds.reset();
ds.select(addr);
ds.write(0xBE);
for ( i = 0; i < 9; i++) {
data[i] = ds.read();
}

int16_t raw = (data[1] << 8) | data[0];
if (type_s) {
raw = raw << 3; // 9 bit resolution default
if (data[7] == 0x10) {
raw = (raw & 0xFFF0) + 12 – data[6];
}
} else {
byte cfg = (data[4] & 0x60);
if (cfg == 0x00) raw = raw & ~7; // 9 bit resolution, 93.75 ms
else if (cfg == 0x20) raw = raw & ~3; // 10 bit res, 187.5 ms
else if (cfg == 0x40) raw = raw & ~1; // 11 bit res, 375 ms
}
celsius = (float)raw / 16.0;
fahrenheit = celsius * 1.8 + 32.0;
Serial.print(” Temperature = “);
Serial.print(celsius);
Serial.print(” Celsius, “);
Serial.print(fahrenheit);
Serial.println(” Fahrenheit”);
}

Setelah di Compile maka akan terlihat di Virtual monitor Isis :

Hasil DS1822 Serial

Silakan dinaikan atau diturunkan nilai suhunya. Klik anak panah keatas atau kebawah yang ada di simulasi sensor DS1822. Hasilnya akan terlihat juga pada virtual monitor.

Selamat ngARDUINO …

Iklan App ARDU

This entry was posted in Arduino and tagged , , . Bookmark the permalink.

2 Responses to Arduino dan Sensor Suhu DS1822

  1. yayan aja says:

    Makasih gan ilmunya sangat bermanfaat, klo mau d tambah kipas buat mengatur suh dan bazer buat alarem bisa ga ga, klo bisa tolong d share dong gan ilmunya,

    • admin says:

      Makasih mas Yayan sudah mampir.Bisa aja mas ditambah kipas atau buzzer, lain kali insya Allah kita posting ya.
      Trims

Leave a Reply