Selasa, 16 Juni 2009

Sensor Garis ADC : Membaca Data

.
Program (Coding) yang akan saya bahas berikut ini adalah membaca tegangan keluaran dari sensor yang masuk pada port ADC mikrokontroler ATmega8535 jadi program ini tidak terbatas hanya pada pembacaan data sensor garis saja.

CodeWizzardAVR
Gunakan CodeWizzardAVR pada CodeVisionAVR dan atur konfigurasi seperti gambar 1. Disini saya sertakan pengecekan pembacaan sensor ADC tampilan komputer dengan UART dan tampilan LCD karakter 16 x 2, silahkan pilih salah satu (dua-duanya jg g masalah). Tapi saya mencoba hanya pada UART karena tidak tertarik menggunakan LCD 16x2, selain itu LCD hanya akan berguna 1 kali saja (nanti anda setuju juga sama saya).

ADC yang digunakan adalah 8 bit, silahkan mencoba untuk data 10 bit tetapi ingat penggunaan type datanya harus unsigned int (range 0 - 65535) atau int (range -32768 hingga 32767 )jangan menggunakan unsigned char (range 0 - 255) karena jika data 10 bit (logika 1 semua) berarti range ADC 0 - 1023. Untuk HighSpeed saya belum mencoba. Sebaiknya anda penasaran dan silahkan coba-coba setiap nilai (tentunya baca buku referensi dulu).
Untuk konfigurasi UART dan LCD, no comment.

Baca ADC Dengan UART
Gambar 2 adalah listing lengkap untuk Cek ADC dengan UART. Beberapa inisialisasi saya hilangkan karena kondisi default dan pembacaan ADC saya taruh d bawah (default di atas).

Wow.... Simple kan main programnya.
Sebisa mungkin main program adalah program yang hanya memanggil fungsi atau prosedure karena banyak keuntunggannya,
antara lain :
  • Memperkecil memori.
  • Mempermudah mengoreksi program.
  • Memperkecil penggunaan global variabel (semakin banyak global variabel, register yang digunakan semakin banyak).
  • Program menjadi lebih terstruktur dan terorganisasi.
  • Membuat Anda akan merancang Flowchart / Statechart terlebih dahulu sebelum melakukan Coding (biasanya langsung Coding sehingga sering merivisi programnya).
  • dll.
Program ini akan menunggu anda mengetik karakter 'A' ( 41 dalam Hex Code ) dan kemudian memproses pembacaan ADC. ADC(0) di baca terlebih dahulu dan terakhir ADC(7). putchar(13) adalah pindah ke baris berikutnya ( 13 = 0x0D = enter ).

Mengapa menggunakan buf[12] ?
Data yang akan ditampilkan misal untuk ADC(5) "LDR 5 : 230 " (ada spasi di akhirnya), perhatikan total karakter yang ditampilkan adalah 12 buah.

Baca ADC LCD 16x2
Gambar 3 adalah potongan listing untuk Cek ADC dengan LCD 16x2 karakter.
Berbeda dengan UART, seluruh data pada ADC(x) dibaca terlebih dahulu secara keseluruhan dan disimpan pada data[x].
lcd_clear() berfungsi untuk menghapus LCD dan posisi x,y otomatis (0,0). Baris 1 LCD dengan jumlah 16 karakter akan menampilkan data ADC(0) - ADC(3) sedangkan Baris 2 LCD menampilkan data ADC(4) - ADC(7).

Tidak ada komentar:

Posting Komentar

Topik yang Populer