Hỏi Đáp

Xung PWM | Cộng đồng Arduino Việt Nam

Kiến thức cơ bản

Xung là các trạng thái cao / thấp (HIGH/LOW) về mức điện áp được lặp đi lặp lại. Đại lượng đặc trưng cho 1 xung PWM (Pulse Width Modulation) bao gồm tần số (frequency) và chu kì xung (duty cycle).

Tần số là gì ?
Tần số là số lần lặp lại trong 1 đơn vị chức năng thời hạn. Đơn vị tần số là Hz, tức là số lần lặp lại giao động trong 1 giây .

Lấy ví dụ, 1Hz = 1 dao động trong 1 giây. 2Hz = 2 dao động trong 1 giây. 16MHz = 16 triệu dao động trong 1 giây.

Như vậy theo quy tắc tam suất : 16 triệu giao động – 1 giây — > 1 xê dịch tốn 1/16. 000.000 ( giây ) = 0,0625 ( micro giây )
Cách xác lập 1 xê dịch như thế nào ? Đa phần những bạn mới điều tra và nghiên cứu điện tử thường mắc sai lầm đáng tiếc ở việc xác lập 1 xê dịch. Dao động được xác lập từ trạng thái mở màn và kết thúc ngay trước khi trạng thái khởi đầu được lặp lại .

Cách xác định 1 dao động

Như vậy thường thì, 1 xê dịch sẽ gồm có 2 trạng thái điện : mức cao ( x giây ) và mức thấp ( y giây ). Tỉ lệ Phần Trăm thời hạn giữa 2 trạng thái điện này chính là chu kì xung .
Với x / y = 0 % ta có xung chứa hàng loạt điện áp thấp ( khái niệm xung nên hiểu lan rộng ra )

Với x/y = 50% thì 50% thời gian đầu, xung có điện áp cao, 50% sau xung có điện áp thấp.

Với x / y = 100 % ta có xung chứa hàng loạt điện áp cao .
Tóm lại, với 1 xung ta có :

  1. Tần số: để tính toán ra được thời gian của 1 xung
  2. Chu kì xung: bao nhiêu thời gian xung có mức áp cao, bao nhiêu thời gian xung có mức áp thấp.

Liên hệ với Arduino

Với kỹ năng và kiến thức cơ bản về xung, những bạn sẽ hiểu rõ hơn về xung trong trong thực tiễn như thế nào .

Xung khi sử dụng với hàm analogWrite trong Arduino

Giữa 2 vạch màu xanh lá cây là 1 xung.

analogWrite tỉ lệ chu kì xung
analogWrite(0) 0/255 0%
analogWrite(64) 64/255 25%
analogWrite(127) 127/255 50%
analogWrite(191) 191/255 75%
analogWrite(255) 255/255 100%

Hàm analogWrite ( ) trong Arduino giúp việc tạo 1 xung thuận tiện hơn. Hàm này truyền vào tham số được cho phép đổi khác chu kì xung, bạn hoàn toàn có thể đo lường và thống kê ra được chu kì xung như ở bảng trên. Tần số xung được Arduino thiết lập mặc định .
Đối với board Arduino Uno, xung trên những chân 3,9,10,11 có tần số là 490H z, xung trên chân 5,6 có tần số 980H z. Làm thế nào để tạo ra những xung có tần số nhanh hơn ? Bạn hoàn toàn có thể tìm hiểu thêm thêm những thư viện riêng tương hỗ việc này. Trong mã nguồn Arduino gốc không tương hỗ phần này .

Lưu ý: xung điều khiển servo có tên gọi PPM (Pulse Position Modulation) khác với xung PWM.