Subscribe via email

Enter your email address:

Delivered by FeedBurner

Mengenal ADC (2)

lm35 Kali ini kita akan ngebahas gimana cara menggunakan ADC yang disambung ke sensor suhu LM35.
Output dari sensor kita hubungkan dengan PORTA.0 (chanel ADC 0). Untuk kodenya kita gunakan aja CodeWizard agar lebih efisien n kita gak usah pusing2 hafalin register2 AVR.
Oke sekarang langsung aja:

1. klik icon CodeWizard di CodeVision AVR. Lalu klik tab ADC image
2. Pada tampilan tab ADC, centang ADC ENABLED utk mengaktifkan ADCimage
Use 8 Bits: untuk memilih apakah ADC menggunakan resolusi 10 bit atau 8 bit. Biarkan kosong(jangan di centang) agar ADC menggunakan resolusi 10 bit.
ADC Interrupt: Interrupt ADC diaktifkan apa tidak.
High Speed: mode high speed digunakan apa tidak.
Volt. Ref: referensi tegangan ADC. ubah ke AVCC pin, agar ADC menggunakan referensi teg. 5 volt.

ADC Clock: untuk memilih frekuensi clock ADC.
Ada pertanyaan menarik dari Mas HaPE, tentang ADC Clok ini:image
di keterangan Clok ADC memang tertulis 125.000 kHz.
Itu bukan 125ribu kHz (125Mhz)
Tapi 125,000 kHz (125,0 kHz)
Inget orang Inggris nulis koma pake titik.
Auto Trigger Source: untuk menentukan sumber trigger ADC
...Ok let's finish this thing....
3. sekarang tinggal klik File ---> Generate, Save and Exit
image
lalu kasih nama dan simpen File2nya.
Contoh program ADC untuk LM35 :

#include <mega8535.h>
#include <stdio.h>.
#include <delay.h>

// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x18
#endasm
#include <lcd.h>

#define heater PORTB.0//heater di hubungkan dg PORTB.0
#define ADC_VREF_TYPE 0x40
unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input|ADC_VREF_TYPE;
ADCSRA|=0x40;
delay_us(10);
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCW;
}

unsigned char buff[33];
void lcd_putint(unsigned int dat)
{
sprintf(buff,"%d ",dat);
lcd_puts(buff);
}

void main(void)
{

unsigned int suhu;
float adc;

DDRB=0xff;
PORTB=0x00;

// ADC initialization
// ADC Clock frequency: 125.000 kHz
// ADC Voltage Reference: AVCC pin
// ADC High Speed Mode: Off
// ADC Auto Trigger Source: None
ADMUX=ADC_VREF_TYPE;
ADCSRA=0x85;
SFIOR&=0xEF;

// LCD module initialization
lcd_init(16);

while (1)
{
// Place your code here
adc = read_adc(0);
adc=adc/255;
suhu=adc*175;
suhu=suhu-12;
if (suhu<27)heater=1;
if (suhu>32)heater=0;
lcd_putsf("Suhu= ");
lcd_putint(suhu);
delay_ms(1000);
lcd_clear();

};
}
Program diatas untuk membaca nilai suhu dari sensor LM35 trus hasilnya digunakan sebagai acuan untuk menyalakan Heater yg terhubung ke PORTB.0
Dalam program diatas terdapat code:
adc=adc/255;
suhu=adc*175;
suhu=suhu-12;
Fungsi kode diatas untuk mengkalibrasi nilai ADC agar sesuai dengan suhu sebenarnya. Setiap rangkaian memiliki error yg berbeda-beda. jadi nilai untuk kalibrasi harus di sesuaikan.



any questions?? post comment on this blog: http:\\avrku.blogspot.com
or send email to: zigan@ymail.com
CodeVisionAVR C Compiler is copyright by Pavel Haiduc, HP InfoTech s.r.l.
AVR is a registered trademark of Atmel Corporation.

Selengkapnya...

Menghitung Resistor untuk LED

electronics_led_diagram
LED memang device kecil yg sepele, tapi kadang kita pusing saat mo nentuin resistor yang akan di seri ke LED untuk membatasi arus yang masuk. Karena bingung akhirnya maen comot aja nilai R nya, dan hasilnya nyala LED gak maksimal klo R nya ke besaren. Ato LED nya gampang meleduk klo R nya terlalu kecil.

Rumus menghitung nilai R untuk LED

R= V / I
Weheee.... sederhana kan... itu kan rumus dasar tegangan.
Nilai tegangan(V) adalah nilai tegangan sumber(Vs) dikurangi nilai tegangan LED(VL) (nilai tegangan LED diasumsikan 2,2 volt).
Arus yg boleh melewati LED kira-kira 20mA (0,02 A)
Jika tegangan sumber 12V besar VL nya adalah: 12-2,2 = 9.8 volt
R=9.8/ 0.02 = 490 ohm
Di pasaran sudah nyari R 490 ohm jadi kita nyari yang di atasnya dikit 510 ohm.
Setiap alat yang di aliri listrik pasti menimbulkan panas, begitu juga R yg kita gunakan ini. Semakin besar Daya maka panas yg dihasilkan juga semakin tinggi. So... kita harus memilih R dengan kapasitas daya yang sesuai agar R nya gak meleduk.. He3.....
P= V*I
So.... P= 9.8*0.02 = 0.196 watt
jadi minimal kita harus memilih LED yang 1/4 Watt (0.25 watt)
Selengkapnya...

Search

Entri Populer

 

Total Tayangan Halaman

Diberdayakan oleh Blogger.