4 Ch Sensor Suhu LM35 dengan Bahasa C

Di waktu – waktu yang lalu, kami pernah menjanjikan posting tentang membaca sensor suhu LM35 dengan Bahasa C. Banyak permintaan di email, sms, maupun komentar di blog ini. Dan… alhamdulillah saat ini dapat kita hadirkan.

CodeVisionAVR (CVAVR) seri 2.6 kita pakai buat nge-develop programnya. Mikrokontroler Atmega8535 dengan tambahan LCD 2×16 plus 4 sensor suhu LM35 sebagai hardwarenya. Skematik atau rangkaian mikrokontroler dengan sensor suhu dapat dilihat di gambar bawah.

Empat pin ADC kita pakai untuk membaca sensor, ADC0 sd ADC3. LCD terhubung ke PORTB. Oya kita pakai simulator saja ya. Disini saya pakai Proteus versi 7.
Baik, langsung ke programnya :

#include <mega8535.h>
#include <delay.h>
#include <alcd.h>
#include <stdio.h>
unsigned int d,t;
char buff[15];
#define ADC_VREF_TYPE ((0<<REFS1) | (1<<REFS0) | (0<<ADLAR))

unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input | ADC_VREF_TYPE;
delay_us(10);
ADCSRA|=(1<<ADSC);
while ((ADCSRA & (1<<ADIF))==0);
ADCSRA|=(1<<ADIF);
return ADCW;
}

void main(void)

{
ADMUX=ADC_VREF_TYPE;
ADCSRA=(1<<ADEN) | (0<<ADSC) | (0<<ADATE) | (0<<ADIF) | (0<<ADIE) | (1<<ADPS2) | (1<<ADPS1) | (1<<ADPS0);
SFIOR=(1<<ADHSM) | (0<<ADTS2) | (0<<ADTS1) | (0<<ADTS0);
lcd_init(16);
lcd_clear();
lcd_putsf(“4 Ch LM35”);
delay_ms(1000);
lcd_clear();

while (1)
{
d=read_adc(0);
t=(d*5)/10;
sprintf(buff,”T1=%d “,t);
lcd_gotoxy(0,0);
lcd_puts(buff);
delay_ms(200);
d=read_adc(1);
t=(d*5)/10;
sprintf(buff,”T2=%d “,t);
lcd_gotoxy(7,0);
lcd_puts(buff);
delay_ms(200);
d=read_adc(2);
t=(d*5)/10;
sprintf(buff,”T3=%d “,t);
lcd_gotoxy(0,1);
lcd_puts(buff);
delay_ms(200);
d=read_adc(3);
t=(d*5)/10;
sprintf(buff,”T4=%d “,t);
lcd_gotoxy(7,1);
lcd_puts(buff);
delay_ms(200);
}
}

Tambahan : clock yang dipakai 1 MHz. Pin AVCC dan Areff terhubung ke VCC.
Langsung kita coba, hasilnya kayak gini bro :

Cukup mudah dan sederhana kan ? Selamat mencoba..

 

4 thoughts on “4 Ch Sensor Suhu LM35 dengan Bahasa C

  • April 21, 2014 at 3:35 pm
    Permalink

    sprintf(buff,”T1=%d “,t)
    kok ininya eror

    Reply
  • October 15, 2014 at 12:33 am
    Permalink

    mas untuk project delphi agar bisa bedain sensor 1, 2, 3 dan 4 caranya gimna mas..?
    tolong di bantu mas..

    Reply
    • April 2, 2016 at 9:05 am
      Permalink

      Makasih pak Gun …

      Reply

Leave a Reply

WhatsApp chat
%d bloggers like this: