Stm32 discovery de birden fazla servo calistirmak

Başlatan robikod, 07 Ağustos 2017, 11:47:29

robikod

Merhaba birden fazla servo calistirmak icin ayri bir timer kullanmak mi gerekiyor elimde tim1 ile surdugum servo motor var 2. Bir motor icin nasil bir yol izlemeliyim yeni basladigim icin bir bilgim yok yardimci olur musunuz ?

MC_Skywalker

birden fazla kanal sahip tmr var onlardan birini seçip kullanana bilirisin

robikod

Alıntı yapılan: MC_Skywalker - 07 Ağustos 2017, 11:50:29
birden fazla kanal sahip tmr var onlardan birini seçip kullanana bilirisin
Timer tanimladim 2 tane de pin tanimladim. 2. Kanal ve 2. Pini nasil baglayabilirim
Mesela motorlari tim3->ccr1=500 ile calistiriyorum. 2. Motoru timer 3 de nasil farkli hizla calistirabilirim

MC_Skywalker

Timer3 bu iş için uygun 4 kanal çıkışı var.

PB0     ------> TIM3_CH3
PB1     ------> TIM3_CH4
PC6     ------> TIM3_CH1
PB5     ------> TIM3_CH2


robikod

Alıntı yapılan: MC_Skywalker - 07 Ağustos 2017, 12:10:48
Timer3 bu iş için uygun 4 kanal çıkışı var.

PB0     ------> TIM3_CH3
PB1     ------> TIM3_CH4
PC6     ------> TIM3_CH1
PB5     ------> TIM3_CH2

(Resim gizlendi görmek için tıklayın.)

Tim3->ccr1 =500 kismini nasil degistirmem gerekiyor peki?

robikod

Asil sormak istedigim mesela pb4 pinini ben farkli bir hizda surmek istiyorum. Ilk tanimlamadaki motorum tim3->ccr1 =300 de calisiyor. Digerini nasil tanimlamaliyim

erkinkent

TIM1->ARR = ServoPeriod[Axis_Y.hiz];  değerini değiştirmen gerekecek
Prescaler sabit tanımlanıp
Period değeri bir dizi içine oluşturulup her kesme değerinde timer arttırabilir.

mylord92

Alıntı yapılan: robikod - 07 Ağustos 2017, 12:16:46
Tim3->ccr1 =500 kismini nasil degistirmem gerekiyor peki?

Merhaba,

TIM3->CCR1 dediğiniz zaman CHANNEL 1 dutysini ayarlamış oluyorsunuz.
TIM3->CCR2 ------> CHANNEL 2
TIM3->CCR3 ------> CHANNEL 3
TIM3->CCR4 ------> CHANNEL 4

Bu şekilde aynı frekansta fakat farklı dutylere sahip çıkışlar elde edebilirsiniz. Dolayısı ile 4 kanalı olan bir Timer üzerinden 4 adet servo kontrol edebilirsiniz.

robikod

Alıntı yapılan: mylord92 - 07 Ağustos 2017, 14:00:11
Merhaba,

TIM3->CCR1 dediğiniz zaman CHANNEL 1 dutysini ayarlamış oluyorsunuz.
TIM3->CCR2 ------> CHANNEL 2
TIM3->CCR3 ------> CHANNEL 3
TIM3->CCR4 ------> CHANNEL 4

Bu şekilde aynı frekansta fakat farklı dutylere sahip çıkışlar elde edebilirsiniz. Dolayısı ile 4 kanalı olan bir Timer üzerinden 4 adet servo kontrol edebilirsiniz.
Hallettim tesekkurler