Sayfalar

30 Ağustos 2019 Cuma

PIC16F84A Mikrodenetleyici ile DC Motor Hız Kontrol Uygulama Devresi ve Program Kodu

Yukarıdaki devrede PIC16F84A Mikrodenetleyici ile yapılmış DC Motor Hız Kontrol Uygulama Devresi görülmektedir.


Bu devrede Speed UP yazan butona basıldığında motor devri artarak hızlanmaktadır. Speed DOWN yazan butona basıldığında motor devri azalarak yavaşlamaktadır. Butonlara basarak motorun hızını istediğimiz gibi artırıp yavaşlatmak mümkündür. Motor maksimum hızına geldiğinde LED yanmaktadır.

PIC16F84A Mikrodenetleyici CCS C kodu

1  // DC motor speed control using PIC16F84A CCS C code
2  // http://elektrikelektronikegitimi.blogspot.com
3  #include <16F84A.h>
4  #fuses HS,NOWDT,PUT,NOPROTECT
5  #use delay(clock = 8000000)
6  #use fast_io(B)
7  #use pwm(output = pin_a0, timer = 0, frequency= 500Hz, duty = 0)
8
9  unsigned int8 i;
10  void main() {
11  port_b_pullups(TRUE); // Enable PORTB pull-ups
12  output_b(0); // PORTB initial state
13  set_tris_b(3); // Configure RB0 & RB1 as inputs
14  while(TRUE) {
15  if(input(PIN_B0) == 0){ // If RB0 button pressed
16  i++; // Increment i by 1 (i = i + 1)
17  if(i > 100){
18  i = 100;
19  output_high(PIN_B2);} // Turn RB2 LED ON
20  pwm_set_duty_percent(i * 10UL); // Duty cycle change in tenths %
21  delay_ms(100); } // Wait 100ms
22  if(input(PIN_B1) == 0){ // If RB1 button pressed
23  output_low(PIN_B2); // Turn RB2 LED OFF
24  i--; // Decrement i by 1 (i = i - 1)
25  if(i < 1)
26  i = 1;
27  pwm_set_duty_percent(i * 10UL); // Duty cycle change in tenths %
28  delay_ms(100); } // Wait 100ms
29  }
30  }

Hiç yorum yok:

Yorum Gönder