Rabu, 17 Juni 2009

Sensor Garis ADC : ADCtoBoolean

.
Data sensor garis yang akan dibaca pada PORT ADC yaitu PORTA.0 hingga PORTA.7 akan bernilai antara 0 - 255 (ADC 8 bit) setiap PIN-nya dan belum bernilai logika 1 ataupun logika 0, padahal data yang dibutuhkan untuk mengolah nilai sensor garis nantinya adalah logika 0 / 1 setiap PIN-nya. Oleh sebab itu dibutuhkan fungsi yang akan mengubah nilai 0 - 255 menjadi logika 1 atau logika 0.

Salah satu caranya yaitu dengan menentukan nilai tengah (Sensor Garis ADC : Nilai Tengah Sensor Garis) antara nilai ADC untuk gelap (garis hitam) dengan nilai ADC untuk terang (garis putih), Misalkan saat gelap nilai ADC PORTA.0 = 230 sedangkan saat terang nilai ADC PORTA.0 = 80 maka nilai tengahnya yaitu (230 + 80) / 2 = 155, Artinya jika nilai ADC pada PORTA.0 di bawah 155 (ADC(0) kurang dari 155) maka berlogika 1 (putih = 1) sedangkan jika nilai ADC pada PORTA.0 diatas sama dengan 155 maka berlogika 0 (hitam = 0).

Berikut potongan program Konversi nilai ADC menjadi Logika 1 / 0 yaitu mambaca data pada PORTA dan menampilkan logikanya pada PORTB berupa LED.
- Konfigurasi CodeWizzardAVR (LCD tidak digunakan).
- Rangkaian Schematik Hardware.








Tambahan :
  • Konfigurasi lihat blog sebelumnya.
  • #define PORTLED PORTB mendefinisikan PORTB sebagai port rangkaian LED.
  • unsigned char ram sebagai global ram yang berfungsi bebas.

Langkah program :
  • Menunggu karakter input dari komputer secara serial COM.
  • Jika 'A' (0x41 dalam heksa) maka proses mencari GARIS_NILAITENGAH dilakukan.
  • Jika karakter selain 'A' lanjut ke proses selanjutnya.
  • Membaca ADC(0) - ADC(7).
  • Jika ADC(x) lebih besar dari nilai tengah maka dataport[x] = 0 (hitam = 0).
  • Jika ADC(x) lebih kecil sama dengan dari nilai tengah maka dataport[x] = 1 (Putih = 1).
  • Tampilkan hasil pengolahan data ADC pada LED setelah dikomplemenkan (LED rendah aktif).

1 komentar:

  1. mau tanya mas semisal untuk menampilkan data adc tesebut ke bentuk biner, ditampilkan ke lCD dan dikirim via UART, gmana ya??

    BalasHapus

Topik yang Populer