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
16 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
28 thành viên đã đánh giá bài viết này hữu ích.
Từ khóa: 

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
4 thành viên đã đánh giá bài viết này hữu ích.