• Tidak ada hasil yang ditemukan

Interfacing. Materi 6: ADC, DAC & Sensor Interfacing. Disusun Oleh: I Nyoman Kusuma Wardana

N/A
N/A
Protected

Academic year: 2021

Membagikan "Interfacing. Materi 6: ADC, DAC & Sensor Interfacing. Disusun Oleh: I Nyoman Kusuma Wardana"

Copied!
63
0
0

Teks penuh

(1)

Interfacing

Materi 6: ADC, DAC & Sensor Interfacing

Disusun Oleh:

(2)

Outline

• General ADC concepts • ADC programming

• Sensor interfacing & signal conditioning • DAC interfacing

(3)
(4)

General ADC Concepts

ADC Devices

• Analog-to-digital converters (ADC) mrpkn salah satu alat yg paling banyak digunakan utk akuisisi data (data acquisition)

• Komputer digital  menggunakan biner (diskrit), sdgkan

• Physical world  segala sesuatu adlh analog

(kontinu)

• Physical quantities: temperatur, tekanan,

kelembaban dan kecepatan  semua bersifat analog

(5)

• Sistem Analog sinyal2

bervariasi waktu yg

memiliki nilai-nilai kontinu • Sistem Digital sinyal2

bervariasi waktu yg memiliki nilai2 diskrit

(6)

Analog Digital

Dimengerti secara intuisi Memerlukan latihan untuk memahami Dapat dibagi menjadi tak terhingga Diskrit

Mudah mengalami kesalahan akibat presisi

Presisi bersifat mutlak

• Jgn salah memahami ttg tingkat presisi !!  belum tentu representasi dlm bentuk digital selalu lebih akurat drpd analog

• Representasi digital  disusun oleh individual, tersimbolkan scr diskrit dalam steps yg jelas

• Representasi analog  tidak disusun oleh oleh step2 individual, melainkan oleh suatu rentang pergerakan yg

(7)

General ADC Concepts

(8)

General ADC Concepts

• ADC  menerjemahkan input analog ke

output digital yg mewakili ukuran dari input tersebut relatif terhadap suatu referensi

• Ambil 3 jenis konsep ADC: 1. ADC Ideal

2. ADC Sempurna

(9)

General ADC Concepts

Ideal ADC

• ADC Ideal  hanya konsep secara teori, & tidak bisa diterapkan dlm kehidupan nyata

• ADC Ideal  memiliki resolusi yg tidak terbatas

• Setiap kemungkinan nilai input memberikan output unik dlm suatu rentang konversi

• Secara matematis, ADC Ideal digambarkan sbg garis lurus

(10)

General ADC Concepts

• Fungsi Transfer dr ADC Ideal

(11)

General ADC Concepts

ADC Sempurna (Perfect ADC)

• Karena sifat dr sistem digital  output berupa

garis lurus tidaklah dimungkinkan

• Utk mendefinisikan ADC sempurna  konsep

kuantisasi (quantization) perlu dipelajari • Rentang output harus dibagi menjadi

sejumlah langkah (step), 1 langkah dr setiap kemungkinan output digital

(12)

General ADC Concepts

• Ini berarti  1 nilai output tidak

berkorespondensi dgn suatu nilai input unik, namun suatu rentang kecil nilai input

• Hasilnya adlh  fungsi transfer dlm bentuk

tangga

• Contoh, jika ADC yg memiliki 8 output step

berarti memiliki resolusi 8 level (atau 3-bit)

• Jika digabung dgn ADC ideal  ADC sempurna scr tepat berada di sekitar garis lurus

(13)

General ADC Concepts

• Fungsi transfer dr ADC sempurna:

(14)

General ADC Concepts

• ADC sempurna memiliki maksimum error sebesar  ± ½ step

• Dgn kata lain memiliki maksimum quantization error ± ½ LSB

(15)

General ADC Concepts

• Salah satu contoh aktual ADC:

(16)

General ADC Concepts

ADC Aktual

• Sama seperti ADC sempurna, namun memiliki berbagai tambahan error

• Juga memiliki jenis2 error yg lain, sprt: 1. Offset error

2. Gain error

3. Non-linearity

4. Temperature, frequency and power supply dependencies

(17)

General ADC Concepts

Conversion Range

• ADC AVR dpt dikonfigurasi utk:

a. Single-ended conversion

menggunakan 1 input channel

b. Differential conversion

menggunakan perbedaan antara 2 input channel

(18)

General ADC Concepts

(19)

General ADC Concepts

(20)
(21)
(22)
(23)
(24)
(25)
(26)
(27)

ADC Characteristics

• Koneksi sensor ke mikrokontroler melalui ADC diperlihatkan pd gambar berikut:

(28)

ADC Characteristics

• Blok diagram 8-bit ADC

Vref D0 D7 Vin Output data biner Analog Input Start conversion

(29)

Resolusi vs Ukuran Step untuk ADC (Vref =5V)

• Misal, untuk 8-bit  jmlh step = 28 = 256

• Ukuran step = Vref/jumlah step = 5/256 = 19,54 mV

ADC Characteristics

n-bit Jumlah step Ukuran step (mV)

8 256 5/256 = 19,53

10 1.024 5/1.024 = 4,88

12 4.096 5/4.096 = 1,2

16 65.536 5/65.536 = 0.076

(30)

ADC Characteristics

• Karakteristik utama ADC, adlh:

• Resolusi

• Waktu konversi

• Vref (referensi tegangan) • Output data digital

• Kanal analog input • dll

(31)

ADC Characteristics

Resolution

• ADC memiliki resolusi sebesar n-bit

• n = 8, 10, 12, 16, atau bahkan 24 bit

• Makin tinggi resolusi  ukuran step makin kecil

• Ukuran step  adlh perubahan terkecil yg bisa dilakukan oleh ADC

• Wlpn ukuran step tergantung dr arsitektur ADC itu sendiri, namun dpt kita manipulasi dgn Vref

(32)

ADC Characteristics

Conversion Time

• Conversion time  waktu yg diperlukan oleh ADC untuk mengkonversi input sinyal analog menjadi output data biner

• Faktor yg mempengaruhi waktu konversi: • Sumber clock ADC

(33)
(34)

ADC Programming

• Seiring dgn meningkatnya penggunaan uC,

saat ini trdapat on-chip ADC  seperti halnya

timer dan USART

• Hal ini sangat membantu, terutama utk

mengurangi penggunaan devais eksternal

• Sesi ini akan khusus membahas pemrograman ADC utk ATmega16

(35)

ADC Programming

Karakteristik ADC pd ATmega16, sbb:

• 10-bit ADC

• 8 input channel (single-ended), 7 input diferensial • Hasil output digital disimpan pd ADCL dan ADCH

• ADCH:ADCL  total 16-bit, hanya 10 yg digunakan,

6 tdk terpakai (bisa memilih 6-bit atas atau 6-bit bawah)

• 3 pilihan Vref: Vref dr AVCC (analog VCC), referensi

internal 2,56V atau eksternal AREF pin

• Waktu konversi  tergantung kristal dan register

(36)
(37)

ADC Programming

AVR ADC Hardware Considerations

• Utk sinyal logika pd sistem digital  variasi

kecil pd level tegangan tidak memiliki efek pd output

• Misal: 0,2 V akan diterjemahkan sbg LOW

karena, utk logika TTL, semua tegangan lebih kecil dr 0,5V akan dibaca sbg LOW

(38)

ADC Programming

Contoh:

• ADC 10-bit memiliki Vref = 2,56V. Hitunglah output D0-D9 jika input analog sebesar:

a) 0,2V b) 0V

(39)

ADC Programming

Jawab:

• ADC = 10-bit, maka variasi tegangan: 210=1024

• Ukuran step=2,56V/1024 = 2,5 mV

a) Dout = 0,2V/2,5mV = 80 (dec) = 1010000 (bin) b) Dout = 0V/2,5mV = 0 (dec) = 0000000 (bin)

(40)

ADC Programming

Contoh:

• Untuk 8-bit ADC, digunakan Vref=2,56V.

