Tuesday, June 9, 2015

CONTOH PROGRAM UNTUK MOTOR SERVO



void gerak-90derajat()
{
PORTD.0=1;//memberikan pulsa high
delay_ms(1);//pulsa high diberikan selama 1 ms
PORTD.0=0;
delay_ms(20)
}

void gerak90derajat()
{
PORTD.0=1;//memberikan pulsa high
delay_ms(2);//pulsa high diberikan selama 2 ms
PORTD.0=0;
delay_ms(20)
}

void gerak0derajat()
{
PORTD.0=1;//memberikan pulsa high
delay_ms(1.5);//pulsa high diberikan selama 1,5 ms
PORTD.0=0;
delay_ms(20)
}

Sedangkan untuk motor servo continuous tidak jauh berbeda seperti motor servo standard.

void putarsearahjarumjam()
{
PORTD.0=1;//memberikan pulsa high
delay_ms(1.3);//pulsa high diberikan selama 1,3 ms
PORTD.0=0;
delay_ms(20)
}

void putarlawanjarumjam()
{
PORTD.0=1;//memberikan pulsa high
delay_ms(1.7);//pulsa high diberikan selama 1,7 ms
PORTD.0=0;
delay_ms(20)
}

void stop()
{
PORTD.0=1;//memberikan pulsa high
delay_ms(1.5);//pulsa high diberikan selama 1,5 ms
PORTD.0=0;
delay_ms(20)
}
Jika direalisasikan pada program menjadi seperti dibawah ini, disini saya akan mencontohkan motor servo standar bergerak 90°.

#include <mega16.h>
#include <delay.h>

void main(void)
{
PORTD=0×00;
DDRD=0×01;//portd.0 sebagai output

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0×80;
SFIOR=0×00;

while (1)
      {
        PORTD.0=1;//memberikan pulsa high
        delay_ms(2);//pulsa high diberikan selama 2 ms
        PORTD.0=0;
        delay_ms(20)
      };
}

Semoga bermanfaat...

No comments:

Post a Comment

MAGANG DI DAIHATSU KYUSHU JEPANG

Ohayou gozaimasu… Konnichiwa… Konbanwa… bagi minnasan semuanya, gak kerasa ya udah lama banget gak posting dimari. Ini blog udah k...