Pada kesempatan kali ini saya akan menjelaskan mengenai bagaimana cara membuat sebuah alat yang berfungsi untuk kendali motor dc dengan menggunakan relay dan mikrokontroller. alat ini sebagaimana namanya yaitu menggerakkan palang pintu saat ada kendaraan mau masuk atau keluar. alat ini dilengkapi dengan 2 buah sensor metal detektor untuk stop atas dan bawah. selain itu kendali buka tutup menggunakan tombol pada komputer server / kasir dan juga metal detektor yang diletakkan dibawah aspal guna deteksi kendaraan. untuk lebih jelasnya berikut adalah skema dan programnya.
a. Skema Kontroller
b. Sensor Metal Detektor
c. Program Bascom AVR
$regfile = "m16def.dat"
$crystal = 11059200
Config Lcdpin = Pin , Rs = Portc.7 , E = Portc.6 , Db4 = Portc.5
Config Lcdpin = Pin , Db5 = Portc.4 , Db6 = Portc.3 , Db7 = Portc.2
Config Lcd = 16 * 2
Config Adc = Single , Prescaler = Auto , Reference = Avcc
'Dim Adc0 As Word
'Dim Adc1 As Word
Dim X As Integer
Dim Y As Integer
Ddrb.0 = 1
Ddrb.1 = 1
Ddrd.5 = 0
Ddrd.6 = 0
Set Portd.5
Set Portd.6
Portb.0 = 1
Portb.1 = 1
Cls
Cursor Off
Start Adc
Main:
Do
X = Getadc(0)
Y = Getadc(1)
Upperline
Lcd X
Lowerline
Lcd Y
Waitms 200
'buka
If Pind.5 = 0 Then
Waitms 200
Goto Buka
End If
'tutup
If Pind.6 = 0 Then
Waitms 200
Do
Waitms 200
Portb.0 = 1
Portb.1 = 1
Loop Until Pind.6 = 1
Goto Tutup
End If
Loop
Buka:
Do
'Buka
Y = Getadc(1)
'Buka
Portb.0 = 1
Portb.1 = 0
Loop Until Y < 10
'Stop
Portb.0 = 1
Portb.1 = 1
Waitms 200
Goto Main
Return
Tutup:
Do
'tutup
X = Getadc(0)
'tutup
Portb.0 = 0
Portb.1 = 1
If Pind.5 = 0 Then
Waitms 200
Portb.0 = 1
Portb.1 = 1
Wait 1
Do
'Buka
Y = Getadc(1)
'Buka
Portb.0 = 1
Portb.1 = 0
Loop Until Y < 10
Portb.0 = 1
Portb.1 = 1
Waitms 200
Goto Main
End If
Loop Until X < 10
'stop
Portb.0 = 1
Portb.1 = 1
Waitms 200
Goto Main
Return
$crystal = 11059200
Config Lcdpin = Pin , Rs = Portc.7 , E = Portc.6 , Db4 = Portc.5
Config Lcdpin = Pin , Db5 = Portc.4 , Db6 = Portc.3 , Db7 = Portc.2
Config Lcd = 16 * 2
Config Adc = Single , Prescaler = Auto , Reference = Avcc
'Dim Adc0 As Word
'Dim Adc1 As Word
Dim X As Integer
Dim Y As Integer
Ddrb.0 = 1
Ddrb.1 = 1
Ddrd.5 = 0
Ddrd.6 = 0
Set Portd.5
Set Portd.6
Portb.0 = 1
Portb.1 = 1
Cls
Cursor Off
Start Adc
Main:
Do
X = Getadc(0)
Y = Getadc(1)
Upperline
Lcd X
Lowerline
Lcd Y
Waitms 200
'buka
If Pind.5 = 0 Then
Waitms 200
Goto Buka
End If
'tutup
If Pind.6 = 0 Then
Waitms 200
Do
Waitms 200
Portb.0 = 1
Portb.1 = 1
Loop Until Pind.6 = 1
Goto Tutup
End If
Loop
Buka:
Do
'Buka
Y = Getadc(1)
'Buka
Portb.0 = 1
Portb.1 = 0
Loop Until Y < 10
'Stop
Portb.0 = 1
Portb.1 = 1
Waitms 200
Goto Main
Return
Tutup:
Do
'tutup
X = Getadc(0)
'tutup
Portb.0 = 0
Portb.1 = 1
If Pind.5 = 0 Then
Waitms 200
Portb.0 = 1
Portb.1 = 1
Wait 1
Do
'Buka
Y = Getadc(1)
'Buka
Portb.0 = 1
Portb.1 = 0
Loop Until Y < 10
Portb.0 = 1
Portb.1 = 1
Waitms 200
Goto Main
End If
Loop Until X < 10
'stop
Portb.0 = 1
Portb.1 = 1
Waitms 200
Goto Main
Return
d. Gambar Alatnya
No comments:
Post a Comment