16F877A İle Servo Motor Kontrolü
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.
DEVRENİN ŞEMASI
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