Senin, 30 Mei 2011

Membuat Alat Pengukur Suhu Digital

Assalamualaikum Wr. Wb.
Ok, pertama-tama saya kenalin dulu sensor yang mau dipake. Sensor suhu DS18B20 merupakan suatu komponen elektronika yang bisa menangkap perubahan suhu untuk kemudian dikonversikan menjadi besaran listrik. Sensor ini menggunakan 1 wire untuk berkomunikasi dengan mikrokontroler. Uniknya, sensor ini  memiliki kode serial yang berbeda sehingga bisa digunakan lebih dari satu dalam satu komunikasi 1 wire.
Spesifikasi sensor suhu DS18B20 seperti dibawah ini:
  • 1-Wire ® interface dan hanya memerlukan satu pin port untuk komunikasi secara 1-Wire
  • setiap perangkat memiliki kode serial 64-bit yang disimpan dalam sebuah ROM onboard
  • ga memerlukan ada komponen tambahan
  • bisa bekerja pada kisaran tegangan 3 sampai 5,5V
  • bisa mengukur suhu pada kisaran -55 sampai 125 °C
  • akurasinya ± 0,5°C akurasi dari suhu  -10 sampai 85 °C
  • resolusi dapat dipilih oleh pengguna antara 9 sampai 12 bit
  • recepatan mengkonversi suhu maksimal 750 ms
  • kompatibel dengan software Codevision AVR
Selain sensor, kita juga perlu mikrokontroler sama LCD 2×16. Mikrokontroler untuk memprosesnya, LCD berperan sebagai displaynya.
Selanjutnya hubungkan Pin yang ada pada LCD ke Pin di Mikrokontroler seperti dibawah ini. LCD bisa dipasang di port mana aja, tapi ntar dirubah lagi di programnya.
PORTC.0 = RS (LCD pin 4)
PORTC.1 = RW (LCD pin 5)
PORTC.2 = E (LCD pin 6)
PORTC.3 = Free
PORTC.4 = DB4 (LCD pin 11)
PORTC.5 = DB5 (LCD pin 12)
PORTC.6 = DB6 (LCD pin 13)
PORTC.7 = DB7 (LCD pin 14)
Selanjutnya hubungnya sensornya ke mikrokontroler dengan ketentuan seperti dibawa ini. Sebenernya bisa di pin mana aja selain yang sudah dipake LCD, tapi ntar diganti lagi di programnya. Oiya, jangan lupa menambahkan resistor 10 kilo ohm pada outputnya (pin 2 dari sensor) sebelum ke mikrokontroler.
Pin 1 = Ground
Pin 2 = PORTB.0
Pin 3 = VCC 5 V
Kalo rangkaiannya udah jadi buka codevision-nya terus bikin project. Pilih aja yang tanpa code wizard. Terus Copy progam dibawah ini dan paste ke codevision yang tadi dijalanin.
//////////////////////////////////////////////////////////////////
#include
#include <1wire.h>
#include
#include
#include
#include
#define MAX_DS1820 8
#asm
.equ __lcd_port=0×15 ;PORTC
#endasm

unsigned char ds1820_devices;
unsigned char ds1820_rom_codes[MAX_DS1820][9];
char lcd_buffer[33];

void main(void)
{
unsigned char i,j;
int temp;
w1_init();
ds1820_devices=w1_search(0xf0,ds1820_rom_codes);
lcd_init(16);
while (1)
   {
   for (i=0;i<ds1820_devices;i++)
      {
      temp=ds1820_temperature_10(ds1820_rom_codes[i][0]);
      j=’+';
      if (temp<0)
        {
        j=’-';
        temp=-temp;
        };
sprintf(lcd_buffer,”t%u=%c%i.%u\xdfC”,++i,j,temp/10,temp%10);
lcd_clear();
lcd_puts(lcd_buffer);
delay_ms(800);
};
}
}
//////////////////////////////////////////////////////////////////
Setelah itu download programnya ke mikrokontrolernya..
udah bisa belum? kalo belum bisa silahkan tanya di coment dibawah ini. Insyaallah saya jawab.
Sekian dulu ya, saya mau jumatan dulu.
Wassalamualaikum Wr.Wb.

1 komentar:

  1. itu bukan pake I2C ya? saya kurang ngerti tentang I2C soale, itu bikin library sendri apa kita harus include library dlu ke avr nya?

    BalasHapus

 
Copyright © 2011. Who lives in fear will never be free man . All Rights Reserved
Home | Contact | Facebook | Twitter | Term of use | Widget | Site map
Design by Herdiansyah . Published by Borneo Templates