Yuk nyoba Sensor Suhu DS1820 dg ATmega16

Memulai posting aplikasi mikrokontroler di bulan ini.  Ya, mudah – mudahan bisa menambah postingan di hari – hari berikutnya ya. Kita coba sensor suhu yang lain, biasanya langganan LM35. Kali ini kita pakai kepunyaan Dallas, sensor suhu DS1820. Bodinya seperti pada gambar :

Sensor Suhu DS1820

Sensor suhu DS1820/21 punya 3 kaki, persis LM35. Kaki 1 untuk ground , kaki 2 output (DQ) dan kaki 3 untuk power 5 V.
Rangkaian DS1820 dengan mikrokontroler AVR seperti pada gambar berikut :

Rangkaian sensor suhu DS1820 dengan Mikrokontroler

Output daripada DS1820 bukan sinyal analog sebagaimana LM35, tetapi berupa data digital. Model komunikasinya secara ‘1 wire’. Pemrogramannya lebih mudah dengan CodeVisionAVR (CVAVR).

#include <mega16.h>
#include <1wire.h>
#include <ds1820.h>
#include <delay.h>
#include <alcd.h>
#include <stdio.h>
#define MAX_DS1820 8
unsigned char ds1820_devices;
unsigned char ds1820_rom_codes[MAX_DS1820][9];
char str[33];

void main(void)
{
unsigned char i;
int temp;
w1_init();
ds1820_devices=w1_search(0xf0,ds1820_rom_codes);
lcd_init(16);
lcd_clear();
lcd_putsf(”  Sensor DS1820 “);
while (1)
      {
      for (i=0;i<ds1820_devices;)
          {
          temp=ds1820_temperature_10(&ds1820_rom_codes[i][0]);         
          sprintf(str,”T=%i.%u\xdf C      “,temp/10,temp%10);  
          lcd_gotoxy(3,1);
          lcd_puts(str);
          delay_ms(500);
          };
      }
}

Oya, jangan lupa konfigurasi CVAVR untuk ‘1 wire’ koneksi sensor suhu DS1820 diset pada PORTD.7 seperti pada rangkaian :

Konfigurasi 1 wire pada CVAVR

Ok, kita coba jalankan ya. Untuk melihat respon terhadap sensor, nilai temperatur dapt kita ubah dengan mmenekan (klik) tombol + untuk menambah atau – untuk mengurangi pada sensor Ds1820.

Hasil Simulasi Sensor Suhu DS1820

Alhamdulillah sudah jalan, dan hasilnya cukup akurat. Untuk Mikrokontroler memakai ATmega16, anda dapat menggantinya dengan tipe AVR yang lain seperti ATmega8535 atau ATmega8. Pada simulasi tersebut frekuensi clock-nya 1 Mhz ya..

Sampai jumpa di postingan yang akan datang, Insya Allah … 🙂

 

18 thoughts on “Yuk nyoba Sensor Suhu DS1820 dg ATmega16

    • June 6, 2015 at 6:20 am
      Permalink

      Kapan2 kita coba dengan Bascom ya mas Nurdin.

      Reply
  • June 11, 2015 at 8:00 pm
    Permalink

    terimakasih inkubatek telah membantu saya untuk mempelajari mikrokontroller, sy sangat senang dan bersyukur di jaman yg serba harus pke duit gini masih ada orang yg mau berbagi ilmunya secara gratis… terima kasih semoga semakin sukses untuk inkubatek.

    Reply
    • June 13, 2015 at 8:19 am
      Permalink

      Makasih juga mas Derru Mabrur..

      Reply
  • November 22, 2015 at 1:23 am
    Permalink

    mas apa ada sensor kelembaban untuk pembacaannya di mikrokontroler mudah kyk sensor itu mas?

    Reply
    • November 24, 2015 at 8:59 am
      Permalink

      Kalau mudah/tidaknya sebenarnya relatif mas, kalau mau cari2 referensi di internet ada kok, seperti SHT11 (sensor kelembaban + suhu), atau juga DHT11

      Reply
  • December 12, 2015 at 11:12 pm
    Permalink

    lah kalo dht11 interfacenya gimana ya mas ?

    Reply
    • December 15, 2015 at 9:52 am
      Permalink

      DHT11 juga 1 kabel data saja, cuman beda protokolnya dengan DS1820. Coba aja mas googling di internet sudah banyak yang membahasnya.
      Trims ya dah mampir

      Reply
  • May 29, 2016 at 11:47 am
    Permalink

    mas maaf numpang tanya..kalo saya bikin gak keluar hasilnya kira2 setingannya salah tw gmn ya mas?
    hehe…trimakash atas jawabannya

    Reply
    • June 4, 2016 at 7:26 am
      Permalink

      Kalau copas programnya harus diperhatikan setingan clock, tipe mikro dll mas. Koneksi kaki sensornya juga. Kalau sama persis harusnya keluar hasilnya.
      Trims

      Reply
        • September 5, 2017 at 3:27 pm
          Permalink

          Maksudnya gak ada sebagian mas Rifki?
          Di program sudah ada library-nya :
          #include
          #include
          #include
          #include
          #include
          #include
          #define MAX_DS1820 8

          Reply
    • September 5, 2017 at 3:26 pm
      Permalink

      Maksudnya gak ada sebagian mas ?
      Di program sudah ada library-nya :
      #include
      #include <1wire.h>
      #include
      #include
      #include
      #include
      #define MAX_DS1820 8

      Reply
      • September 6, 2017 at 10:50 pm
        Permalink

        pengaturan portnya gak diubah?

        Reply

Leave a Reply

WhatsApp chat
%d bloggers like this: