Alhamdulillah di sela2 kesibukan bisa bantu tmn ngerjain tugas dari dosen.,kali ini tugasnya buat counter motor dengan sensor hall efek ua1301 outpunya adalah tegangan.,sedangkan hasil dari pegukuran nanti akan di tampilkan di layar televisi anda.,wkakaaaaa.,bacanya nyatai cuy...
maksudnya di lcd..nanti alat ini akan digunakan untuk menghitung putaran motor selama 1 menit..
untuk kontroller cukup menggunakan atmega8.,lcd dikontrol melalui PORTD.,sensor akan masuk melalui PORTC.0 atau ADC.0
terus adaa sepesial ruquest dari teman saya yaitu di program pake bahasa basic.,jangan pake C.,
(saya) : lho emg knp?
(teman) : iya request dosenne?
(saya) : ?????? (curiga mode on)
(saya) : ojo2 dosene ga iso peka bahasa C?? ( basaha jogja mode on)
(teman) : mikir sejenak sambil nyengir
(teman) : iya ndean (bahsa ngapak mode on)
kira2 seperti itulah kronologisnya...hahaaaaaa...
Ya sudahlah apa boleh baud.,maksudnya apa boleh buat..akhirnya saya kerjakan dengan senang hati...
nie codenya
$regfile = "m8def.dat"
$crystal = 8000000
Dim A As Byte , B As Long
Dim Count As Word
Config Lcdpin = Pin , Db4 = Portd.4 , Db5 = Portd.5 , Db6 = Portd.6 , Db7 = Portd.7 , E = Portd.2 , Rs = Portd.3
Config Lcd = 16 * 2
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Dim Nilai As Long
Dim Channel As Byte
Start Adc
Config Timer1 = Timer , Prescale = 8
Timer1 = 64536
On Timer1 Detik
Dim Waktu As Long
Dim Flag As Bit
Flag = 0
Waitms 30 Cursor Off
Cls
'Lcd " Visited me on: " 'display this at the top line
'Wait 2
'Cls
'Lowerline 'select the lower line
'Lcd "WWW.TunasNgapak.Blogspot.com" 'display this at the lower line
'Wait 1
'For A = 1 To 12
' Shiftlcd Left 'shift the text to the right
' Wait 1 'wait a moment
'Next
'Wait 1
'Cls
'Lcd " Motor Rotation " 'display this at the top line
'Wait 1
'Lowerline 'select the lower line
'Lcd " Pidar Febriaji " 'display this at the lower line
'Wait 1
'Cls
Locate 2 , 1
Lcd "count="
Enable Timer1
Enable Interrupts
Do
Channel = 0
B = Getadc(channel)
B = B * 4500
Nilai = B / 1024
Locate 1 , 5
Lcd Nilai
Locate 1 , 10
Lcd "mV/G"
If Flag = 1 Then
Disable Interrupts
Locate 2 , 1
Lcd "stop= "
End If
If Flag = 0 Then
If Nilai >= 2300 Or Nilai <= 2000 Then
Count = Count + 1
Locate 2 , 7
Lcd " "
Locate 2 , 7
Lcd Count
End If
End If
Loop
End
Detik:
Waktu = Waktu + 1
If Waktu >= 60000 Then
Flag = 1
End If
Timer1 = 64536
Return
pengitungan timer menggunakan rumus:
nilainya=(1/xtal)(65536-x)*prescaler
ket :
nilainya= us (milisekon)
xtal = clock external
prescaler = skala pembagi clock external
x = nilai yang di masukin ke dalam TCNT1
pada awal program di lakukan configurasi timer1:
Config Timer1 = Timer , Prescale = 8 Timer1 = 64536
jika ingin di jadikan counter., maka
Config Timer1 = count , Prescale = 8
mari kita itung bersama2 permintaan teman saya itu.,yaitu membuat counter selama 1 menit.,dengan xtal 8 Mhz.,skala clock 8
nilainya=(1/8Mhz)(65536-64536)*8 nilainya=(0,125)(1000)*8 nilainya=1000us
lho kok cm 1000us=1ms.,tenang ada program yang mengulang untuk mendapat nilai 1 minute..
padahal menghitung selama 1 menit artinya 1menit=60detik=60000ms
maka diguanakan variable waktu untuk mengulang selama 60000 kali
Waktu = Waktu + 1
If Waktu >= 60000 Then
Flag = 1
End If
Timer1 = 64536
ketemu dah 1000us=1ms x 60000------> 60000ms
(teman) : owh gitu ya..
(saya) : lho kok.,komemtar lagi
(teman) : owh ya lupa..heheeee..silahkan dilanjut nulisnya..
(saya) : oke...
knp kok dibuat 1ms.,ya karena kepengin aja.,hahaaaaaa......
Waktu = Waktu + 1
If Waktu >= 60000 Then
Flag = 1
End If
Timer1 = 64536
lalu gimana caranya untuk membuat interrupt timer tiap 2ms.,bisa saja dunk.,mari kita itung
2ms=2000us
rumusnya: nilainya=(1/xtal)(65536-x)*prescaler
jawaban:
nilainnya=(1/8Mhz)(65536-63536)*8
nilainya=2000us -----------------> 2000us=2ms
ketemu dah.,simple tow...
nah sekarang gmn caranya ngitung tegangan dari hall efeknya?.,caranya adalah di program ini
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Dim Nilai As Long
Dim Channel As Byte
Start Adc
dan ini
If Nilai >= 2300 Or Nilai <= 2000 Then
Count = Count + 1
Locate 2 , 7
Lcd " "
Locate 2 , 7
Lcd Count
End If
kira2 seperti itulah hasil dari praktek saya kemaren.,kalo ada yang salah mohon maap dan tolong dibenerin.,biar yang lain yang baca ga ikutan salah.,otre....
skemata dan gambar pcb silakan ambil dimari
kayane kenal ma 'temen' yang dimaksud... (",)
BalasHapushaaaahaaaa....ternyata 'temen' berkomentar lagi.,ya kyk kuelah cuy...
BalasHapus