Ketemu lagi dengan Servo..!! 😀
Namun kali ini aplikasi penggunaan servo nya lebih sederhana dari post yang sebelumnya..
Kali ini servo yang dikontrol cuma 1 buah dan tanpa menggunakan Servo Controller ..
Untuk menggerakkan servo CW (Clock Wise) dan CCW (Counter Clock Wise) menggunakan dua buah push button (Tombol UP dan DOWN) kemudian tombol ketiga (SWEEP) digunakan untuk menggerakkan servo secara terus menerus dari posisi minimum ke maksimum dan seterusnya..

Langsung saja, berikut hasilnya :

Normal Mode

Sweep Mode

Keterangan :
– Tombol UP              =   PORTB.0
– Tombol DOWN        =  PORTB.1
– Tombol SWEEP        =  PORTB.2
– RC Servo                 =  PORTD.7
Listing Programnya :

'Oleh : Pramudita J.I.  (joe4cva)
'Elektronika Dan Instrumentasi
'Universitas Gadjah Mada

$regfile = "m32def.dat"
$crystal = 16000000

Config Portb.7 = Output
Config Servos = 1 , Servo1 = Portd.7 , Reload = 20

Config Lcdpin = Pin , Db4 = Portc.5 , Db5 = Portc.4 , Db6 = Portc.3 , Db7 = Portc.2 , E = Portc.6 , Rs = Portc.7
Config Lcdbus = 4
Config Lcd = 16 * 2
Cursor Off

Config Portd.7 = Output
Config Pinb.0 = Input
Config Pinb.1 = Input
Config Pinb.2 = Input
Set Portb.0
Set Portb.1
Set Portb.2
Tombol1 Alias Pinb.0
Tombol2 Alias Pinb.1
Tombol3 Alias Pinb.2

Dim Nilai As Byte , I As Byte
Nilai = 0
Enable Interrupts

Cls
Utama:
Do
Locate 1 , 1
Lcd "  Servo Tester"
Locate 2 , 1
Lcd "Nilai = " ; Nilai ; "  "

If Tombol2 = 0 Then
Incr Nilai
Waitms 20
End If

If Tombol1 = 0 Then
Decr Nilai
Waitms 20
End If

Servo(1) = Nilai

If Tombol3 = 0 Then
Bitwait Tombol3 , Set
Goto Sweep
End If
Loop

Sweep:
Locate 2 , 1
Lcd "Sweep Mode"
Do
For Nilai = 105 To 33 Step -1
  Servo(1) = Nilai
  Waitms 10
If Tombol3 = 0 Then
Bitwait Tombol3 , Set
Goto Utama
End If
Next

For Nilai = 33 To 105 Step 1
  Servo(1) = Nilai
  Waitms 10
If Tombol3 = 0 Then
Bitwait Tombol3 , Set
Goto Utama
End If
Next

Loop

Jika ingin mempercepat gerakan servonya, maka nilai dari “Reload” pada “Config Servos” atau jumlah “Step”  pada “For” dinaikkan / ditambah..
Oiya jika Servo yang digerakkan merk “HiTec”, maka port yang digunakan untuk output ke servo WAJIB DI CONFIG SEBAGAI OUTPUT (Pada program saya servo saya pasang di PORTD.7).. Soalnya kalo ga di config output servonya ga akan gerak..
Kapi kalo make Servo “Tower Pro” dan “Parallax”, portnya ga di config gpp..
Untuk merk servo yg lain saya kurang tau perlu di config output dulu apa ga.. Belum pernah nyoba soalnya..

Semoga Bermanfaat.. 😀