Kumpulan Program Sederhana dalam Bahasa C untuk ATMega8535 (4) – Antarmuka

Kumpulan Program Sederhana dalam Bahasa C untuk ATMega8535 (4) – Antarmuka

1. Antarmuka dengan Sensor Obyek Infrared

Daftar Bahan

Deskripsi

Aplikasi ini berfungsi untuk mendeteksi obyek di depan sensor jarak infrared DSF-01.  Output DSF-01 akan berlogika 0 apabila ada obyek pada jarak 0-9 cm di depannya dan berlogika 1 apabila tidak ada obyek di jarak tersebut. Karena output dari sensor ini terhubung pada Port C0, maka saat port tersebut berlogika 0 maka PINC0 juga akan berlogika 0 dan diteruskan ke PB0 yang terhubung ke bit 0 dari 8 bit LED LD-51.  LED LD-51 yang bersifat aktif low akan menyala pada saat bit tersebut berlogika 0

Pada saat PINC0 berlogika 1, maka PB0 juga logika 1 dan LED LD-51 padam

Listing Program

int main (void){
DDRC=00; //PORT C sebagai input sensor (PC0)
DDRB=0xFF; //PORT B sebagai output LED
PORTB=0xFF; //LED OFF semua
while(1){
while((PINC&(1<<PINC0))) //jika PINC masih 0 maka PB0=0 LED nyala
PORTB&=~(1<<PORTB0); //
PORTB|=(1<<PORTB0); //jika PINC sudah tidak 0 maka LED off
}
}
Listing Program ini dapat didownload di sini
2. Antarmuka dengan Sensor Jarak Infrared
Pada aplikasi ini akan dilakukan pengukuran jarak dengan menggunakan sensor infrared GP2Y0A21 yang memiliki output tegangan analog. Untuk memperoleh nilai tegangan analog ini maka output dari sensor dihubungkan pada analog input dari ATMega8535 dan dikonversi menjadi jarak menggunakan formula sebagai berikut
jarak=(210-ADCH-50)/5
Hasil dari konversi dikirim ke layar terminal menggunakan USB to Serial DU-232 dengan instruksi
USART_Transmit(jarak)
Listing Program
int main (void){
DDRB=0xFF;
DDRA=0x00;
DDRD=0xFF;
ADMUX=0x60;
ADCSRA=0x04;
ADCSRA|=(1<<ADEN);
USART_INIT(MYUBRR);
while(1){
ADCSRA|=(1<<ADSC);
while(!(ADCSRA&(1<<ADIF)));
_delay_ms(1000);
int jarak;
jarak=(210-ADCH-50)/5;
USART_Transmit(jarak);
}
}

Listing Program ini dapat didownload di sini

3. Sensor Jarak Ultrasonic

Daftar Bahan

Deskripsi

Pada aplikasi ini menggunakan sensor jarak ultrasonic yang mendeteksi jarak dengan menggunakan signal ultrasonic yang dipancarkan menuju ke obyek dan dipantulkan lagi ke receiver. Interval dari pancaran dan penerimaan signal tersebut akan menjadi perhitungan jarak dan ditampilkan dalam signal echo.

Trigger dilakukan dengan membangkitkan signal pulsa high dengan durasi 10mS dan selanjutnya saat Echo diterima pada PortD3 maka proses counting mulai dilakukan dan stop pada saat Echo kembali berlogika 0. Hasil dari proses counting akan disimpan pada Register TCNT1. Agar diperoleh perhitungan jarak maka digunakan formula berikut:

jarak=(waktu*34000*5)/100000000/2

Di sini digunakan kecepatan suara yaitu 340 meter / detik sebagai acuan perhitungan. Dan dibagi 2 karena proses perhitungan dilakukan pada signal yang lewat secara pulang pergi. Counter akan distop saat logika Echo kembali 0 dan hasil jarak yang telah dikonversi akan dikirim ke layar terminal dengan menggunakan USB to Seriall DU-232. Hasil tersebut akan dikirimkan ke layar terminal setiap detik.

Apabila interval perhitungan interval melebihi 0x30 maka bit 1 dari 8 bit LED Logic output LD-51 akan berlogika 0 dan LED1 akan aktif. Namun bila perhitungan interval masih dibawah 0x30 maka bit 1 akan berlogika 1 dan LED padam.

Listing Program

int main (void){

USART_INIT(MYUBRR);

DDRB=0b11111111;

DDRD=0b11110110;//PORTD4 sebagai trigger dan PortD3 sebagai echo

PORTB=0b00000001;

TCCR1A=0b00000000;//Timer 1 16 bit sebagai penghitung nilai echo

TCCR1B=0b00000000;//Timer masih OFF

PORTB=0xFF;//LED OFF semua

while(1){

PORTD|=(1<<PORTD4);//Trigger pada PD4 sebesar 10mS

_delay_ms(10);//

PORTD&=~(1<<PORTD4);//

unsigned char counter;

counter=0;

while (!(PIND&(1<<PIND3))); //saat menerima Echo di PD3

while((PIND&(1<<PIND3)))//start timer 1 dengan prescaler 1x

TCCR1B=0b00000001;//selama Echo masih logika 1

TCCR1B=0b00000000;//stop timer 1

int jarak;

int waktu;

waktu=TCNT1;

jarak=(waktu*34000*5)/100000000/2;

USART_Transmit(jarak);//kirim nilai timer

if (waktu<0x30)

PORTB&=~(1<<PORTB1);

else PORTB|=(1<<PORTB1);//

TCNT1=0;

_delay_ms(1000);

}

}

Listing Program ini dapat didownload di sini
DELTA ELECTRONIC
Paulus Andi Nalwan, ST
Translate »