Servo motor Darbe Genişliği Modülasyonu (PWM) prensibine göre çalışır ve dönüş açısı, kontrol pimine uygulanan darbenin süresi ile kontrol edilir. İşte bu eğitimde, PWM tekniğini kullanarak ATtiny13 mikro denetleyicili bir servo motoru kontrol edeceğiz. Bu yüzden daha ileri gitmeden önce PWM, Servo Motor ve ATtiny13'ün Arduino Board ile nasıl programlanacağını öğreneceğiz.
Darbe Genişliği Modülasyonu (PWM), bir dijital kaynak kullanarak bir analog sinyal oluşturmak için bir yöntem olarak tanımlanır. Bir PWM sinyali iki ana bileşenden oluşur: görev döngüsü ve frekans. Bu bileşenler davranışını tanımlar. Görev döngüsü, sinyalin yüksek durumda olduğu süreyi tanımlar. Bir çevrimi tamamlamak için geçen toplam sürenin yüzdesi olarak belirtilir.
Görev Döngüsü = Açma süresi / (Açma süresi + Kapatma süresi)
Frekans, PWM'nin bir döngüyü ne kadar hızlı tamamladığını ve sinyalin yüksek ve düşük durumlar arasında ne kadar hızlı geçiş yaptığını tanımlar. 100 Hz frekans, saniyede 100 döngü anlamına gelir. Dijital bir sinyali hızlı bir oranda ve belirli bir görev döngüsünde AÇIK ve KAPALI konuma getirerek, çıkış sabit voltajlı bir analog sinyal gibi görünecektir. PWM'nin güçlü avantajlarından biri, güç kaybının çok az olmasıdır.
PWM sinyalleri, çeşitli kontrol uygulamaları için kullanılır. PWM sinyalinin temel amacı, çeşitli elektrikli cihazlara, özellikle AC / DC motorlar gibi atalet yüklerine sağlanan gücü kontrol etmektir. Ayrıca pompaları, valfleri, hidrolikleri ve diğer mekanik parçaları kontrol etmek için de kullanılabilir. PWM sinyalinin frekansı, uygulamaya ve güç verilen cihazın yanıt süresine bağlıdır.
Servo motor, darbe genişlik modülasyonu (PWM) ile kontrol edilir veya kontrol teli aracılığıyla değişken genişlikte bir elektrik darbesi gönderir. Bir tekrarlama oranı, minimum darbe ve maksimum darbe olacaktır. Bir servo motor, toplam 180o'lik bir hareket için nötr konumundan her iki yönde 90o dönebilir. Motorun nötr konumu, servonun hem saat yönünde hem de saat yönünün tersine aynı miktarda potansiyel dönüşe sahip olduğu yerdir. Motora gönderilen PWM sinyali şaftın konumunu belirler. Rotor, kontrol teli üzerinden gönderilen darbenin süresine bağlı olarak istenen konuma dönecektir. Servo motor her 20 milisaniyede (ms) bir darbe bekler ve darbenin uzunluğu motorun ne kadar uzağa döneceğini belirler.
Bir servo motor 0 ile 180 derece arasında döndürülebilir. Kontrol teline 1,5 ms'lik bir darbe verildiğinde motor 90o konumuna dönecektir. 1,5 ms'den daha kısa bir darbe verildiğinde, motor saat yönünün tersine 0o konumuna doğru hareket edecektir. 1,5 ms'den daha uzun bir darbe verilirse, motor saat yönünde 180o konumuna doğru dönecektir.
ATtiny13 Mikrodenetleyici
Servo motor
Potansiyometre
+ 5V pil
Arduino IDE
Bağlantı telleri
Devre Şeması ve Çalışma
ATtiny13 ile pot kullanarak bir servo motoru kontrol etmek için devre şeması aşağıda verilmiştir.
Servo motor kontrol pimini ATtiny13'ün 5 numaralı pimine bağlayın.
Servo motorun topraklamasını ATtiny13'ün 4. pinine bağlayın
Servo motorun VCC'sini ATtiny13'ün 8 numaralı pinine bağlayın
Potansiyometrenin orta pimini ATtiny13'ün 7 numaralı pimine bağlayın
Potansiyometrenin birinci ve üçüncü pinlerini VCC ve GND'ye bağlayın.
+ 5V pilin pozitifini ATtiny13'ün 8 numaralı pimine bağlayın.
+ 5V pilin negatifini ATtiny13'ün 4. pinine bağlayın
ATtiny13'ün pim 7'sine (PB2) bir potansiyometre bağlanır ve servo motorun kontrol kablosu pim 5'e (PB0) bağlanır.
Kod Açıklaması:
Devre Videosu: