Pwm ile Servo Kontrol

Başlatan kadirefendi, 23 Şubat 2012, 11:13:31

kadirefendi

Merhaba, Picbasic'te Servo'yu, 180 derece aşağı çekip 2 sn. bekletip, tekrar 180 derece yukarı çekecek bir kod yazmak istiyorum. Pwm, günlerdir uğraştığım konu olmasına rağmen, beceremedim. Yardımınızı bekliyorum.

eistain_54

hocam ete dersler arasında vardı bu konu. Pic basicte bu için benim pekte kullanışlı bulmadığım bir komut vardı.Herkes onu öneriyor ancak hatırlayamıyorum.ete derslere bakarsanız bulabileceğinizi düşüyorum.

https://320volt.com/picbasic-dersleri-pic-basic-pro-ile-pic-programlama-12/

buradakiler işinize yarar mı emin değilim ama buradan birşeyler çıkar sanırım :)
Her gün 24 altın verilirken bunun için kime şükredersin ey ademoğlu!?!

kadirefendi

Hocam, ilgin için teşekkürler, Ete'nin Derslerinin tamamını yazdırım inceledim. Gecikme hesaplamaları filan giriyor. yani, doğrudan pwm olarak 1.25 ms pic'e nasıl vereceğimi bi türlü çözemedim.

eistain_54

Orda donanımsal pwm modülünü kullanmış.Birde pbp de yazılımsal pwm vardı.Komutları hatırlamıyorum.Derleyici benim pc de vardı ancak arkadaşımın pcdeyim ve şuan staj defterimi yazmaya çalışıyorum.Arayıp bulmak çok zor geliyor açıkçası ;( Kusuruma bakma ne olur.Ancak eğer derleyicin varsa helpde komutlar var ve örnekleri de var. Oradan komutlara bakabilirsin.Hatta bakman gerektiğini düşünüyorum.
Her gün 24 altın verilirken bunun için kime şükredersin ey ademoğlu!?!

kadirefendi


muhittin_kaplan

1 adet servo sürmek için öyle ahım şahım kodlara ihtiyaç yok.

Tkr:
high PortA.1 
delayUs 1000  ; Pwm Duty Time 1ms (Servo en geride)
Low PortA.1
DelayMs 19     ; Pwm in 20ms olması gerek bundan dolayı 19ms+1ms=20ms
Goto TKR


yukardaki 1000 mikro ve 19mili saniye ile oynarayak istediğinizi yapabilirisniz.
yanlız toplamda 20ms olması gerek. komutların işlenme sürelerinide hesaba katmanız gerek.

eistain_54

Emin değilim.Belki.Yanlış bilgi vermek istemem.
Şimdi baktım da şunları buldum;
http://www.izoelektronik.com/pulsout-pbp-turkce.htm

pwm için ise

http://www.izoelektronik.com/pwm-pbp-turkce.htm

hangisi uygunsa  :)
Her gün 24 altın verilirken bunun için kime şükredersin ey ademoğlu!?!

kadirefendi

Muhittin Bey, işte bu noktada takıldım. 20 ms periyotta 1 ms vermeye kadar geldim fakat, servonun geride kalma süresi 1.25. İleride kalma için ise 1.75 ms. İşte bu noktada ne yapmalıyım? Vaktinizi alıyorum özür dilerim.

muhittin_kaplan

şimdi. Pwm servo nasıl çalışır orayı irdeleyelim.
20ms lik peryoda sahip bir sinyalde 1ms si 1 olursa en geride,1,5ms 1 olursa ortada,,2ms olursa ilerde olur.
biz burada şunu yapmalıyız.
Toplamda 20ms lik bir döngü oluşturup, istediğimiz dönüş açışı kadar değere karşılık gelen süreyi 1 yapmalıyız.
geri kalanı 0 yapmalı ve tekrarlamalaıyız.

kadirefendi

Peki, çok teşekkür ediyorum. Size ve eistain_54 'e.

muhittin_kaplan