
Mục lục:
2025 Tác giả: John Day | [email protected]. Sửa đổi lần cuối: 2025-01-23 15:15



PWM LÀ GÌ?
PWM STANDS FOR PULSE WIDTH MODULATION là một kỹ thuật mà độ rộng của xung thay đổi.
Để hiểu rõ khái niệm này, hãy xem xét một xung đồng hồ hoặc bất kỳ tín hiệu sóng vuông nào mà nó có chu kỳ làm việc 50% có nghĩa là chu kỳ Ton và Toff là như nhau, Tổng thời lượng tín hiệu cao và thời lượng tín hiệu thấp được gọi là tổng khoảng thời gian.
Đối với hình ảnh hiển thị ở trên, sóng này có chu kỳ nhiệm vụ là 50%
Chu kỳ làm việc = (Thời gian BẬT / Tổng thời gian) * 100
ON time - thời gian cho tín hiệu cao
Thời gian TẮT - thời gian đối với tín hiệu thấp Tổng thời gian -Tổng thời gian của xung (cả thời gian BẬT và TẮT)
Bước 1: Chọn Bộ vi điều khiển

Lựa chọn vi điều khiển thích hợp cho dự án, đây là phần thiết yếu của dự án Tín hiệu PWM có thể được tạo ra trong vi điều khiển có kênh PWM (thanh ghi CCP). Đối với dự án này, tôi dự định gắn bó với pic16f877. bạn có thể tải xuống liên kết biểu dữ liệu được cung cấp bên dưới
Bảng dữ liệu PIC16F877a bấm vào đây
Mô-đun CCP chịu trách nhiệm tạo ra tín hiệu PWM. CCP1 và CCP2 được ghép với PORTC. PORTC là một cổng hai chiều rộng 8 bit. Thanh ghi hướng dữ liệu tương ứng là TRISC. Đặt bit TRISC (= 1) sẽ làm cho chân PORTC tương ứng làm đầu vào. Xóa một bit TRISC (= 0) sẽ làm cho chân PORTC tương ứng trở thành đầu ra.
TRISC = 0; // Xóa bit này sẽ làm cho PORTC làm đầu ra
Bước 2: CẤU HÌNH MÔ ĐUN CCP


CCP - CÁC CHẾ ĐỘ CAPTURE / SO SÁNH / PWM
Mỗi mô-đun Capture / Compare / PWM (CCP) chứa một thanh ghi 16 bit có thể hoạt động như một:
• Thanh ghi Capture 16 bit
• Thanh ghi so sánh 16 bit
• Thanh ghi chu kỳ nhiệm vụ PWM Master / Slave
Cấu hình thanh ghi CCP1CON sang chế độ PWM
Đăng ký Mô tả
CCPxCON Thanh ghi này được sử dụng để cấu hình mô-đun CCP cho Capture / Compare / PWM opertaion.
CCPRxL Thanh ghi này chứa các bit 8-Msb của PWM, 2-bit thấp hơn sẽ là một phần của thanh ghi CCPxCON.
TMR2 Bộ đếm chạy tự do sẽ được so sánh với CCPR1L và PR2 để tạo ra đầu ra PWM.
Bây giờ tôi sẽ sử dụng nhị phân để biểu diễn các bit để cấu hình thanh ghi CCP1CON.
tham khảo hình ảnh trên.
CCP1CON = 0b00001111;
Bạn cũng có thể định dạng hex
CCP1CON = 0x0F; // cấu hình thanh ghi CCP1CON cho chế độ PWM
Bước 3: Cấu hình Mô-đun Timer2 (Đăng ký TMR2)

Timer2 là một bộ định thời 8 bit với một bộ định mức trước và một bộ định mức sau. Nó có thể được sử dụng làm cơ sở thời gian PWM cho chế độ PWM của (các) mô-đun CCP. Thanh ghi TMR2 có thể đọc và ghi được và bị xóa khi Reset thiết bị bất kỳ.
Thanh ghi T2CON được hiển thị
Tỷ lệ đặt trước và tỷ lệ đăng sẽ điều chỉnh tần số đầu ra của sóng PWM được tạo ra.
Tần số = tần số xung nhịp / (4 * bộ đếm đặt trước * (PR2-TMR2) * Bộ đếm số lượng bài viết *)
Trong đó Tout = 1 / tần số
T2CON = 0b00000100;
Điều này sẽ tạo ra tinh thể 2,5 KHz @ 1Mhz hoặc 100KHz @ 4MHz (thực tế có một giới hạn đối với biểu dữ liệu cụ thể tham khảo tần số PWM này để biết thêm chi tiết)
đại diện hex
T2CON = 0x04; // kích hoạt T2CON mà không cần cấu hình Prescaler và postscale
Bước 4: Cấu hình PR2 (Đăng ký định kỳ Timer2)
Mô-đun Timer2 có một thanh ghi chu kỳ 8-bit, PR2. Timer2 tăng từ 00h cho đến khi khớp với PR2 và sau đó đặt lại thành 00h trong chu kỳ tăng tiếp theo. PR2 là một thanh ghi có thể đọc và ghi được. Thanh ghi PR2 được khởi tạo thành FFh khi Reset.
Đặt một phạm vi thích hợp cho PR2 sẽ cho phép sử dụng để thay đổi chu kỳ nhiệm vụ của sóng PWM được tạo ra
PR2 = 100; // Đặt thời gian chu kỳ thành 100 để thay đổi chu kỳ nhiệm vụ từ 0-100
Để đơn giản, tôi đang sử dụng PR2 = 100 bằng cách tạo CCPR1L = 80; Có thể đạt được 80% chu kỳ nhiệm vụ.
Bước 5: Định cấu hình Mô-đun CCPR1l
Vì PR2 = 100 CCPR1l có thể được định cấu hình ở bất kỳ đâu trong khoảng từ 0-100 để có được chu kỳ nhiệm vụ mong muốn.
Bước 6: Viết bản phác thảo cho bạn MPLAB X IDE mã được đưa ra dưới đây

