Kênh Tên Miền chuyên cung cấp tên miền đẹp, giá rẻ! Hãy liên hệ kỹ thuật: 0914205579 - Kinh doanh: 0912191357 để được tư vấn, hướng dẫn miễn phí, Cảm ơn quý khách đã ủng hộ trong thời gian qua!
Sunday, February 16, 2014

Bài viết này sẽ mô tả cách nào để điều khiển tốc độ động cơ DC






Thông thường, tốc độ quay của một động cơ điện một chiều tỷ lệ với điện áp đặt vào nó, và ngẫu lực quay tỷ lệ với dòng điện , và ngẫu lực quay lớn nhất khi động cơ khởi động ( nghĩa là khi động cơ bắt đầu quay) khi đó động cơ sẽ cần 1 dòng điện lớn để khởi động

Điều khiển tốc độ động cơ bằng cách thay đối giá trị điện áp và dòng vào động cơ , đơn giản ta chỉ dùng 1 biến trở 200 ôm điều khiển dòng và áp cấp cho động cơ từ đó ta có thể điều khiển tốc độ động cơ bằng cách xoay biến trở ( chú ý cái này không áp dụng cho thực tế được vì dòng qua động cơ sẽ làm cháy biến trở gây hỏa hoạn )


Như ta đã biết thành phần cấu tạo của động cơ là cuộn dây nên động cơ sẽ có 1 hệ số cảm kháng như vây ta hãy xem như động cơ là 1 cuôn cảm có chức năng nạp và xả , ta thay biến trở bằng 1 con transitor (BJT)
và điều khiển nó bàng 1 chuỗi xung có tần số nằm trong khoảng 400Hz đến 30kHz ( cái này tùy trường hợp mà chọn tần số ) ,như vậy Q sẽ đóng và cắt tương ứng với mức 1 và mức 0 của chuỗi xung => tại cực C của trasitor Q cũng sẽ là 1 chuỗi xung nhưng có biên độ lớn hơn ( ngược pha với xung vào) vì ta xem động cơ như là 1 cuộn cảm nên tại cực C thực ra sẽ không phải là chuỗi xung vuông ,sường xung lên và sường xung xuống sẽ la đường cong , tính theo giá trị điện áp trung bình của toàn bộ chuỗi xung tạ cực C trong 1 đơn vị thời gian ta thấy giá trị đó nằm trong khoảng từ 0V - 12V .

Và giá trị này có thể thay đổi bằng 2 cách :
  + 1 là thay đổi tần số : khi tăng tần số thì giá trị điện áp trung bình tại cưc C sẽ tăng lên => tốc độ động cơ sẽ tăng lên và ngược lại ( cách này hiêu suất không cao nên không dùng )
  + 2 là gữ nguyên tần số : ta chỉ thay đổi độ rộng của xung ( tức là thay đổi thời gian on và off của xung trong 1 chu kì ) khi độ rông của xung mức 1 tăng lên ( độ rộng mức 0 giảm) trong 1 chu kì thì giá tri điện áp trung bình tại cực C sẽ tăng lên => tốc độ động cơ sẽ tăng lên và ngược lại. ( cách này tốt nhất )


Bây giờ sẽ vào việc dùng cách nào để thay đổi độ rộng xung hay còn gọi là PWM :

+ Dùng vi mạch NE555 để điều khiển độ rộng xung (cách này có nhiều mạch trên mạng mình không bàn tới )
+ Dùng vi xử lí để tạo xung PWM: (có 2 cách)
   - Dùng bộ module PWM có sẵn trong 1 số loại vi xử lí như PIC16F877A chẵn hạn:
          Code C của nó như sau:
              #include <16F877A.h>
              #fuses XT, NOWDT, NOPROTECT, BROWNOUT, PUT, NOLVP
              #use delay(clock = 4000000)
              main()
                  {
                     output_low(PIN_C1); 
                     setup_ccp1(CCP_PWM);  // cài dặt CCP1 là cổng xuất  PWM
                     setup_timer_2(T2_DIV_BY_16, 124, 1);  // cài đặt timer_2 có tần số 500 Hz 
                     set_pwm1_duty(31);  //mặt định là 25% xung cao mức 1 trong 1 chu kì xung              
                     while(true)
                           {
                            set_pwm1_duty(62); //50 % độ rộng xung xuất ra chân C1
                            delay_ms(2000);//trễ 2s
                            set_pwm1_duty(93);  // 75 % độ rộng xung xuất ra chân C1
                            delay_ms(2000);//trễ 2s
                            }
                    }
                
Như vậy với đoạn code trên sẽ tạo ra 1 chuỗi xung có chu kì 2ms , với set_pwm1_duty(62) thì ta sẽ có thời gian mức 1 của chuỗi xung trong 1 chu kì là 1ms và với set_pwm1_duty(93) sẽ là 1.48ms trong 1 chu kì.

          - Dùng ngắt timer0 để tạo xung PWM:
                    Code C của nó như sau:

              #include <16F877A.h>
              #fuses XT, NOWDT, NOPROTECT, BROWNOUT, PUT, NOLVP
              #use delay(clock = 4000000)
               char dem=0, value=0;
               #int_TIMER0
               void  TIMER0_isr(void)
               {
                set_timer0(155);
                dem++;
                 if(dem>=20){                      //100us*20=2ms   500Hz
                                    dem=0;
                                    output_high(PIN_B0);
                                   }
                if(dem>=value)output_low(PIN_B0);
               }
               void main ()
              { 
               setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
               set_timer0(155);  // timer0 sẽ tràn sau mỗi 100us
                enable_interrupts(INT_TIMER0);
                enable_interrupts(GLOBAL);
               while(true)
                     {
                      value=10; //50% mức cao của xung trong 1 chu kì là 1ms
                      }
               }

                      
     Với đoạn code trên xung sẽ được xuất ra trên chân B0 của PIC16F877A có độ rộng mức cao của xung là 1ms  hay 50%duty.


Hình sau là mạch cầu H-bridge dùng để thay đổi chiều quay của động cơ và tốc độ của động cơ:

            
     
  Nếu Q3 và Q2 đóng  ( Q1 và Q4 cắt ) thì động cơ quay theo chiều thuận ( giả sử ), và Q1 ,Q4 đóng ( Q2 và Q3 cắt ) thì động cơ sẽ quay theo chiều ngược lại
 Bây giờ ta chỉ việc cấp xung lần lược vào 4 transitor là đã có thể điều khiển tốc quay của động cơ
 Trong các hình có diode xung mắc ngược mục đích là bảo vệ xung ngược tránh hư hỏng cho các transtor ( BJT ) khi mạch đang hoạt động.

                                                                        Nguồn : http://phanhoangthach.blogspot.com/

0 comments:

Post a Comment

domain, domain name, premium domain name for sales

Popular Posts