ARM ile PWM'siz sadece sinyalle servo kontrolü yapma

Başlatan mfurkan7, 23 Haziran 2022, 22:02:18

mfurkan7

Merhabalar,
Bu aralar elimde STM32F4 geliştirme kartı bir de HS-311 servo var. Kafamdaki şey elimdeki servoyu PWM'siz bir şekilde kontrol etmek. Buradaki kasıtım şudur. Geliştirme kartıma bir adet buton bağlayacağım. Butona bastığımda işlemcinin bir portundan 900ms'lik 6V'luk bir kare dalga üretmek istiyorum(ki burayı nasıl yapacağımı henüz bilmiyorum). Sonra bu outputtan gelen 900ms'lik dalga ile servo motoru döndüreceğim. Sonra ikinci bir buton bağlayıp bu sefer ondan da 500ms'lik bir sinyal gönderip servoyu çalıştıracağım.
Sanırım HS-646WP ile bu işlemler yapılıyor. Merak ettiğim başka bir konu da HS-311 ile yukarıda bahsetiklerimi yapabilir miyim? Sanırım dijital ve analog oldukları için bir fark var.

Ek olarak: Elimdeki 1Hz'lik bir sinyali, servo kontrolünde kullanacağım 50Hz'lik bir sinyale nasıl dönüştürebilirim?

selahaddin54

Kesinlikle pwm sinyali kullanmalısın. Ayrıca 1 kHz'lik sinyali 50 Hz'e çevirmene gerek yok. İstediğin sinyali istediğin frekansta (Belirli sınırlar içerisinde örneğin 20mHz'e kadar) üretebilirsin. Bunu kullandığın işlemcinin timer modülüyle kolayca halledersin. İlle de yok o 1 kHz'i çevirmem lazım diyorsan onu da capture modulü ile yakalayıp aldığın frekansa göre oranlayıp yeni bir frekans üretebilirsin.

mfurkan7

#2
Alıntı yapılan: selahaddin54 - 24 Haziran 2022, 07:25:03Kesinlikle pwm sinyali kullanmalısın. Ayrıca 1 kHz'lik sinyali 50 Hz'e çevirmene gerek yok. İstediğin sinyali istediğin frekansta (Belirli sınırlar içerisinde örneğin 20mHz'e kadar) üretebilirsin. Bunu kullandığın işlemcinin timer modülüyle kolayca halledersin. İlle de yok o 1 kHz'i çevirmem lazım diyorsan onu da capture modulü ile yakalayıp aldığın frekansa göre oranlayıp yeni bir frekans üretebilirsin.

Hocam merhaba,
PWM kullandigimda istedigim siklikta sinyal gönderemiyorum. HS-311 analog servo oldugu icin  sanirim 50Hz'te kontrol etmem gerekiyor. Bu da gerekli dayanim gücünü saglamiyor yani servo pozisyonunu istedigim noktada sabit tutamiyorum. Beraberinde de PWM daha yavas kaliyor aralarda gecikme oldugu icin. Aslinda kafamdaki sey bulk bir tane kare sinyal atip o kare sinyal ile servoyu hareket ettirmek.

Elimde 1kHz'lik degil de 1Hz'lik bir sinyal var. Bunu da islemcinin timer modülü ile yapabilirim diye anliyorum. Yazdiginiz 20mHz ise...

mfurkan7

Baska yorumu ya da örnek uygulamasi olan var midir?

mfurkan7


alikeskinkilic

derleyicisinde pulsout gibi (yada benzeri)bir komut yokmu pwm den bağımsız dijital herhangi bir kanaldan 20ms de bir  1000 us ile 2000 us arasında bir sinyal verin
Hep meraktan