[ Lập Trình Pic] Bài 8: Điều chế độ rộng xung điều khiển động cơ

Đăng bởi Đỗ Hữu Quang 30/10/2020
[ Lập Trình Pic] Bài 8: Điều chế độ rộng xung điều khiển động cơ

[ Lập Trình Pic] Bài 8: Điều chế độ rộng xung điều khiển động cơ

 

Chào các bạn!

Hôm nay mình sẽ giới thiệu với các bạn về cách lập trình để điều chế độ rộng xung điều khiển động cơ.

I. SƠ ĐỒ NGUYÊN LÝ KẾT NỐI PWM TRÊN KIT PIC STARTER

 

II. SƠ LƯỢC VỀ PWM CỦA PIC 16F877A

1) PWM là gì?

- PWM là một bộ điều chế độ rộng xung. Có hai thông số (tạm gọi đơn giản như vậy, và có lẽ cũng chỉ quan tâm đến hai thông số này với PWM) quan trọng của PWM là chu kỳ xung T và thời gian t1 của mức logic 0, trong ví dụ này thì t1 tương ứng với value. Để "điều chế độ rộng xung" thì chúng ta sẽ giữ nguyên T và thay đổi t1, theo yêu cầu của bài toán cụ thể. Value trong ví dụ sau lấy được từ đầu vào anlaog, chu kỳ (hay tần số) của xung được chọn lựa từ PC thông qua cổng truyền thông nối tiếp RS232.


2) PWM dùng vào mục đích gì?

- Có nhiều ứng dụng cho nó, ví dụ truyền thông, điều khiển các van bán dẫn trong các biến tần, làm bộ nguồn chuyển mạch,...

3) Ví dụ:

- xung đầu ra được lấy trên chân PortC<2>, điều kiện đầu tiên để sử dụng là phải thiết lập chân này là chân ra bằng cách xóa bit TRISC<2>

- Khi xóa thanh ghi CCP1CON, đầu ra PWM sẽ mặc định được đưa về mức thấp.

Hình 1: hoạt động ở chế độ PWM của CCP1

- Hình 1 thể hiện một sơ đồ khối đơn giản của mô đun CCP ở chế độ PWM

- Đầu ra PWM (hình 2) có hai tham số, đó là chu kỳ xung và độ rộng xung.

 

Hình 2: Dạng xung ra

 

4) Chu kỳ xung

+ Chu kỳ xung được xác định bằng cách ghi vào thanh ghi PR2. Giá trị chu kỳ xung được xác định theo công thức

+ Tần số được xác định như sau

f= 1/TPWM

Khi giá trị TMR2 = giá trị thanh ghi PR2, 3 sự kiện sau đây sẽ xảy ra trong chu kỳ tiếp theo

- TMR2 được xóa

- CCP1 sẽ được set nếu độ rộng xung đang thiết lập là khác 0 %.

- Giá trị độ rộng xung đang được lưu trong CCPR1L sẽ được đưa vào CCPR1H.

5) Độ rộng xung
Độ rộng xung được xác định bằng cách ghi vào thanh ghi CCPR1L và hai bít 5 và 4 của thanh ghi CCP1CON. Độ phân giải của độ rộng xung lên đến 10 bít. CCPR1L chứa 8 bít có trọng số cao nhất và CCP1CON (5:4) chứa 2 bít có trọng số thấp nhất. Đẳng thức sau được xác định độ rộng xung

PWM duty cycle =(CCPR1L:CCP1CON<5:4>) •TOSC • (TMR2 prescale value)

Giá trị thanh ghi CCPR1L và CCP1CON<5:4> có thể được ghi vào bất kỳ thời điểm nào. nhưng giá trị độ rộng xung không được chốt vào CCPR1H cho đê khi PR2 = TMR2. trong chế đọ PWM thì thanh fhi CCPR1H là thanh ghi chỉ đọc.


6) Thiết lập chế độ làm việc PWM cho CCP
Các bước thiết lập CCP làm việc ở chế độ PWM
- Thiết lập chu kỳ xung ra bằng cách ghi vào thanh ghi PR2
- Thiết lập độ rộng xung PWM bằng cách ghi vào thanh ghi CCPR1L và CCP1CON<5:4>
- Thiết lập port C<2> bằng cách xóa bít TrisC<2>
- thiết lấp hệ số Prescale của Timer 2 và cho phép Timer2 hoạt động bằng cách ghi vào T2CON
- Cấu hình cho CCP1 làm việc ở chế độ PWM

 

III. CHƯƠNG TRÌNH DEMO

Các bạn download project demo: Tại đây.

IV. VIDEO DEMO

Các tin khác

Gửi bình luận
Chất lượng hàng đầu
Chất lượng hàng đầu

Cam kết tất cả sản phẩm chính hãng 100%

Giao hàng siêu nhanh
Giao hàng siêu nhanh

Chúng tôi cam kết giao hàng trong 24h

Mua hàng tiết kiệm
Mua hàng tiết kiệm

Giảm giá & khuyến mãi với ưu đãi cực lớn

Hỗ trợ online 24/7
Hỗ trợ online 24/7

Gọi ngay 0878842345 để được tư vấn

zalo
Hotline
0878842345