PROGRAM DIFD PADA MIKROKONTROLER MENGGUNAKAN BAHASA C (Aktif ketika sudah tidak mendeteksi)
PROGRAM DIFD (DARI PLC) PADA MIKROKONTROLER MENGGUNAKAN BAHASA C
Ok kawan semua, kali ini saya akan membahas tentang bagaimana membuat program DIFD yang biasanya dipakai pada pemrograman PLC pada pemrograman mikrokontroler dengan menggunakan bahasa C dan pada kesempatan ini saya menggunakan software CVAvr.
Kita tahu instruksi DIFD salahsatunya digunakan untuk aplikasi palang pintu parkir. Sistem kerjanya yaitu pada saat mobil masuk dan terdeteksi oleh sensor, palang pintunya belum menutup. Ketika mobil sudah lewat dan sudah tidak terdeteksi sensor lagi barulah palang pintu tertutup. Itu juga berlaku untuk aplikasi yang menggunakan sistem kerja yang sama. Gambaran sistemnya seperti ini :
Digambar itu mobil harus sudah lewat ketika palang pintu tertutup. Artinya setelah sensor tidak mendeteksi keberadaan mobil. Pada kondisi ini kita bisa menggunakan instruksi DIFD jika kita menggunakan PLC. Bagaimana jika menggunakan Mikrokkontroler dengan bahasa C.
Mari kita bahas...
Kita bisa gambarkan ke rangkaian elektronika sebagai berikut :
Maaf disitu saya pakai Limit Switch semua......
Gambar diatas LS TUTUP dalam posisi tertutup karena memang kondisi awal portal tertutup.
Langsung saja berikut programnya :
#include <mega8535.h>int X,Y;void main(void){DDRA=0xFF;PORTA=0x00;DDRB=0x00;PORTB=0xFF;X=0;Y=0;while (1){// Place your code hereif (PINB.0==0){ Y=Y+1; };if (Y>0){ PORTA=0x00000001; };if (PINB.2==0 && X==0){ PORTA=0x00000000; Y=0; };if (PINB.3==0){ X=X+5; X=X+5; };if (PINB.3==1 && X>0){ PORTA=0x00000010; };if (PINB.1==0&& X>0){ PORTA=0x00000000; X=0; };}}
Begini penjelasannya .....
Kita deklarasikan penggunaan jenis mikronya dengan instruksi "#include <mega8535.h>" serta kita menggunakan dua variabel yaitu dengan instruksi "int X,Y;"
Selanjutnya kita setting port A dan Port B dengan instruksi
DDRA=0xFF;Kemudian kita set awal nilai variabel dengan angka nol dengan instruksi
PORTA=0x00;DDRB=0x00;PORTB=0xFF;
Setelah persiapan selesai kita masuk program utama.X=0;Y=0;
if (PINB.0==0){ Y=Y+1; };if (Y>0){ PORTA=0x00000001; };if (PINB.2==0 && X==0){ PORTA=0x00000000; Y=0; };if (PINB.3==0){ X=X+5; X=X+5; };if (PINB.3==1 && X>0){ PORTA=0x00000010; };if (PINB.1==0&& X>0){ PORTA=0x00000000; X=0; };
- Jika tombol input buka ditekan maka portal membuka
- Jika telah membuka penuh portal berhenti (biar motor tidak terbakar)
- Mobil masuk dan terdeteksi sensor ...... tidak dilakukan apa-apa (hanya menambah nilai variavel X)
- Setelah tidak terdeteksi sensor dan kondisi nilai X>0 maka portal menutup
- Setelah portal menutup penur maka portal berhenti (biar motor tidak terbakar juga :)) serta mereset variabel X
Catatan : Variabel Y tambahan saja apabila menggunakan inputan dari luar seperti PC atau Mikro yang lain.
Sekian dan silahkan dicoba ......
Sampai jumpa dan terima kasih.
Program_Lengkap
0 Response to "PROGRAM DIFD PADA MIKROKONTROLER MENGGUNAKAN BAHASA C (Aktif ketika sudah tidak mendeteksi)"
Post a Comment