[VI ĐIỀU KHIỂN PIC] - BÀI 11: ĐIỀU KHIỂN ĐỘNG CƠ RC-SERVO - BeeLab

Thursday, June 8, 2017

[VI ĐIỀU KHIỂN PIC] - BÀI 11: ĐIỀU KHIỂN ĐỘNG CƠ RC-SERVO

Giới thiệu về động cơ servo

Hình ảnh thực tế động cơ RC-SERVO

Động cơ servo có 3 đây, 1 dây nguồn +6V, 1 dây GND, 1 đây

PWM. Tùy từng loại mà màu dây có đôi chút khác biệt

 Nguyên lý điều khiển động cơ RC-SERVO

Điều khiển RC Servo chính là điều khiển tín hiệu vào dây PWM để RC Servo quay theo góc mà mình mong muốn. Tín hiệu PWM cho RC Servo có chu kỳ  20ms, độ  rộng xung thay đổi từ 1ms đến 2ms, mô tả theo hình bên dưới:

Mô tả góc quay trục động cơ theo độ rộng xung PWM

Mô phỏng động trên Proteus và lập trình dùng CCS :

Nút Reset: Tích cực mức thấp, khi nút được nhấn, góc quay motor = 0 độ;
Nút Tăng: Tích cực mức thấp, khi nút được nhấn, góc quay motor tăng thêm 10 độ.
Nút Giảm: Tích cực mức thấp, khi nút được nhấn, góc quay motor giảm thêm 10 độ.



LẬP TRÌNH DÙNG CCS
Để lập trình điều khiển động cở RC-SERVO ta chỉ cần tạo một tín hiệu tạo xung PWM có chu kỳ T = 20ms, hay f = 1/20 ms = 50Hz, và độ rộng xung thay đổi từ 1ms đến 2ms. Đối với pic 16F877a, ta có thể sử dụng ngắt timer để tạo ra tín hiệu xung PWM ở chân RC0.
Ta có 20ms = 20*1000us. Link code + mô phỏng