16F877A İle Servo Motor Kontrolü

reis

SERVO MOTOR

Robotik uygulamalarının temelini oluşturan servo motor R/C tip servo motordur.

R/C Servo motorların 3 kablosu bulunur. Genellikle kırmızı kablo +, siyah yada kahve kablo -, sarı yada turuncu kablo ise mikrodenetleyiciye bağlanacak kontrol (PWM) ucudur.

Servo motorlar genel itibari ile içerlerinde bir DC motor ve şaft konum bilgisi devresi barındırırlar. Bu devre şaftın kaç derece döndüğünün algılanmasında kullanılır . Servo motorlar 20ms periyotlu, 1ms’den 2ms’e kadar değişen duty cycle’lı PWM sinyali ile sürülürler. Verilen duty cycle periyotlarına göre servo motorun 0-180 derece aralığı arasında alacakları değerler yanda gösterilmiştir.

Burada sinyal verilirken örneğin 1,5ms ile 1ms arası 90’a bölünerek istenilen açıya gidilebilir.

Model uçak, araba ve robotik uygulamalarda yaygın olarak kullanılır.

ser1

DEVRENİN ŞEMASI

ser2

DEVRENİN HI-TECH C KODU

#include "htc.h"
#include "delay.h"
__CONFIG(0x3FF1);
void main()
{
TRISB =0x00; // PORTB cikis
TRISD=0xFF;
while(1)
{
if(RD5)//0 Derece Dön
{
for(;;){
RB0 = 1;
DelayUs(250);DelayUs(250);DelayUs(250);DelayUs(250);
RB0 = 0;
DelayMs(19);
if(RD6 | RD7) break;
} }
if(RD6)
{
for(;;)
{
RB0=1;
// 1,5ms Gecikme
DelayUs(250);DelayUs(250);DelayUs(250);DelayUs(250);
DelayUs(250);DelayUs(250);
RB0=0;
// 18,5ms Gecikme
DelayMs(18);
DelayUs(250);DelayUs(250);
if(RD5 | RD7)
break;
}}
if(RD7)
{
for(;;)
{
RB0=1;
// 2ms Gecikme
DelayMs(2);
RB0=0;
// 18ms gecikme
DelayMs(18);
if(RD5 | RD6)
break;
}
}
}
}

servo.hex dosyası

:100000002030840027300820A12F04068001840AB4

:0A0010000406031D052864000034F7

:100F28008301A4000430A5005330A600A60B9A2F15

:100F3800A50B982FA40B962F080083160313860180

:100F4800FF30880083120313881EC42F83120313F3

:100F580006145330A200A20BAF2F5330A300A30BEB

:100F6800B32F5330A000A00BB72F5330A100A10B13

:100F7800BB2F061013309427881F081BC42FAA2FD5

:100F8800081FF02F8312031306145330A100A10B7E

:100F9800CB2F5330A000A00BCF2F5330A300A30BAF

:100FA800D32F5330A200A20BD72F5330A100A10B8F

:100FB800DB2F5330A000A00BDF2F06101230942730

:100FC8005330A100A10BE62F5330A000A00BEA2F4D

:100FD800881F881AF02FC62F83120313881FA62F85

:100FE8008312031306140230942706101230942734

:080FF800081F881AA62FF42F30

:02400E00F13F80

:00000001FF
Rate this post