
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
[php]
#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;
}
}
}
}
[/php]
DEVRENİN VİDEOSU:
Programın hex dosyasını buradan ulaşabilirsiniz..
ibrahim
1 Ağustos 2015 at 20:04
Merhabalar. hex dosyasını programlayıcıdan yüklediğim zaman bu hatayı alıyorum. Yardımcı olabilir misiniz acaba ?
http://i.hizliresim.com/kggzzv.jpg
Bilal Kaya
1 Ağustos 2015 at 22:27
İbrahim 16f877a yı düzgün takdığına emin misin?
ibrahim
2 Ağustos 2015 at 07:09
malesef herşeyi doğru yaptıgıma eminim
ibrahim
2 Ağustos 2015 at 08:00
normalde 16f84a ile çalısıyorum…winsows 10 a geçtim acaba bundan mı diyorum ama bundna olcagını sanmıyorum. 16f84a yı programladığımda başarıyla programlıyor ama devreyi kurdugumda calısmıyor. 16f84a yı okutuyorum doğru yazılmıs. bende gittim heralde yandı diyerek yeni bir pic aldım
16f877a yı okutabiliyorum içinde hiçbişey yok gözüküyor. fakat yazmaya calıstıgımda yukarıdaki hatayı alıyorum.
Bilal Kaya
2 Ağustos 2015 at 08:46
Kullanılan Pic programlama kartı Windows 10 desteklemiyor olabilir.Bir de 16F877A yi değiştirip deneyin isterseniz.Belki denetleyici bozuktur.
ibrahim
2 Ağustos 2015 at 14:59
k150 pic programlıcısı kullanıyorum…yeni bir tane alıcam sanırım…sizin kullandığınız bana önerebilceğiniz bir programlayı söyleyebilir misiniz
Bilal Kaya
3 Ağustos 2015 at 11:02
https://www.altaskitap.com/PIC-Programlayicilar,LA_172-2.html#labels=172-2
Buradan detayları ile bakabilirsiniz
İbrahim
9 Eylül 2015 at 20:31
merhabalar…sg90 servo motor ile bu projeyi gerçekleştirdim..fakat küçük bir cızırtı sesi alıyorum içeride dişli de dönmüyr..servo motor bozuk olabilir mi
İbrahim
9 Eylül 2015 at 20:43
şimdide dönüyor fakat sürekli saat yönü vebutona ne kadar basarsam o kadar dönüyor…tüm butonlarda böyle..sizin verdiğiniz hex dosyasını yükledim
İbrahim
9 Eylül 2015 at 21:34
Arduino ile de deneme yaptım ve yine kararsız çalıstı sanırım servo motor bozuk
Ömer Egil
31 Ağustos 2016 at 21:28
ibrahim sana olanların aynısı banada oldu ilk başta cızırtı oldu doğru dürüst dönmüyordu sonra sadece saat yönünde dönmeye başladı. ardından 11inci bacağı(vdd isimli bacak) +ya, 12. bacağı(vss isimli bacak) -ye bağladım 32. bacağı(vdd isimli bacak) yine + ya ve 31. bacağı(vss isimli bacak) yine -ye bağladım ve düzeldi.
Burak Ablay
10 Eylül 2015 at 09:23
Evet ya servonda sıkıntı var yada pic te olabilir.Çünkü pic de kolay bozulabilir bir cihazdır her zaman doğruluğunu kontrol etmek için farklı picte denemeni öneririm.Sen pic yerine arduino denemişsin zaten ordada sorun oluşuyorsa servo motorun bozuktur.İyi çalışmalar dilerim..
abdussamet
13 Aralık 2015 at 14:49
bu kodu derlediğimde delay.h hatası alıyorum yardımcı olursanız sevinirim
Burak Ablay
13 Aralık 2015 at 16:10
delay.h eklentisi indirmeniz gerekmektedir. c kodu için gerekli bir eklentidir. İndirdikten sonra çalışma dosyanızı kaydettiğiniz yere bu dosyayı atmanız gerekmektedir. Bu sorunu bu şekilde çözebilirsiniz.
Berk Kaya
16 Haziran 2017 at 19:59
Merhaba cikis pinlerine bagli 6 adet direnc ve 3 butonun nedeni nedir ? Bunlari bilmem cok onemli, nedenini belirtirseniz sevinirim. O pinlerde neden anahtarlama yapmaya ihtiyac duyulsun ki ?
Burak Ablay
19 Haziran 2017 at 20:02
Merhaba Berk bey,3 adet anahtar servo motorun 0-90-180 derece acı yapması için konulmuştur. Dirençlere gelecek olursak nötr ile pic ucu arasına atılan 10k hem butona basılmaması halinde pic ucunda 0 v gözükmesini hemde butona basılması halinde +5v un kısa devre olmamasını sağlamaktadır. Yani pic üzerinde herhangi bir buton kullanılması durumunda buna benzer bir devre kurmanız gerekmektedir aksi taktirde istediğiniz sonucu elde edemezsiniz.. İyi çalışmalar dilerim.