- Darbe Genişliği Modülasyonu (PWM)
- Arduino kullanarak ATtiny13'ü programlama
- Gerekli Bileşenler
- Devre Şeması ve Çalışma
Servo motor Darbe Genişlik 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)
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.
Tüm servo motorlar doğrudan + 5V besleme ile çalışır, ancak motorun tüketeceği akım miktarına dikkat etmeliyiz. İkiden fazla servo motor kullanıyorsak, uygun bir servo kalkan tasarlanmalıdır.
Servoyu Attiny13'e bağlamadan önce bu Servo Motor Test Devresi yardımıyla servonuzu test edebilirsiniz. Burada birçok mikro denetleyiciye sahip servo motor arayüzüne sahibiz:
- ARM7-LPC2148 ile Servo Motor Arayüzü
- Servo Motor ile MSP430G2'nin Arabirimi
- Arduino ile Çoklu Servo Motorları Kontrol Etme
- MPLAB ve XC8 kullanarak Servo Motor ile PIC Mikrodenetleyici arasında arayüz oluşturma
- Raspberry Pi ile Servo Motor Kontrolü
- Arduino Due ile Servo Motor Kontrolü
- AVR Mikrodenetleyici Atmega16 ile Servo Motor Arayüzü
Arduino kullanarak ATtiny13'ü programlama
Attiny13, Arduino Uno veya başka bir Arduino kartı kullanılarak programlanabilir. Attiny13'ü aşağıdaki şekilde gösterildiği gibi Arduino Uno'ya bağlayın.
- Arduino 5V - ATtiny13 pin 8
- Arduino GND - ATtiny13 pin 4
- Arduino pin 13 - ATtiny13 pin 7
- Arduino pin 12 - ATtiny13 pin 6
- Arduino pin 11 - ATtiny13 pin 5
- Arduino pin 10 - ATtiny13 pin 1
Arduino, ATtiny13'ü programlamak için bir programcı olarak ayarlanmıştır. Bu, ArduinoISP taslağını Arduino'ya yükleyerek yapılır. Bu Arduino çizimi, Arduino IDE'deki örneklerde mevcuttur. Arduino IDE'yi açın ve Dosyalar> Örnekler> ArduinoISP'ye gidin .
Şimdi ArduinoISP programı açılacaktır. Programı Arduino Uno'ya yükleyin.
Arduino Uno artık Attiny13'ü programlamaya hazır. Ancak Attiny'yi çekirdek dosyalarını kurarak kurmamız gerekiyor. Bunu yapmak için Arduino IDE'de Dosya >> Tercihler'e gidin
Ardından yeni bir pencere açılacaktır. Ve " Ek Pano Yöneticisi URL’leri " nde aşağıdaki bağlantıyı ekleyin ve "Tamam" ı tıklayın.
"Https://raw.githubusercontent.com/sleemanj/optiboot/master/dists/package_gogo_diy_attiny_index.json"
Şimdi Arduino IDE'nizde Araçlar >> Pano >> Pano Yöneticisi'ne gidin
Ardından, arama kutusuna 'Attiny' yazın ve ardından "DIY ATtiny" yazıp ardından "yükle" düğmesine tıklayın (zaten yükledim, bu nedenle gri renkli yükleme düğmesi)
ATtiny 13'ü programlamaya başlamak için, ona Bootloader yazmalıyız. Bunun için Araçlar> Pano> ATtiny13'e gidin.
Şimdi Araçlar> İşlemci sürümü'ne gidin ve ATtiny'nin doğru sürümünün seçilip seçilmediğini kontrol edin. Çipinize bağlı olarak ATtiny13 veya ATtiny13a'yı seçin.
Ardından, Araçlar menüsünün altındaki Bootloader yaz düğmesini tıklayın.
Önyükleyiciyi yazdıktan sonra, ATtiny artık programlanmaya hazırdır. Artık programınızı yükleyebilirsiniz.
Gerekli Bileşenler
- 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.
Bağlantılar aşağıdadır
- 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.
Burada potansiyometre değeri okunur ve 0 ile 180 arasında bir değere dönüştürülür. Daha sonra bu açı değeri mikrosaniyeye çevrilir ve hesaplanan mikrosaniye gecikmesi ile servo motorun kontrol pinine pals verilir. Şimdi servo motor, aşağıda verilen videoda gösterildiği gibi potansiyometrenin değerine göre dönecektir.