Kuliah Mikrokontroler AVR Contoh Comparator ADC DAC AVR

  • Slides: 25
Download presentation
Kuliah Mikrokontroler AVR Contoh Comparator, ADC, DAC AVR Eru©September 2009 PENS

Kuliah Mikrokontroler AVR Contoh Comparator, ADC, DAC AVR Eru©September 2009 PENS

Bagian-bagian ADC Sampling and Hold (S/H) Frekuensi/Time Sampling Referensi Multiplexer Analog SAR ADC SOC

Bagian-bagian ADC Sampling and Hold (S/H) Frekuensi/Time Sampling Referensi Multiplexer Analog SAR ADC SOC (ADSC) EOC (ADIF)

Beberapa Teknik Pengukuran Pooling Interupsi EOC (ADIF) Free Running Auto Scanning – Multi Channel

Beberapa Teknik Pengukuran Pooling Interupsi EOC (ADIF) Free Running Auto Scanning – Multi Channel Time Sampling

Pooling Tidak bergantung dengan sampling tertentu

Pooling Tidak bergantung dengan sampling tertentu

Interupsi EOC (ADIF) Jika tidak ingin kehilangan waktu sedikitpun untuk menunggu sampai ADC selesai

Interupsi EOC (ADIF) Jika tidak ingin kehilangan waktu sedikitpun untuk menunggu sampai ADC selesai melakukan konversi Tidak ada gunanya dalam sistem, single task

Free Running Jika tidak ingin direpotkan dengan aktifitas SOC dan EOC Biasanya berpasangan dengan

Free Running Jika tidak ingin direpotkan dengan aktifitas SOC dan EOC Biasanya berpasangan dengan interupsi SOC awal dilakukan secara manual – ADSC 1 SOC berikutnya otomatis dilakukan saat EOC (ADIF) – Raising edge dari sinyal ADIF (EOC) akan men-trigger SOC kembali

Auto Scanning Jika tidak ingin diributkan dengan membaca satu-per-satu tegangan tiap channel – Data

Auto Scanning Jika tidak ingin diributkan dengan membaca satu-per-satu tegangan tiap channel – Data akan tersimpan pada variable array Multi Channel – ADC menggunakan Multiplexer Analog untuk memilih input tegangan yang akan dibaca – Dalam keadaan tertentu, proses untuk mengubah dari satu channel ke channel lainnya bisa gagal Artinya saat membaca suatu channel, ternyata yang terbaca adalah channel sebelumnya – Sebaiknya setiap channel dibaca dua kali

Time Sampling Jika dikehendaki pembacaan ADC dilakukan secara terus-menerus dan periodik dengan interval waktu

Time Sampling Jika dikehendaki pembacaan ADC dilakukan secara terus-menerus dan periodik dengan interval waktu yang selalu sama) Misalkan – Real-time Digital Control System – Real-time Digital Sinyal Processing Akurasi interval bervariasi tergantung aplikasi yang ingin dibangun

Contoh Aplikasi Volt Meter Sederhana Alat Ukur Suhu Pengukuran Multi-channel Time-sampling – – Sederhana

Contoh Aplikasi Volt Meter Sederhana Alat Ukur Suhu Pengukuran Multi-channel Time-sampling – – Sederhana Interupsi Presisi Per Frame Filter

Volt Meter Sederhana Mengukur tegangan 1 Volt dc dengan ketelitian 1 m. V Kecepatan

Volt Meter Sederhana Mengukur tegangan 1 Volt dc dengan ketelitian 1 m. V Kecepatan pembacaan 500 ms VRef - R 1 ADC Port + Program Vin R 2 Clock AVR ATmega 16 LCD

Perancangan Volt Meter Vref. ADC = 5 volt dc Vin = 1 volt penguatan

Perancangan Volt Meter Vref. ADC = 5 volt dc Vin = 1 volt penguatan A = 5 x R 1= 1 K, R 2 = 4 K Ketelitian = 1 m. V resolusi = 1 V/1 m. V=1000 Resolusi ADC 2 Log(1000) 10 bit Perhitungan

Pemilihan Referensi ARef pin – Tegangan referensi dari sumber luar – Nilai dapat disesuaikan

Pemilihan Referensi ARef pin – Tegangan referensi dari sumber luar – Nilai dapat disesuaikan dengan kebutuhan AVCC pin – Tegangan referensi dari VCC analog Internal dengan Kapasitor pada ARef pin – Tegangan 2, 56 volt – Harus ada kapasitor filter pada pin ARef

Semua secara manual Agar lebih mudah Program Volt Meter

Semua secara manual Agar lebih mudah Program Volt Meter

Alat Ukur Suhu Buat alat ukur suhu menggunakan LM 35 dengan batas pengukuran sekitar

Alat Ukur Suhu Buat alat ukur suhu menggunakan LM 35 dengan batas pengukuran sekitar 60 derajat – Catatan: LM 35 memiliki ketelitian 3 °C, sehingga meskipun resolusi ADC ditingkatkan, tetapi ketelitian pembacaan suhu tetap maksimal 3 °C.

Pengukuran Multi-channel Usahakan untuk melakukan pembacaan pada channel yang sama dua kali – Sering

Pengukuran Multi-channel Usahakan untuk melakukan pembacaan pada channel yang sama dua kali – Sering terjadi, karena cepatnya proses pembacaan ADC (karena clock terlalu tinggi), pembacaan pada suatu channel akan salah. Hal ini disebabkan MUX ADC ternyata masih membaca channel sebelumnya.

Contoh Multi Channel Umumnya … Sebaiknya …

Contoh Multi Channel Umumnya … Sebaiknya …

Free Running ADATE = 1 ADTS = 0 Free Running ADIF Start pertama harus

Free Running ADATE = 1 ADTS = 0 Free Running ADIF Start pertama harus manual ADSC=1 Start berikutnya saat ADIF = 1 (EOC) Perhitungan sampling tergantung kecepatan konversi dari ADC Hanya efektif saat – menggunakan interupsi – Masalah waktu sampling tidak dipentingkan

Contoh Sistem Kontrol Menggunakan Free Running Timer/Counter 0 Sebagai Fast PWM ADC Mode Free

Contoh Sistem Kontrol Menggunakan Free Running Timer/Counter 0 Sebagai Fast PWM ADC Mode Free Running Dan Interupsi ADSC (SOC) Pertama manual Sistem kontrol tegangan (motor) dengan pembacaan secara free running menggunakan interupsi Program utama Dapat diisi lain-lain

Contoh Sistem Kontrol Menggunakan Free Running Rutin interupsi ADIF Baca tegangan dan Hitung nilainya

Contoh Sistem Kontrol Menggunakan Free Running Rutin interupsi ADIF Baca tegangan dan Hitung nilainya Proses kontrol Cara ini hanya dapat digunakan jika program pemroses memiliki kecepatan lebih tinggi dari kecepatan konversi ADC – Sampling ADC harus lebih rendah dari proses

ADC Menggunakan delay Time-sampling: Sederhana PWM Tidak diperlukan waktu sampling yang akurat

ADC Menggunakan delay Time-sampling: Sederhana PWM Tidak diperlukan waktu sampling yang akurat

Time-sampling: Interupsi Menggunakan timer interupsi Menggunakan Polling Rutin read_adc() Tidak ditampilkan Lebih aman

Time-sampling: Interupsi Menggunakan timer interupsi Menggunakan Polling Rutin read_adc() Tidak ditampilkan Lebih aman

Menggunakan timer interupsi Time-sampling: Interupsi Rutin read_adc() Tidak ditampilkan Harus diletakkan Di atas interupsi

Menggunakan timer interupsi Time-sampling: Interupsi Rutin read_adc() Tidak ditampilkan Harus diletakkan Di atas interupsi timer Awas ! Berbahaya kalau salah Membuat program (Hung/Macet/Dsb)

Time-sampling: Per Frame Membaca beberapa sampling sekaligus dan disimpan pada variable array – Cara

Time-sampling: Per Frame Membaca beberapa sampling sekaligus dan disimpan pada variable array – Cara sederhana (dengan delay) – Lebih presisi (dengan timer mode CTC)

Filter Membuang variasi pembacaan, yang dapat disebabkan oleh – Noise – Ketelitian/error ADC/device konversi/input

Filter Membuang variasi pembacaan, yang dapat disebabkan oleh – Noise – Ketelitian/error ADC/device konversi/input lain