Monday, June 16, 2014

Belajar ADC (Analog to Digital Converter)

Saat ini, telah umum menggunakan Arduino untuk membuat kontrol suatu sistem. Namun tidak ada salahnya jika belajar sedikit tentang mikrokontroler dan fungsi-fungsi dasar yang terdapat pada mikrokontroler, salah satunya ADC (Analog to Digital Converter). ADC merupakan sebuah fungsi untuk mengubah data analog menjadi data digital. Ini dimiliki oleh mikrokontroler AVR seperti ATmega8535/16/32. Sehingga kita dapat langsung membaca sinyal analog tanpa memerlukan perangkat tambahan lainnya. Pada mikrokontroler ini terdapat 8 channel ADC dengan pembacaan maksimal 10 bit.

Langsung saja kita buat programnya dengan bantuan CodeVisionAVR. Di sini saya menggunakan ATmega16 dan software Proteus untuk membuat simulasi programnya. Sedangkan untuk membuat hardware-nya, dapat dilihat di Rangkaian LCD 16x2 dengan AVR.

Rangkaian ADC dengan ATmega16

ADC (ADC0-ADC7) terdapat pada PORTA (PA0-PA7). Di sini ADC0 atau PORTA.0 yang digunakan sebagai masukan mikrokontroler untuk membaca hasil keluaran potensio. Sedangkan PORTB untuk tampilan LCD.

Pengaturan di CVAVR
Untuk pembuatan program dan pengaturan CodeWizardAVR dapat dilakukan seperti gambar di atas. Crystal yang digunakan pada rangkaian ini adalah 11,059200 MHz, sehingga Clock juga diberi nilai tersebut. Pada pengaturan ADC, centang ADC Enabled dan juga Use 8 bit jika menggunakan 8 bit, biarkan saja tanpa centang jika menggunakan 10 bit.

Selanjutnya kita buat programnya. Taruh program utama sederhana berikut ini di bawah "// Place your code here".

dataadc = read_adc(0); // input pada pin ADC.0 atau PORTA.0
vin = ((float)dataadc*5/255);
lcd_clear();
lcd_gotoxy(0,0);
sprintf(buff, "Nilai ADC=%d", dataadc);
lcd_puts(buff);
lcd_gotoxy(0,1);
sprintf(buff, "Tegangan=%0.1f V", vin);
lcd_puts(buff);
delay_ms(10);

read_adc(0) merupakan masukan pada pin ADC0 atau PORTA.0 dari potensio. Sedangkan vin adalah konversi kembali nilai ADC menjadi nilai tegangan (8 bit = 256 desimal, nilai maksimal adalah 255). Program lengkapnya dapat di-download di link di bawah. Hasil simulasi program dapat dilihat pada gambar di bawah ini.

Simulasi program


Download Program (.c):
http://www.mediafire.com/download/8uunpdzexobrt1u/AV-AD01.zip
atau
http://www.4shared.com/zip/k1zcHZPVce/AV-AD01.html

Related Post:

4 comments:

  1. kang,command dataadc, vin, sama sprintf kok gabisa ya?

    ReplyDelete
    Replies
    1. Iya itu pasti karena "dataadc", "vin", belum dideklarasikan jadi tidak dikenali. Coba download script program lengkapnya aja kang.

      Delete
    2. kalo bisa yang lengkap mas, biar gak bingung :D

      Delete
  2. kang , boleh bagi file komplitnya ga

    ReplyDelete
:) :( ;) :D ;;-) :-/ :x :P :-* =(( :-O X( :7 B-) :-S #:-S 7:) :(( :)) :| /:) =)) O:-) :-B =; :-c :)] ~X( :-h :-t 8-7 I-) 8-| L-) :-a :-$ [-( :O) 8-} 2:-P (:| =P~ #-o =D7 :-SS @-) :^o :-w 7:P 2):) X_X :!! \m/ :-q :-bd ^#(^ :ar!