Ana sayfa | Hakkımda | İletişim | Sosyal platform
PIC CCS C & ASM / Uygulamalar
DC motor hız kontrol uygulaması

 PWM kullanımı hakkındaki makaleye buraya tıklayarak ulaşabilirsiniz.

   Bu uygulamamızda pwm modülü ile DC motor hız ayarı yaptık. 2 adet buton ile hız arttırma veya azaltma modumuz mevcut. Uygulama devresi simüle amaçlı olup, gerçek hayat için pic ile motor arasında yüksek frekanslı anahtarlama özelliğine sahip mosfet veya ileri transistörler kullanılması önemle duyurulur.

 Uygulamayı buraya tıklayarak indirebilirsiniz. Arşiv şifresi isterse elektrocavus.com giriniz.

 

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
#include <16f628A.h>
#fuses XT, NOWDT  
#use delay(clock=4M)


unsigned int8 duty_oran=0;  // pwm duty oran değişkeni 
unsigned int8 hassasiyet=10; // 1 en yüksek çözünürlükte

Void buton_kontrol(){
if(input(pin_a0)){while(input(pin_a0)); delay_ms(30); if(duty_oran<250)duty_oran+=hassasiyet; }
if(input(pin_a1)){while(input(pin_a1)); delay_ms(30); if(duty_oran>0)duty_oran-=hassasiyet;   }
set_pwm1_duty(duty_oran);  // butondan sonraki duty_oranını aktif ediyoruz.  
}
Void main(){
setup_timer_1(T1_DISABLED);          // timer 1 modülü devredışı

setup_timer_2(T2_DIV_BY_16,254,1);   // pwm periyodunu 4.08ms olarak ayarladık.
setup_CCP1(CCP_PWM);                // pwm modülü aktif ettik

set_pwm1_duty(duty_oran);    // başlangıç için pwm duty oranını ayarladık
for(;;){                      // sonsuz döngü
buton_kontrol();
 }
}

/*
Timer 2 periyot hesaplaması.
Osilatör frekansımız 4MHz 
denetleyicinin kullandığı hız, 4Mhz/4 = 1MHz (komut) 1/1MHz = komut periyot

pwm periyot = (1/1000000)*(pr2(254 Olarak ayarladık)+1)*bölme oranı
4.08ms = 0.000001 * 255 * 16

ilk başta duty oranımız 0, yani duty oranı 0 olduğu sürece pwm çıkışı 4.08ms boyunca sürekli
lojik 1 de kalacak. Duty oranımızı 25 defa arttırdığımızı düşünelim yani duty oranımız 25 olsun.
 Basit bir orantı ile; 
 254 iken 4.08ms lojik 1'de kalıyorsa 
 25 iken kaç ms 1 de kalır? 
 _____________içler dışlar çarpımı ile doğru orantı
 25*4.08/254= 0,40157480314960629921259842519685 ms 
 
 Yani duty oranımız 25 iken 
 %100       4,08ms
  x         0,40157480314960629921259842519685 ms
 _______doğru orantı
 100*0,40157480314960629921259842519685/4,08 = %9,84 'ü kadar lojik 1 de 
 kalacak arta kalan süre lojik 0 olacak.
 
*/
ELEKTRO ÇAVUŞ
Ana sayfa | Hakkımda | İletişim | Sosyal platform
ELEKTRO ÇAVUŞ2012 | elektrocavus.com