Servo Signal Generator

Share rangkaian DIY dan buatan Anda disini

Moderators: christoffel, scratcher

User avatar
coyo
Chief Master Sergeant
Chief Master Sergeant
Posts: 808
Joined: 17 Jan 2007, 17:00
Location: Kota Jababeka, Cikarang
Contact:

Servo Signal Generator

Post by coyo »

Saya bikin proyek ini karena ada permintaan dr seorang sahabat.
Sekalian di-sharing aja buat belajar sama2, sapa tau ada Suhu yg bersedia ngasih masukan.

Sebetulnya ini sama aja dengan servo tester, cuma yg ini ada 3 channel.
Kenapa cuma 3 channel? soalnya beliau mintanya cuma 3 channel, sebetulnya dibuat lebih juga bisa hehehe...

Penampakannya seperti ini:
Image
sangat sederhana bukan? Total ada 3 trimpot, masing2 1 trimpot untuk mengontrol 1 servo
User avatar
iwan21
Administrator
Administrator
Posts: 9640
Joined: 17 Jan 2007, 14:11
Location: Bekasi
Contact:

Re: Servo Signal Generator

Post by iwan21 »

Saya enggak punya masukan, cuman nunggu hibahan aja kalo udah jadi :ktk
User avatar
coyo
Chief Master Sergeant
Chief Master Sergeant
Posts: 808
Joined: 17 Jan 2007, 17:00
Location: Kota Jababeka, Cikarang
Contact:

Re: Servo Signal Generator

Post by coyo »

Ini skematik & simulasinya:
Image

Terlihat di oscilloscope, sinyal yg masuk ke servo. Yg paling atas untuk SERVO1, berikutnya untuk SERVO2 & SERVO3
Sesuai dengan posisi trimpot: VR1 => minimal; VR2 => tengah; VR3 => maksimal

Kekurangannya: signal servo3 menunggu signal servo2, signal servo2 menunggu signal servo1, seperti terlihat di layar oscilloscope
User avatar
coyo
Chief Master Sergeant
Chief Master Sergeant
Posts: 808
Joined: 17 Jan 2007, 17:00
Location: Kota Jababeka, Cikarang
Contact:

Re: Servo Signal Generator

Post by coyo »

Ini source code-nya:

Code: Select all

$regfile = "m48def.dat"                 'MCU yg dipakai ATMEGA48
$crystal = 8000000                      'Frekuensi 8MHz (internal clock, tanpa kristal)
$hwstack = 32                           'default use 32 for the hardware stack
$swstack = 10                           'default use 10 for the SW stack
$framesize = 40                         'default use 40 for the frame space

Config Pind.5 = Output                  ' PD5 (Pin 11) sebagai output
Config Pind.6 = Output                  ' PD6 (Pin 12) sebagai output
Config Pind.7 = Output                  ' PD7 (Pin 13) sebagai output

' Untuk clock 4MHz satuan dalam 1uS (microdetik),
' jadi untuk 8 MHz harus dikalian 2
Const Servomax = 4000                   ' = 2000uS * 2
Const Servocen = 3000                   ' = 1500uS * 2
Const Servomin = 2000                   ' = 1000uS * 2

' Nilainya dari GETADC berkisar antara 0~1023
' Sedangkan pulsa yg akan dihasilkan berkisar 2000~4000
' Pengali = (servo max-servomin)/1024) = 1.95 dibulatkan jadi 2
' Penambah = Servocen - 1024
Const Pengali = 2
Const Penambah = 1976

' Definisikan variable yg dipakai
Dim A As Word
Dim B As Word
Dim C As Word

' Konfigurasi ADC (Analog to Digital Converter)
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc

Do
  A = Getadc(0)                         ' baca nilai Trimpot 1
  B = Getadc(1)                         ' baca nilai Trimpot 2
  C = Getadc(2)                         ' baca nilai Trimpot 3

  A = A * Pengali
  A = A + Penambah
  B = B * Pengali
  B = B + Penambah
  C = C * Pengali
  C = C + Penambah
  Pulseout Portd , 5 , A                ' kirim sinyal ke Servo 1
  Pulseout Portd , 6 , B                ' kirim sinyal ke Servo 2
  Pulseout Portd , 7 , C                ' kirim sinyal ke Servo 3
  Waitms 13                             ' tunggu selama 13 milidetik
 Loop                                   ' ulangi terus sampai bosen
End
User avatar
coyo
Chief Master Sergeant
Chief Master Sergeant
Posts: 808
Joined: 17 Jan 2007, 17:00
Location: Kota Jababeka, Cikarang
Contact:

Re: Servo Signal Generator

Post by coyo »

iwan21 wrote:Saya enggak punya masukan, cuman nunggu hibahan aja kalo udah jadi :ktk

udah jadi 1 Suhu, tp dah diambil yg pesen hehehe.......
User avatar
coyo
Chief Master Sergeant
Chief Master Sergeant
Posts: 808
Joined: 17 Jan 2007, 17:00
Location: Kota Jababeka, Cikarang
Contact:

Re: Servo Signal Generator

Post by coyo »

Lanjutt.......
Masalah tadi gara2 pake perintah PULSEOUT

Setelah baca2 lagi, ternyata BASCOM menyediakan perintah SERVO, hasilnya jd seperti ini:
Image
sekarang udah ga ada acara tunggu-menunggu sinyal lagi
\:D/
Last edited by coyo on 22 Aug 2013, 08:47, edited 1 time in total.
User avatar
coyo
Chief Master Sergeant
Chief Master Sergeant
Posts: 808
Joined: 17 Jan 2007, 17:00
Location: Kota Jababeka, Cikarang
Contact:

Re: Servo Signal Generator

Post by coyo »

ini source code-nya:

Code: Select all

$regfile = "m48def.dat"                 ' MCU yg dipakai ATMEGA48
$crystal = 8000000                      ' Frekuensi 8MHz (internal clock, tanpa kristal)
$hwstack = 32                           ' default use 32 for the hardware stack
$swstack = 10                           ' default use 10 for the SW stack
$framesize = 40                         ' default use 40 for the frame space

Config Pind.5 = Output                  ' PD5 (Pin 11) sebagai output
Config Pind.6 = Output                  ' PD6 (Pin 12) sebagai output
Config Pind.7 = Output                  ' PD7 (Pin 13) sebagai output

Config Servos = 3 , Servo1 = Portd.5 , Servo2 = Portd.6 , Servo3 = Portd.7 , Reload = 10

Const Servomin = 59                     ' = 1000uS
Const Servocen = 88                     ' = 1500uS
Const Servomax = 117                    ' = 2000uS
Const Jangkah = Servomax - Servomin

' Definisikan variable yg dipakai
Dim A(3) As Word
Dim I As Byte
Dim J As Byte
Dim Pengali As Single
Dim Hitung As Single

Pengali = Jangkah / 1024

' Konfigurasi ADC (Analog to Digital Converter)
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc

Enable Interrupts                       ' perintah servo memerlukan Interrupts
Do
  For I = 1 To 3 Step 1
      J = I - 1                         ' I = 1~3 (untuk no.servo), J = 0~2(untuk getADC)
      A(i) = Getadc(j)                  ' baca nilai Trimpot
      Hitung = A(i) * Pengali
      A(i) = Hitung + Servomin
      Servo(i) = A(i)                   ' kirim sinyal ke Servo
  Next
  Waitms 100                            ' tunggu selama 100 milidetik
 Loop                                   ' ulangi terus sampai bosen
End
User avatar
NF
Administrator
Administrator
Posts: 4065
Joined: 18 Jan 2007, 14:10
Location: semarang, jateng
Contact:

Re: Servo Signal Generator

Post by NF »

............ada suhu....................................
..............kapan dibuat massal ? :gg
User avatar
coyo
Chief Master Sergeant
Chief Master Sergeant
Posts: 808
Joined: 17 Jan 2007, 17:00
Location: Kota Jababeka, Cikarang
Contact:

Re: Servo Signal Generator

Post by coyo »

tergantung yg order, klo emang banyak yg butuh tinggal dibuat massal hehehe......
User avatar
NF
Administrator
Administrator
Posts: 4065
Joined: 18 Jan 2007, 14:10
Location: semarang, jateng
Contact:

Re: Servo Signal Generator

Post by NF »

.............nah....., setelah ntar suhu roji dan suhu darwin dapet , saya mau produk ini :cta
Post Reply