Hitunglah output pada D0-D7 jika input analog adalah:

a. 1,7 V b. 2,1 V

(41)

ADC Programming

Jawab: • Ukuran step = 2,56V / (28) = 2,56/256 = 10mV a. Dout = 1,7V/10mV = 170 (dec) = 10101010 Maka D7:D0 = 10101010 b. Dout = 2,1V/10mV = 210 (dec) = 11010010 Maka D7:D0 = 11010010

(42)

ADC Programming

• Pin AVCC menyediakan supply utk rangkaian analog ADC

• Utk memperoleh akurasi yg lebih baik  kita harus menyediakan sumber tegangan yg stabil

ke pin AVCC

• Teknik ini dikenal sbg  Decoupling AVCC from VCC

(43)

ADC Programming

• Utk mencapai tujuan tsb, digunakan induktor dan kapasitor, sbb:

(44)

ADC Programming

• Dgn menghubungkan kapasitor antara AVREF dan GND, maka kita dpt membuat tegangan Vref lebih stabil

(45)

ADC Programming

• Ada 5 register utama yg mengontrol ADC pd AVR, sbb:

1. ADCH (ADC Data Register HIGH) 2. ADCL (ADC Data Register LOW)

3. ADCSRA (ADC Control and Status Register A) 4. ADMUX (ADC Multiplexer Selection Reg.)

(46)

ADC Programming

1.ADMUX Register

(47)

ADC Programming

• Pemilihan referensi tegangan ADC:

(48)

Pemilihan chanel input (single-ended)

MUX4:0 Single-ended Input

00000 ADC0 00001 ADC1 00010 ADC2 00011 ADC3 00100 ADC4 00101 ADC5

(49)

ADLAR bit operation

• AVR memiliki 10-bit ADC  disimpan pd 2 register

(50)

ADC Programming

ADCH:ADCL Register

• Setelah konversi selesai, maka hasil akan disimpan pd register ADCL (Low Byte) dan ADCH (High Byte)

(51)

ADC Programming

ADCSRA Register

• Sebagai status dan kontrol register • Berikut adalah isi reg. ADCSRA:

(52)

ADC Programming

ADC Start Conversion Bit

• Single conversion  menulis 1 pd bit ini akan mengaktifkan setiap kali konversi dilakukan

• Free running mode  utk menjalankan

konversi pertama kali

(53)

ADC Programming

A/D Conversion Time

• Berguna sbg supply clock ke ADC

• Utk AVR  ADC memerlukan clock dgn maksimum 200kHz

(54)

Prescaler: istilah untuk membagi clock sumber agar bisa digunakan oleh ADC.

(55)

ADC Programming

Contoh:

• Sebuah uC AVR memiliki clock sebesar 8MHz. Hitunglah frekuensi ADC jika diset sbb:

a) ADPS2:0 = 001

b) ADPS2:0 = 100

c) ADPS2:0 = 111

Tentukan apakah clock tsb valid apa tidak?

(56)

ADC Programming

• ADPS2:0 = 001 (1 desimal)  21 = 2

Clock ADC = CK/2 = 8MHz/2 = 4MHz

Lebih besar dr 200kHz  tidak valid

• ADPS2:0 = 100 (4 desimal)  24 = 16

Clock ADC = 8MHz/16 = 500kHz

Lebih besar dr 200kHz  tidak valid

• ADPS2:0 = 111 (7 desimal)  27 = 128

Clock ADC = 8MHz/128 = 62kHz Jawab:

(57)

ADC Programming

Sample-and-Hold Time

• Setelah channel ADC dipilih  ADC

membutuhkan waktu sample-and-hold

capacitor (C hold) diisi penuh sesuai dgn input level tegangan pd ADC

• Pd AVR  konversi pertama membutuhkan 25

ADC clock utk menginisialisasi sirkuit dan memenuhi waktu sample-and-hold

• Setiap konversi memerlukan 13 detak ADC

(58)

ADC Programming

• Berikut beberapa kondisi dan waktu utk ADC

• Jika tidak diperlukan sekali, gunakan ADPS2:0 = 111 (dengan CK/128) utk akurasi ADC yg lebih baik

(59)

Programming ADC in ADC:

#include <mega16.h>

#include <stdio.h>

void main (void) {

DDRB = 0xFF; //PortB sbg output

DDRD = 0xFF; //PortD sbg output

DDRC = 0x00; //PortC sbg input ADC

ADCSRA = 0x87; //enable ADC, pilih CK/128

ADMUX = 0x40; //VCC Vref, ADC0 single

//ended, data = right-justified

while (1){

ADCSRA |=(1<<ADSC); //start konversi

while((ADCSRA&(1<<ADIF))==0);//tunggu konversi slesai

PORTD = ADCL; PORTB = ADCH; }

(60)

Programming ADC in Arduino:

// the setup routine runs once when you press reset:

void setup()

{ }

// the loop routine runs over and over again forever:

void loop() {

// read the input on analog pin 0:

int sensorValue = analogRead(A0);

// Convert from 0 - 1023 to a voltage (0 - 5V):

float voltage = sensorValue * (5.0 / 1023.0);

// print out the value you read:

analogWrite(9,voltage);

(61)
(62)

Programming ADC in Arduino:

int ADCval; void setup() {

Serial.begin(9600);

ADCSRA |= (1 << ADPS2); ADCSRA &= ~(1 << ADPS1); ADCSRA |= (1 << ADPS0);

ADMUX = 0;

ADMUX &= ~ (1 << REFS1); // Set ADC reference ke AVCC ADMUX |= (1 << REFS0); // Set ADC reference ke AVCC ADCSRA |= (1 << ADEN); // Enable ADC

ADCSRA |= (1 << ADIE); // Enable ADC Interrupt ADCSRA |= (1 << ADSC); // Start konversi A2D }

void loop() {

while((ADCSRA&(1<<ADIF))==0);//tunggu konversi slesai

PORTD = ADCL; PORTB = ADCH;

(63)

Daftar Pustaka

• Daniel J.Pack and Steven F.Barrettt, 2008,

Atmel AVR Microcontroller Primer:

Programming and Interfacing, Morgan & Claypool Publisher

• Mazidi, Naimi and Naimi, 2011, The AVR

Microcontroller and Embedded System: Using Assembly and C, Prentice Hall

• AVR ATmega16 Manual, Atmel Corporation

Referensi

Dokumen terkait

Namun dengan doa yang terus dilakukan dan kerjasama, puji Tuhan Seminar Nubuatan ini dapat berjalan dengan luar biasa, bahkan puluhan tahun saya menjadi anggota gereja banyak yang

Kepala Bagian Iklan: Ali Usodo Kepala Bagian Pemasaran: Monang Sitorus Wakil Kepala Bagian Iklan: Nenny Indriasari.. Telepon Pengaduan

Pemberian pupuk NPK Pelangi pada pertumbuhan dan produksi Terung berpengaruh nyata terhadap parameter pengamatan yaitu: tinggi tanaman, jumlah daun, panjang buah,

Rasulullah Shallallahu ‘Alaihi waSallam telah memerintahkan untuk membunuh Furat bin Hayyan, seorang kafir dzimmiy sekaligus sebagai mata-mata, namun ketika para

Dari hasil analisis yang telah dilakukan terhadap laporan keuangan yang diperoleh dari Koperasi Agribisnis Dana Mulya Pacet pada tahun 2005-2017 dengan menggunakan

Rajah 2 menjelaskan dua impak terjemahan kata kerja berjurang leksikal yang dikemukakan oleh TPR dan QMMT terhadap mesej al-Quran, iaitu (1) terjemahan yang berjaya

Dengan demikian penelitian ini telah berhasil mengkonfirmasi teori dengan empiris di lapangan, maka dapat disimpulkan bahwa terdapat pengaruh iklim organisasi, punishment dan

City dan All S sudah terd akan menu dan jaraknya (apalagi un objek spas a, Banjarba d All POI k ntor, hotel, T an Find Cities atau Objek spas Go to, ente si kita dan tu Map maup