TinkerCAD ile Servo Motor Uygulaması

14.03.2019
7.083

Servo motorlar entegre elektronik uygulamalar için son derece idealdir. Dönen normal motorların aksine istenilen herhangi bir yönde dönebilir. Robot teknolojilerinde en çok kullanılan motor çeşididir. Servoya ulaşan voltaj değişimine göre servo belirli bir pozisyona girer. Örneğin 20 milisaniyelik bir değişim ile servo 90 derece hareket ettirilebilir. Bu uygulamada, servoyu kontrol edip yönlendirmek için Arduino’nun PWM pinlerini (~3, ~5, ~6, ~9, ~10, ~11 numaralı dijital pinler) kullanacağız.

TinkerCAD ile Servo Motor Uygulaması

Merhabalar,

Bu uygulamamızda TinkerCAD ile SG90 Mikro Servo Motor Kontrolünü gerçekleştireceğiz.

Servo Motor Nedir?

SG90 Mikro Servo Motor

Servo motorlar entegre elektronik uygulamalar için son derece idealdir. Dönen normal motorların aksine istenilen herhangi bir yönde dönebilir. Robot teknolojilerinde en çok kullanılan motor çeşididir. Servoya ulaşan voltaj değişimine göre servo belirli bir pozisyona girer. Örneğin 20 milisaniyelik bir değişim ile servo 90 derece hareket ettirilebilir. Bu uygulamada, servoyu kontrol edip yönlendirmek için Arduino’nun PWM pinlerini (~3, ~5, ~6, ~9, ~10, ~11 numaralı dijital pinler) kullanacağız.

Servo motorun şemasından anlaşılacağı üzere beyaz renkli kablo PWM pine, kırmızı renkli kablo VCC pinine, siyah renkli kablo ise GROUND (GND) toprak hattına bağlanmalıdır. Bu uygulamamızda 3 numaralı PWM pinine bağlantı yaptık.

Mini Servo Motor Şeması

PWM Nedir?

Darbe genişliği modülasyonu olarak Türkçe’leştirilen Pulse Width Modulation (PWM) analog bileşenleri dijital sinyallerle kontrol etmeye yarayan bir yoldur. Asıl amaç elektronik devre elemanına uygulanan elektriğin gücünü kontrol altına almaktır. Arduino’da PWM tekniği ile dijital pinler üzerinden analog değerler elde edilmektedir.

TinkerCAD ile Servo Motor Uygulama Devre Şeması


TinkerCAD ile Servo Motor Uygulama Devre Şeması

Arduino sağladığı kullanışlı dâhili komutlarla; basit giriş(input) ve çıkış(output) işlemleri yapmamızı, mantık kullanarak karar vermemizi, matematik problemleri çözmemizi sağlar. Arduino’nun asıl gücü ise bu platformu kullanan devasa toplulukların yaptıkları çalışmaları paylaşma isteğidir. Arduino bir çok kullanışlı kütüphaneye sahiptir. Bu örnekte kullandığımız Servo kütüphanesi bunlardan biridir. Standart kütüphaneler ve kullanım kılavuzları için Arduino Kütüphanelerinin yer aldığı siteyi ziyaret edebilirsiniz.

http: //arduino.cc/en/Reference/Libraries

İsteyen herkes kendi kütüphanesini oluşturabilir. Eğer yeni bir sensör veya çıkış (Output) aygıtı kullanacaksanız, bu aygıtla ilgili daha önce herhangi bir kütüphane yazılmamışsa siz de yeni bir kütüphane yazabilirsiniz. Kullanıcıların Arduino kütüphanelerine ulaşmak için Arduino Playground’ı ziyaret edebilirsiniz.

http://playground.arduino.cc/

TinkerCAD ile Servo Motor Uygulama Devre Kodları:

/* BlogKod - TinkerCAD ile Servo Motor Uygulaması */
#include <Servo.h>  //Servo kütüphanesini ekliyoruz (Taslak/library ekle-Servo)

Servo servo1;  //servo1 ile Servo kütüphanesinin özelliklerini bu nesneye aktarmış olduk

void setup()
{
  servo1.attach(3); //3 numaralı PWM pinini servoya bilgi aktarması için bağlıyoruz
  // Kaç tane servo kullanılacaksa hepsi ayrı ayrı dijital PWM pinlerine bağlanmalıdır
  // Eğer servoyu elle kontrol etmek istersek servo1.detach(3); komutu ile 
  // servoyu manuel pozisyona sokabiliriz
}
void loop()
{
  int position; // Servo motoru istediğimiz açıda, pozisyonda hareket ettirmek için bu değişkeni tanımlıyoruz

  servo1.write(90); // Servo motor kolunu 90 derecelik konuma getir

  delay(1000);         // 1 saniye bekle (gecikme)

  servo1.write(180);   // Servo motor kolunu 180 derecelik konuma getir

  delay(1000);         // 1 saniye bekle (gecikme)

  servo1.write(0);     // Servo motor kolunu 0 derecelik konuma getir

  delay(1000);         // 1 saniye bekle (gecikme)
  
 // 0 dereceden 180 dereceye kadar 2'şer adım atarak kolu hareket ettir (20 milisaniyede 1)
  for(position = 0; position < 180; position += 2)
  {
    servo1.write(position);  // Pozisyonu adım adım değiştir
    delay(20);               
  }
  
 // 180 dereceden 0 dereceye kadar 1'er adım atarak kolu hareket ettir (20 milisaniyede 1)
  for(position = 180; position >= 0; position -= 1)
  {                                
    servo1.write(position);  // Pozisyonu adım adım değiştir
    delay(20);               
  }
}


#include <Servo.h>

#include kütüphaneyi (veya başka bir dosya) taslağımıza (sketch) ekleyen özel bir önişlemcidir. Bu komutu kendiniz yazabilir veya hali hazırda yüklü olan bir kütüphaneyi “Taslak / library ekle” menüsünden seçebilirsiniz.

Servo servo1;
servo1.attach(3);

Servo kütüphanesi servoyu kontrol etmemizi sağlayan komutlar sunar. Arduino’yu servo kontrolüne hazırlarken öncelikle her servo için Servo ”nesne” oluşturmamız gereklidir. (Biz “servo1” olarak adlandırdık.) Ardından servo motoru bir dijital PWM pinine bağlamak için “attach” kullanmalıyız . Biz uygulamamızda dijital PWM pin 3’ü kullandık.

servo1.write(180);

Servo kütüphanesinde write() komutunu kullanarak servonun döneceği derece aralığını (0-180) belirleyebiliriz. Dikkat etmemiz gereken en önemli şey, servonun hareket için zamana ihtiyaç duyduğunu bilmek olacaktır. İhtiyaca göre delay() fonksiyonu kullanılarak kısa zaman aralıkları tanımlayabiliriz.

Servo motor dönmüyorsa motorun kablolarını ters bağlamış olabiliriz. Muhtemelen problem bundan kaynaklıdır. Servo çalışıyor fakat kesik hareketler gerçekleştiriyorsa ve Arduino üzerinde yanıp sönen bir
ışık var ise muhtemelen enerji yetersizdir. Usb yerine bir adaptör kullanmak bu sorunu çözebilir.

TinkerCAD ile Servo Motor Uygulaması Simülasyonu

https://www.tinkercad.com/embed/8zwvbfKgsBG?editbtn=1

Bir sonraki uygulamamızda görüşmek üzere…

BİR YORUM YAZIN

ZİYARETÇİ YORUMLARI - 1 YORUM
  1. Komutan Logar dedi ki:

    Ardunio’da temel şeyler bitti anlatım ve kurgunuz çok iyi hızlı ve öz ilerliyorsunuz başarılar 🙂

Bilişim Teknolojileri ve Yazılım Ders Notları, Uygulamalar, Kodlama ve Arduino

© 2018-2025 BlogKod