Xung PPM

Bài này giới thiệu về xung PPM (Pulse Position Modulation) được sử dụng để điều khiển servo. Về bản chất PPM cũng là một xung, do vậy bạn cần tham khảo về xung trong bài xung PWM trước khi đọc tiếp nội dung của bài này.

Xung PPM khác với PWM ở chỗ:

  1. tần số thông thường có giá trị trong khoảng 50Hz (20 mili giây), không quan trọng
  2. thời gian xung ở mức cao chỉ từ 1ms đến 2ms, rất quan trọng.
  3. có thể có nhiều hơn 1 sự thay đổi trạng thái điện cao/thấp 

Nắm bắt được 2 ý trên ta đã có thể phân biệt được xung PPM và xung PWM giống nhau và khác nhau như thế nào.

Thời gian xung ở mức cao quy định góc quay của RC servo. 

Với thời gian 1ms mức cao, góc quay của servo là 0, 1.5ms góc quay 90 và 2ms góc quay là 180. Các góc khác từ 0-180 được xác định trong khoảng thời gian 1-2ms.

Lưu ý: có thể ghép nhiều xung trong cùng 1 thời gian là 20ms để xác định vị trí góc của nhiều servo cùng 1 lúc. Tối đa là 10 servo.

Điều khiển 3 servo cùng lúc

Reference Tags: 
lên
35 thành viên đã đánh giá bài viết này hữu ích.
Các bài viết cùng tác giả

Bài 7: Cách viết chương trình không sử dụng hàm delay

Thông thường trong chương trình Arduino, khi cần dừng lại để chờ qua 1 khoảng thời gian chúng ta thường sử dụng hàm delay để thực hiện việc chờ này. Tuy nhiên cách làm này gây hao phí thời gian của CPU một cách vô ích, chúng ta không thể vừa dừng lại để chờ, vừa chạy 1 đoạn chương trình khác được.

lên
40 thành viên đã đánh giá bài viết này hữu ích.
Từ khóa: 

detachInterrupt()

Hàm detachInterrupt() sẽ tắt các ngắt đã được kích hoạt tương ứng với thông số truyển vào. Giả sử sau khi nhấn nút bấm lần đầu tiên đèn led sẽ tắt nhưng nhấn lần thứ 2 đèn sẽ không tắt nữa. Lúc này cần dùng đến detachInterrupt() để tắt ngắt chúng ta đã tạo ra.

lên
8 thành viên đã đánh giá bài viết này hữu ích.