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
34 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ả

interrupts()

Giới thiệu

Nếu bạn chưa biết Ngắt (interrupt) là gì, vui lòng tham khảo thêm tại bài attachInterrupt().

Mặc định, Arduino luôn bật các ngắt nên trong phần setup(), bạn không cần gọi hàm này để bật các ngắt. Hàm interrupts() sẽ bật toàn bộ các ngắt đã được cài đặt. Nếu vì lý do nào đó bạn tắt các ngắt bằng hàm noInterrupts(), bạn sử dụng hàm này để bật lại các ngắt.

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

noInterrupts()

Giới thiệu

Nếu bạn chưa biết Ngắt (interrupt) là gì, vui lòng tham khảo thêm tại bài attachInterrupt().

Khi cần chạy các đoạn chương trình yêu cầu chính xác về thời gian, bạn cần tắt các ngắt để Arduino chỉ tập trung vào xử lý các tác vụ cần thiết và chỉ duy nhất các tác vụ này. Các ngắt chạy nền sẽ không được thực thi sau khi gọi hàm noInterrupts().

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