#bao gồm
void delay (int a) // hàm tạo độ trễ {
for (int i = 0; i <a; i ++)
{
for (int j = 0; j <144; j ++);
}
}
void main ()
{TRISC = 0; // Xóa bit này sẽ làm cho PORTC làm đầu ra.
CCP1CON = 0x0F; // cấu hình thanh ghi CCP1CON cho chế độ PWM
T2CON = 0x04; // kích hoạt T2CON mà không cần cấu hình Prescaler và postscale.
PR2 = 100; // Đặt thời gian chu kỳ thành 100 để thay đổi chu kỳ nhiệm vụ từ 0-100
trong khi (1) {
CCPR1L = 75; // tạo ra độ trễ chu kỳ nhiệm vụ 75% (1);
}
}
Tôi cũng đã thực hiện một chút sửa đổi đối với mã để tần số của sóng PWM được tạo ra
Đây là mã được mô phỏng trong proteus và sóng PWM đầu ra được hiển thị bên dưới. Để tải nó lên bảng phát triển pic của bạn, hãy sử dụng #include với các bit cấu hình phù hợp.
Cảm ơn bạn
Đề xuất:
Ô tô được điều khiển từ xa - Được điều khiển bằng Bộ điều khiển Xbox 360 không dây: 5 bước

Ô tô được điều khiển từ xa - Được điều khiển bằng Bộ điều khiển Xbox 360 không dây: Đây là các hướng dẫn để tạo ô tô được điều khiển từ xa của riêng bạn, được điều khiển bằng bộ điều khiển Xbox 360 không dây
ESP8266 RGB LED STRIP Điều khiển WIFI - NODEMCU làm điều khiển từ xa hồng ngoại cho dải đèn Led được điều khiển qua Wi-Fi - Điều khiển điện thoại thông minh RGB LED STRIP: 4 bước

ESP8266 RGB LED STRIP Điều khiển WIFI | NODEMCU làm điều khiển từ xa hồng ngoại cho dải đèn Led được điều khiển qua Wi-Fi | Điều khiển bằng điện thoại thông minh RGB LED STRIP: Xin chào các bạn trong hướng dẫn này, chúng ta sẽ học cách sử dụng gật đầu hoặc esp8266 làm điều khiển từ xa IR để điều khiển dải LED RGB và Nodemcu sẽ được điều khiển bằng điện thoại thông minh qua wifi. Vì vậy, về cơ bản bạn có thể điều khiển DÂY CHUYỀN LED RGB bằng điện thoại thông minh của mình
Điều khiển vô tuyến RF 433MHZ bằng HT12D HT12E - Tạo điều khiển từ xa Rf bằng HT12E & HT12D với 433mhz: 5 bước

Điều khiển vô tuyến RF 433MHZ bằng HT12D HT12E | Tạo điều khiển từ xa Rf bằng HT12E & HT12D với 433mhz: Trong phần hướng dẫn này, tôi sẽ chỉ cho bạn cách tạo điều khiển từ xa RADIO bằng cách sử dụng mô-đun bộ thu phát 433mhz với mã hóa HT12E & IC giải mã HT12D.Trong hướng dẫn này, bạn có thể gửi và nhận dữ liệu bằng các LINH KIỆN rất rẻ như: HT
Tự làm bộ điều khiển bay điều khiển đa hệ điều khiển Arduino: 7 bước (có hình ảnh)

Tự làm bộ điều khiển máy bay đa năng điều khiển Arduino: Dự án này là tạo ra một bảng logic máy bay không người lái đa năng linh hoạt nhưng tùy chỉnh dựa trên Arduino và Multiwii
Điều khiển các thiết bị điện của bạn bằng Điều khiển từ xa Tv (Điều khiển từ xa) với Màn hình nhiệt độ và độ ẩm: 9 bước

Điều khiển thiết bị điện của bạn bằng Điều khiển từ xa Tv (Điều khiển từ xa) Có Hiển thị nhiệt độ và độ ẩm: xin chào, tôi là Abhay và đây là blog đầu tiên của tôi về Các thiết bị điện và hôm nay tôi sẽ hướng dẫn bạn cách điều khiển các thiết bị điện bằng điều khiển từ xa bằng cách xây dựng cái này dự án đơn giản. cảm ơn atl lab đã hỗ trợ và cung cấp tài liệu