Kali ini, kita akan membahas servo tipe Analog dengan putaran sudut 1800. Servo ini, memiliki tiga kabel penghubung yaitu:
1. Tegangan 5-6V
2. Ground
3. Signal Input
Untuk servo dengan merk hitec (servo yang digunakan penulis) memiliki warna merah, hitam, dan kuning yangmana warna merah adalah positif (+5v), warna hitam adalah ground (-), dan kuning adalah signal (output) dan biasanya kabel kuning ini dihubungkan ke PORT yang terdapat di mikrokontroler.
Pada kesempatan kali ini, penulis akan berbagi ilmu tentang cara memprogram servo banyak lebih dari satu yaitu 5 servo dengan sudut yang berbeda dengan menggunakan CVAVR,,,,,,,,,,,,,,,,,,,,,,Berikut ini programnya,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,:
/*****************************************************
This program was produced by the
CodeWizardAVR V1.25.3 Professional
Automatic Program Generator
© Copyright 1998-2007 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
Project :
Version :
Date : 3/24/2013
Author : HARDITYA PRATAMA PUTRA
Company : laskar putra
Comments: servo lengan,,,,,,,,,,,baru,,,,,,,,,,
Chip type : ATmega8535
Program type : Application
Clock frequency : 11.059200 MHz
Memory model : Small
External SRAM size : 0
Data Stack size : 128
*****************************************************/
#include <mega8535.h>
#include <delay.h>
#define siji PORTD.0
#define loro PORTD.1
#define telu PORTD.2
#define papat PORTD.3
#define limo PORTD.4
// Declare your global variables here
void servosatu(int x1,int x2,int x3,int x4,int x5)
{ int i;
//***********************servo 1********************************
for(i=0;i<=x1;i++)
{
siji=1;
delay_us(10);
}
siji=0;
//***********************servo 2*********************************
for(i=0;i<=x2;i++)
{
loro=1;
delay_us(10);
}
loro=0;
//************************servo 3********************************
for(i=0;i<=x3;i++)
{
telu=1;
delay_us(10);
}
telu=0;
//************************servo 4********************************
for(i=0;i<=x4;i++)
{
papat=1;
delay_us(10);
}
papat=0;
//************************servo 5********************************
for(i=0;i<=x5;i++)
{
limo=1;
delay_us(10);
}
limo=0;
delay_ms(20);
}
void gerak1()
{
servosatu(113,133,133,113,133); //gerakan 0,45,45,0
}
void main(void)
{
// Declare your local variables here
PORTD=0x00;
DDRD=0x1F;
while (1)
{
// Place your code here
gerak1(); //113=0,200=90,133=45,118=-15,94=-45,70=-90 untuk delay high 10us ,,,,,untuk 5 servo
};
}
ini adalah program robot lengan yang akan saya gunakan untuk penyusunan tugas akhir, silakan anda uji coba di software proteus ,,,,,,,,,,,,,,,,,,,,,,,,,,saya berharap ada saran atau masukan dari pembaca,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,terima kasih dan selamat berkarya,,,,,,,,,,,,,,,,,,,,
This program was produced by the
CodeWizardAVR V1.25.3 Professional
Automatic Program Generator
© Copyright 1998-2007 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com
Project :
Version :
Date : 3/24/2013
Author : HARDITYA PRATAMA PUTRA
Company : laskar putra
Comments: servo lengan,,,,,,,,,,,baru,,,,,,,,,,
Chip type : ATmega8535
Program type : Application
Clock frequency : 11.059200 MHz
Memory model : Small
External SRAM size : 0
Data Stack size : 128
*****************************************************/
#include <mega8535.h>
#include <delay.h>
#define siji PORTD.0
#define loro PORTD.1
#define telu PORTD.2
#define papat PORTD.3
#define limo PORTD.4
// Declare your global variables here
void servosatu(int x1,int x2,int x3,int x4,int x5)
{ int i;
//***********************servo 1********************************
for(i=0;i<=x1;i++)
{
siji=1;
delay_us(10);
}
siji=0;
//***********************servo 2*********************************
for(i=0;i<=x2;i++)
{
loro=1;
delay_us(10);
}
loro=0;
//************************servo 3********************************
for(i=0;i<=x3;i++)
{
telu=1;
delay_us(10);
}
telu=0;
//************************servo 4********************************
for(i=0;i<=x4;i++)
{
papat=1;
delay_us(10);
}
papat=0;
//************************servo 5********************************
for(i=0;i<=x5;i++)
{
limo=1;
delay_us(10);
}
limo=0;
delay_ms(20);
}
void gerak1()
{
servosatu(113,133,133,113,133); //gerakan 0,45,45,0
}
void main(void)
{
// Declare your local variables here
PORTD=0x00;
DDRD=0x1F;
while (1)
{
// Place your code here
gerak1(); //113=0,200=90,133=45,118=-15,94=-45,70=-90 untuk delay high 10us ,,,,,untuk 5 servo
};
}
ini adalah program robot lengan yang akan saya gunakan untuk penyusunan tugas akhir, silakan anda uji coba di software proteus ,,,,,,,,,,,,,,,,,,,,,,,,,,saya berharap ada saran atau masukan dari pembaca,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,terima kasih dan selamat berkarya,,,,,,,,,,,,,,,,,,,,
memprogram servo lebih dari satu dengan cvavr
BalasHapusmemprogram servo lebih dari satu dengan cvavr
BalasHapus