#06 Arduino ile Servo Motor Kontrol

Merhaba Arkadaşlar...
Servo motor, kendilerine gelen sinyalin pulse uzunluğuna göre konum olan motorlardır. Genellikle güç saglayan motorlar belirli bir hızda dönmeye göre tasarlanırken servo motorlar çok geniş bir hız komutunu yerine getirecek sekilde tasarlanır. Servo motorlar kullanıcının komutlarını yerine getiren motorlardır.
Servo motor AA ya da DA olarak bulunur. İlk zamanlarda servo motor genelde DA motorlardır. Çünkü uzun yıllar yüksek akımlar için tek kontrol yöntemi tristör kullanılmaktaydı. Transistörler yüksek akımları kontrol etme yetenegi kazandıkça ve yüksek akımları yüksek frekanslarda anahtarlandıkça servo motorlar daha sık kullanılmaya baslandı. İlk servo motor özellikle güçlendiriciler için tasarlanmıstı. Step motor kullanılmayan kapalı devre (çıkısın kontrol edildigi) sistemlere servo sistem diye adlandırılmaktadır. Bu yüzden hız kontrolcüye baglanmıs basit bir AA endüksiyon motorunun da servo motor olarak adlandırmak mümkündür.
Ben bu projede mini bir servo motoru Arduino kontrolcüsü ile kullanmaya çalısacagız.Öncelikle gerekli baglantıları şekildeki gibi yapalım.


Ardından servo motor kütüphanesini linkten indirip library (arduino/libraries) klasörünün içerisine çıkartıyoruz. Daha sonra programımızı açıp kodumuzu yazıyoruz.
  #include  int servoPin = 9;
Servo servo;
int angle = 0; // derece cinsinden servo pozisyonu
void setup()
{
servo.attach(servoPin);
}
void loop()
{
for(angle = 0; angle < 180; angle++) // 0-180 derece tarama
{
servo.write(angle);
delay(15);
}
for(angle = 180; angle > 0; angle--) // 180-0 derece geri tarama
{
servo.write(angle);
delay(15);
}
}
servoPin kodumuz servoyu kontrol etmek için yollayacagımız sinyalin hangi pinden gelecegini belirtiyor. Biz 9 numaralı pini kullandık. Servo servo; kodu servo kütüphanesinin bize getirdigi yeni bir tanım seklidir. int, double gibi servo tanımlamasıdır. servo.write(angle); kodu içerisinde tanımlanan degeri servoya ileten fonksiyondur.Bizim programımızda angle tanımlı deger 0'dan 180'e kadar çıkıp inmektedir. Programın çalısır halinin videosu aşağıdadır ;
    
Servo motorumuzu potansiyometre yardımıyla kontrol etmek istersek ise yapmamız gereken öncelikle asagıdaki gibi devremizi baglamaktır.


Ardından programımızın kodunu yazıp Arduino'ya Upload ederek çalıstırıyoruz.
 #include int servoPin = 9;
Servo servo;
int angle = 0; // derece cinsinden servo pozisyonu
void setup()
{
servo.attach(servoPin);
}
void loop()
{
int reading = analogRead(potPin); // 0 to 1023
int angle = reading / 6; // 0 to 180-ish
servo.write(angle);
}
Bu noktada sıklıkla karsılasılan problem potansiyometreden analog deger okunurken stabil bir islem gözlenememesidir. Bu yüzden potansiyometre sabit bile olsa analog deger sürekli farklı algılanmakta mikrodenetleyici de durmadan farklı açı sinyali yollamaktadır. Servo motor ufak açılarla bi ileri bir geri giderek titremektedir. Bu durum için öncelikle tavsiyem yüksek degerli potlardan kaçınmanız. Örnegin 10k dirence sahip potansiyometre sizin için ideal olacaktir. Ek olarak kodunuz içerisinde çeşitli düzenlemeler yaparak da stabilizasyonu arttırabilirsiniz. Asagıdaki kodda ufak bir ekleme yapılarak potun 30 degerden küçük okumalar için hareket etmesi önlenmiş bu sayade ufak titreşimler engellenmiştir. Tabi ki bu durum bize hassasiyet kaybı olarak yansır ancak genel kullanım için çok büyük sıkıntı çıkarmayacaktır.
 #include int servoPin = 9;
int potPin = 0;Servo servo;
int angle=0;
void setup()
{
servo.attach(servoPin);
}
void loop()
{
int reading = analogRead(potPin); // 0 to 1023
if( ((angle-(reading/6))>30) || ((reading/6)-angle)>30)
{
angle = reading / 6; // 0 to 180-ish
analogValue = analogRead(potPin); // print it out in many formats:
potValue = angle; // print it out in many formats:
servo.write(angle);
}
else
{}
}
Son olarak bu kodun çalısır haldeki videosunu ekliyorum.

Ad

Arduino Autocad Bilim-Teknoloji Biyomedikal Sistemler C-Programlama C# C# Programlama Diferansiyel Denklemler Dijital Kontrol Sistemleri Elektrik Devreleri 1 Elektrik Devreleri 2 Elektrik Makineleri 1 Elektrik Makineleri 2 Elektrik Tesislerinde Koruma Elektromantetik Alan Teorisi Elektromantetik Dalga Teorisi Elektronik 1 Elektronik 2 Elektronik-Devreler EmguCV Genel Fizik Genel Kimya Genel Matematik Gömülü Linux Güç Elektroniği Haberleşme Sistemleri İşaret ve Sistemler Lineer-Cebir Lojik Devreler Malzeme Bilimi MATLAB Mikroişlemciler Olasılık ve İstatistik Otomatik Kontrol Sistemleri PLC-Otomasyon Proje Yönetimi ve Girişimcilik Raspberry Pi Sayısal Analiz Sayısal İşaret İşleme Teknik-Kutuphane Termodinamik Yüksek Gerilim Tekniği
false
ltr
item
Çağlar GÜL: #06 Arduino ile Servo Motor Kontrol
#06 Arduino ile Servo Motor Kontrol
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfUtjCGnk2Ib-yydjbM0Bfq21j1HNwhXJMwE1z_a9BHAqCoY21zrwOAbKIDJLmmS_eqLLR1-xvrNOK1V9hdvz_hi2H92RAsa-9RGx3qMd5RzhCMs4CnduibAVoWmz9F79a6CL7ML5_3eo5/s320/micro_servo_motor_011.jpg
https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjfUtjCGnk2Ib-yydjbM0Bfq21j1HNwhXJMwE1z_a9BHAqCoY21zrwOAbKIDJLmmS_eqLLR1-xvrNOK1V9hdvz_hi2H92RAsa-9RGx3qMd5RzhCMs4CnduibAVoWmz9F79a6CL7ML5_3eo5/s72-c/micro_servo_motor_011.jpg
Çağlar GÜL
https://elektronikafa.blogspot.com/2015/09/06-arduino-ile-servo-motor-kontrol.html
https://elektronikafa.blogspot.com/
http://elektronikafa.blogspot.com/
http://elektronikafa.blogspot.com/2015/09/06-arduino-ile-servo-motor-kontrol.html
true
871250089272898028
UTF-8
Not found any posts Not found any related posts VIEW ALL Readmore Reply Cancel reply Delete By Home PAGES POSTS View All RECOMMENDED FOR YOU Tag ARCHIVE SEARCH ALL POSTS Not found any post match with your request Back Home Contents See also related Sunday Monday Tuesday Wednesday Thursday Friday Saturday Sun Mon Tue Wed Thu Fri Sat January February March April May June July August September October November December Jan Feb Mar Apr May Jun Jul Aug Sep Oct Nov Dec just now 1 minute ago $$1$$ minutes ago 1 hour ago $$1$$ hours ago Yesterday $$1$$ days ago $$1$$ weeks ago more than 5 weeks ago Followers Follow THIS CONTENT IS PREMIUM Please share to unlock Copy All Code Select All Code All codes were copied to your clipboard Can not copy the codes / texts, please press [CTRL]+[C] (or CMD+C with Mac) to copy