Mesajlar Etiketlendi ‘Servo’

9 Bu yazıda hobiciler tarafından çok kullanılan RC servo motorların STM32F103C8 mikrodenetleyici ile kontrol edilmesini inceleyeceğiz. RC servo motorlar piyasada pek çok marka ve model altında bulunmaktadır. RC servo motorun içerisinde bir adet mikrodenetleyici bulunuyor ve bu mikrodenetleyici gelen sinyalleri değerlendirip motoru döndürüyor. Motorun ne kadar döndüğü bilgisini ise mile bağlı bir potansiyometrenin sağladığı geribesleme ile alıyor.  Ben de elime geçen Tower Pro SG90 isimli iki adet servo motoru kontrol etmek istedim. Bu motor 9g ağırlığında 1.8 kgf/cm güce sahip ve 0.1s/60 derece hıza sahip.  4.8~5V besleme ile çalışıyor. (daha&helliip;)

pca9685_head   PCA9685 isimli entegre NXP firması tarafından üretilmiş FM+ (Fast mode-plus 1MHz ) hızında I2C protokolü ile dış dünyayla bağlantı kuran, 16 çıkış kanalına sahip bir PWM kontrolcüsüdür. Çıkış frekansı 24Hz ile 1526Hz arasında ayarlanabilmektedir.  Varsayılan çıkış frekansı 200Hz’dir.  PCA9685 dahili 25MHz bir osilatör barındırmakla birlikte harici bir clock giriş pinine de sahiptir. Bu pine uygulayacağımız harici bir clock sinyali ile (max 50MHz) birden fazla PCA9685’in senkronize çıkış vermesini sağlayabiliriz.  Çıkışlar yazılımla 25ma sink open-drain veya  25ma sink, 10ma source akımlarını sağlayabilecek  şekilde totem pole olarak ayarlanabilir.  PCA9685 2.3V -5.5V aralığında çalışmakla beraber bütün girişler 5.5V toleranslıdır. Tek I2C hattına 62 PCA9685 aynı anda bağlanabilir, bu sayede  62*16= 992 adet PWM çıkışını mikrodenetleyicimizin sadece 2 pinini kullanarak elde edebiliriz. Bu entegrenin diğer bir güzelliği ise PWM çıkışlarına gecikme ekleyebilmemizdir.  Bu şekilde h-bridge mosfet uygulamalrında dead time sağlamamıza olanak sağlanmıştır. Bununla birlikte her çıkış birbirinden farklı duty oranında veya her çıkış aynı duty oranıyla sinyal üretebilmektedir.

Aşağıda  bu entegreyle ilgili yazmış olduğum kodları görebilirsiniz. Bu uygulamada nispeten yeni bir 8bit mcu olan Microchip firmasına ait PIC16f1827 entegresini kullandım.  Bu mcu pek çok yeteneğe sahip ve bir çok uygulamada kullanılabilir joker bir mcu.  Kodlara bakalım; (daha&helliip;)