MIKROKONTROLER ATMEGA BERBASIS CODEVISION AVR (ADC DAN APLIKASI TERMOMETER) dins D E P O K I N S T R U M E N T S
ADC Konsep Dasar ADC ADC = Analog to Digital Converter Pengubah sinyal analog menjadi sinyal digital (bit) Rumus dasar ADC: Data_ADC = (Vin/Vref)*(Maksimal_Data_Bit) Vin = Tegangan analog input yang akan diubah ADC. Vref = Tegangan referensi yang dipakai oleh ADC sebagai acuan pengubah. Maksimal_Data_Bit = Kemampuan maksimal data yang dapat dihasilkan oleh ADC.
Fitur ADC µc. ATmegaA Kanal ADC: PORTA.0 = ADC(0); PORTA. = ADC(); PORTA. = ADC(); PORTA. = ADC(); PORTA. = ADC(); PORTA. = ADC(); PORTA. = ADC(); PORTA. = ADC(); Maksimal_Data_Bit = 0-bit = 0 0 Vref ADC: ½ Aref Vin ADC = 0V V
DI-Smart AVR. System (Sistem Plus µc. ATmegaA) RP D0 D D D D D D D JP LED CONNECTED POWER -VDC DB SERIAL D 00 D PC + C uf + L PC C 0uF D PC 0 U0 Vin L PC C0 uf + R IN R IN T IN T IN C+ C - GND D PC L PC V+ V- GND LM0CT +V D PC L PC U R OUT R OUT T OUT T OUT C+ C - MAXCPE D PC + C 0uF L PC C uf + D PC + C 00nF L PC C uf D PC + C 00nF L PC + C uf D0 PC0 L PC0 TXD SERIAL RXD SERIAL PB0 PB PB PB PB PB PB PB PD0 PD PD PD PD PD PD PD X X RST X Y 000 X PD PD 0 PB0 (T0) PB (T) PB (AIN0) PB (AIN) PB (SS) PB (MOSI) PB (MISO) PB (SCK) PD0 (RXD) PD (TDX) PD (INT0) PD (INT) PD (OCB) PD (OCA) PD (ICP) PD (OC) X X IC RESET C 0pF C SW S PD S PD 0pF AT MEGA PA0 (ADC0) PA (ADC) PA (ADC) PA (ADC) PA (ADC) PA (ADC) PA (ADC) PA (ADC) (TOSC) PC (TOSC) PC PC PC PC PC PC PC0 AREF AGND A RST R K C 00nf W 0 0 VR PA0 PA PA PA PA PA PA PA PC PC PC PC PC PC PC PC0 RST AREF 0K AREF PA0 PA PA PA PA PA PA PA PC0 PC PC PC PC PC PC PC C 00nF PB LED RST PB PB RXD SERIAL PD0 RXD ISP P0 PORTA 0 P PORTC 0 POWER L0 P ISP PROG 0 JP JP R K PB0 PB PB PB PB PB PB PB PD0 PD PD PD PD PD PD PD P PORTB 0 P PORTD 0 RXD ISP TXD ISP TXD SERIAL PD TXD ISP
DI-Smart AVR. System......... ATmegaA Crystal Reset ISP Power Vref ADC RS LED Array Push Button PORTA = ADC Vref
Pemrograman ADC pada CVAVR Inisialisasi Wizard Pemilihan Vref ½ V@Aref Pemilihan Clock Aktivasi ADC
Pemrograman ADC Ditampilkan LCD (Setup Wizard )
Pemrograman ADC Ditampilkan LCD (Subprogram Hasil Wizard ) read_adc(channel) adalah subprogram untuk membaca data dari kanal adc. Dengan channel adalah 0.
Pemrograman ADC Ditampilkan LCD (Inisialisasi ADC Hasil Wizard ) Inisialisasi ADC sesuai dengan yang diinputkan saat Wizard.
Pemrograman ADC Ditampilkan LCD (Membaca dan Menampilkan ADC) [/] { } #include <mega.h> #include <delay.h> #include <stdio.h> #include <alcd.h> #define ADC_VREF_TYPE 0x00 unsigned int read_adc(unsigned char adc_input) ADMUX=adc_input (ADC_VREF_TYPE & 0xff); delay_us(0); ADCSRA =0x0; while ((ADCSRA & 0x0)==0); ADCSRA =0x0; return ADCW;
Pemrograman ADC Ditampilkan LCD (Membaca dan Menampilkan ADC) [/] unsigned char cstr[]; unsigned int idata; void main(void) { ADMUX=ADC_VREF_TYPE & 0xff; ADCSRA=0xA; SFIOR&=0xF; lcd_init(); while () { lcd_clear(); idata = read_adc(0); sprintf(cstr,"data ADC: %0d",idata); lcd_puts(cstr); delay_ms(0); } }
Aplikasi ADC Termometer berbasis Sensor LMDZ LMDZ adalah sensor temperatur analog ekonomis namun cukup baik dalam mengukur temperatur. Jangkauan: 0 00 o C Sensitivitas: 0 mv/ o C Operasional: 0 V
Fungsi Transfer Sensor LMDZ Tinjau-ulang dasar ADC: Data_ADC = (Vin/Vref)*(Maksimal_Data_Bit) Data_ADC = Hasil konversi ADC internal ATmegaA Vin = Tegangan LM Vref = Sesuai pengaturan di Wizard CVAVR = V Maksimal_Data_Bit = 0 Bit = 0 Sensitivitas LM = 0 mv/ o C Temperatur terukur (T): T = (Vin/0 mv) o C T = ((Data_ADC*V/0)/0 mv) o C
Termometer berbasis Sensor LMDZ (Skrip Program CVAVR) [/] { } #include <mega.h> #include <delay.h> #include <stdio.h> #include <alcd.h> #define ADC_VREF_TYPE 0x00 unsigned int read_adc(unsigned char adc_input) ADMUX=adc_input (ADC_VREF_TYPE & 0xff); delay_us(0); ADCSRA =0x0; while ((ADCSRA & 0x0)==0); ADCSRA =0x0; return ADCW;
Termometer berbasis Sensor LMDZ (Skrip Program CVAVR) [/] unsigned char cstr[], T; //T = Temperatur unsigned int idata; float fdata; //Nilai pecahan agar perhitungan baik. void main(void) { ADMUX=ADC_VREF_TYPE & 0xff; ADCSRA=0xA; SFIOR&=0xF; lcd_init(); while () { lcd_clear(); idata = read_adc(0); sprintf(cstr,"data ADC: %0d",idata); lcd_puts(cstr);
Termometer berbasis Sensor LMDZ (Skrip Program CVAVR) [/] fdata = (((float)idata*)/0)/0.0; T = (char)fdata; sprintf(cstr,"temperatur: %0d C",T); lcd_gotoxy(0,); lcd_puts(cstr); delay_ms(0); } }
E-BOOK DINS http://depokinstruments.com/category/-e-book/