Arduino – Servo Motor
kullanımı
Servo Motor
• servo motorlar 0 ile 180 derece arasında bir açıda
döndürebildiğimiz elektronik bileşenlerdir. İhtiyacımız olan
güce göre çeşitli büyüklükte ve plastik ve metal dişlilere sahip
modelleri bulunmaktadır.
• Arduino servo motor kontrolü için PWM pinlerinden
yararlanıyoruz. Bu pinlerin yanında dalga (~) işaret
bulunmaktadır. Servo motoru bu pinlerle kullanabilirsiniz.
Servo motorun 3 adet bağlantı kablosu bulunmaktadır.
Projelerde ve prototiplerde kullanılan hem yaygın hem de
ekonomik olan SG-90 servo motorunda renkleri kahverengi,
kırmızı ve turuncu olmaktadır. Bu kabloların özellikleri
kahverengi (GND), kırmızı (5v), Turuncu (Dijital PWM Pin)
sinyal pini olarak belirlenmiştir.
Nasıl Bağlantı Sağlarız?
• Genelde kullanılan SG-90 servo
motorun kablo renkleriyle
devremizdeki servo motor temsili
ile karşılaştırdığımızda sarı renkli
kablo sg-90 da Turuncu, kırmızı
renk yine kırmızı, siyah renk ise
kahverengi kablo ile eşlenmiştir.
Bağlantımızı yukarıdaki devreye
göre sağladıktan sonra kodumuzu
yazmadan Servo kütüphanesini
Arduino IDE’ye eklememiz
gerekiyor.
• Arduino I
Arduino IDE’ye Kütüphane Ekleme
Arduino IDE’ye kütüphane
ekleme işlemini 3 farklı yöntem
ile gerçekleştirebiliriz. bu
yöntemler;
• Arduino IDE kütüphane
yükleme yöneticisi ile eklemek
• Arduino IDE içerisinden Zip
dosyası olarak eklemek
• Doğrudan kütüphane klasörüne
ekleme
Ardunio İDE de kullanımı
Servo Motor Kullanılan Komutları
• #include <Servo.h> kütüphane kullanımı
• [Link](9); servonun bağlı olduğu dijital pini belirtmek
için kullanılan komut.
• [Link]() Seri porta değer göndermek için kullanılan komut
Kullanılan parametreler
• #include <Servo.h> // Servo kütüphanesini projemize ekledik.
• Servo servoM; // Servo nesnemizi oluşturduk, ismini servoM yaptık.
• int pos = 0; // pos değişkenini oluşturup 0’a eşitledik.
• void setup() {
• [Link](9); // Servoyu 9nolu pin’e bağladığımızı belirttik.
• }
• void loop() {
• for (pos = 0; pos <= 180; pos += 1) { // For döngüsü ile 0 ile 180 derece arası gitmesini sağladık.
• // her bir adımda 1 derece artacak şekilde ayarladık.
• [Link](pos); // Servo açı değeri olarak belirlediğimiz pos değişkenini servoya yazdırdık.
• delay(15); // servonun hedeflenen açıya gidebilmesi için 15 ms bekleme ekledik.
• }
• for (pos = 180; pos >= 0; pos -= 1) { // for döngüsü ile 180 ile 0 derece arası gitmesini sağladık.
• [Link](pos); // Servo açı değeri olan pos değişkenini servo’ya yazdırdık.
• delay(15); // Servonun açı değerine gidebilmesi için 15 ms. bekleme ekledik.
• }
• }
Potansşyometre ile Servo Motor kullanımı
• #include <Servo.h>
• int pot A0;
• Servo myServo;
• void setup() {
• [Link](7);
• [Link](9600);
• }
• void loop() {
• int potValue = analogRead(pot);
• Serial .print(potValue);
• int angleValue = map(potValue, 0, 1023, 0, 180);
• [Link](angleValue);
• delay(10);
• }