Belajar ADC, Input Output dengan CV AVR dan Proteus

Posted by

oke setelah sebelumnya kita bahas cara menampilkan karakter di lcd maka sekarang kita akan belajar menggunakan fitur AtMega 32 lainnya yaitu ADC dan Input output dengan menggunakan CV AVR dan proteus.
langkah pertama adalah membuat rangkaian simulasi dengan proteus dengan komponen sebagai berikut :

 Setelah itu kita buat rangkaian seperti pada gambar ini :

 setelah rangkaian jadi kita tinggal membuat programnya, kita setting code wizard pada cv avr yang pertama adalah adc dengan settingan seperti pada gambar dibawah ini, ketika kita centang use 8 bits maka nilai rentang adc yang dihasilkan adalah 0 sampai 255 jika tidak di centang maka berarti 10 bit yang digunakan 0-1023 . volt ref: digunakan sebagai volt referensi nilai adc, bisa pilih AREF pin yang berarti nilai ADC akan dibandingkan dengan tegangan yang ada di pin AREF.
 setelah setting adc kita seting tampilan LCD dengan menggunakan lcd 16 x 2 seperti pada gambar berikut (LCD pada rangkaian menggunakan PORT C maka setting juga menggunakan PORT C):
 Setelah LCD kita setting input outputnya, karena led pada rangkaian sebagai output di rangkai pada port b maka pilih port b dan ganti IN dengan OUT
 fitur ADC pada AtMega 32 berada pada PORT A maka port ini harus diset sebagai Input (IN)
 setelah selesai maka generate save and exit
setelah itu kita program dibawah #include<mega32.h> dengan menambahkan library
#include <stdio.h>
#include <delay.h>

 setelah itu kita buat variabel sebagai berikut :
unsigned int a,b,c;
char adc[20];
char adc1[20];
char adc2[20];
 dan kita program di while seperti pada gambar berikut :




while (1)
      {
      // Place your code here
        lcd_clear();
       a= read_adc(0);
       b= read_adc(1);
       c= read_adc(2);
     
        if (a>b && a>c)
            {
            PORTB=0b00000001;
            }
        if (b>a && b >c)
            {
            PORTB=0b00000010;
            }
        if (c>a && c>b)
            {
            PORTB=0b00000100;
            }
        if (a==b)
            {
            PORTB=0b00000011;
            }
        if (b==c)
            {
            PORTB=0b00000110;
            }
        if (a==c)
            {
            PORTB=0b00000101;
            }
        if (a==c && c==b)
            {
            PORTB=0b00000111;
            }      
     
        lcd_gotoxy (0,0);
        lcd_putsf ("nilai adc :");
        lcd_gotoxy (0,1);
        sprintf(adc,"%d",a);
        lcd_puts (adc);
        lcd_gotoxy (6,1);
        sprintf(adc1,"%d",b);
        lcd_puts (adc1);
        lcd_gotoxy (11,1);
        sprintf(adc2,"%d",c) ;
        lcd_puts (adc2) ;
        delay_ms (50);
      };
}

setelah selesai maka Build all (cntl + f9)
masukan file .hex pada file hasil build tadi di simulasi proteus dengan klik dobel mikrokontrollernya dan jalankan simulasinya
untuk mengetahui nilai ADC cukup geser keatas dan kebawah potensionya (POT-LIN)
sekian tutorial ADC Input Output dan LCD, tutorial berikutnya lebih seru lho yaitu menggerakan motor dengan PWM


FOLLOW and JOIN to Get Update!

Social Media Widget SM Widgets




kelaselektronika Updated at: 04:24

1 comments: