Pic ile pwm üretmede farklı bir yöntem

Başlatan Muhittin22, 03 Mayıs 2008, 10:36:13

Muhittin22

Rc servo motorları için çok kararlı bir yöntem.
Paylaşmak istedim.
Picbasic ile örnek program.
20 ms'de bir çıkışı HIGH yapar ve 0.3 ms-2.3 ms arası puls genişliği üretir.
'Örnek pwm.bas
DEFINE OSC 4        'Set cpu frekansı
PWMM1 VAR WORD 'Değişken tanımı
TRISB=%00000000 'RB output olarak kullanacağım
PORTB=0

BASLA:
               
PORTB.0=1 ' Çıkışı 1 yap
PAUSEUS PWMM1 'PWMM1 =600 ile 2500 arası micro saniye. Çıkışı bir tut.
PORTB.0=0  'çıkışı 0 yap      
PAUSE 20     ' 20 ms bekle    
GOTO BASLA

volkii


aslan_korhan

verdiğin örnekte Frekansın da değişir.
yani PWM değerini örneğin 60 yaptıysan Pause değerini de 40 yapman gerekir.
PWM değeri 30 ise Pause değeri 70 yaparsan frekansın sabit olur.
Yani tam PWM elde etmiş olursun.
Programa ufak bir değişiklik ile olur...
Dünyada 10 çeşit insan vardır. Binary bilen ve bilmeyenler.

Muhittin22

Rc servoları 20 ms 'lik (50hz) frekansa bakmıyor 30hz'yide 80Hz'yide kabul ediyor. Bu servolar darbe genişliğine bakıyor. 20ms'nin değişmesi   yanlızca tazeleme hızına etki ediyor. Eğer PAUSE 20 yerine döngü kullanılırsa bir adet 16f628 ile 8 tane servo kontrol etmek mümkün oluyor. Eğer, Kullandığınız pwm ile çalışan cihaz, illaki 20 ms isteyen bir cihaz ise @aslan_korhan  Arkadaşımın yazdığına dikkat çekerim.
(DENENMİŞTİR)