- Vật liệu cần thiết
- Sơ đồ mạch
- Động cơ Servo là gì?
- Giải thích mã Arduino
- Điều khiển nhiều Servos với Arduino- Làm việc:
Sử dụng một hoặc hai Servo với Arduino rất dễ dàng nhưng nếu chúng ta muốn sử dụng nhiều hơn một Servo Motors thì sao?
Ở đây, chúng tôi sẽ chỉ cho bạn cách điều khiển Nhiều Động cơ Servo bằng Arduino. Việc kết nối nhiều Động cơ Servo với Arduino có vẻ dễ dàng và nhưng nếu chúng ta kết nối tất cả các Servo với chân cung cấp Arduino thì chúng sẽ không hoạt động chính xác vì thiếu đủ dòng điện để điều khiển tất cả các động cơ. Vì vậy, bạn phải sử dụng nguồn điện riêng cho động cơ, có thể là từ một số bộ điều hợp (5v 2A) hoặc từ pin 9v chất lượng tốt.
Vật liệu cần thiết
- Arduino UNO
- Động cơ Servo
- Nguồn cấp
- Breadboard
- Kết nối dây
Sơ đồ mạch
Động cơ Servo là gì?
Trước khi đi vào chi tiết, trước tiên chúng ta nên biết về Servo Motors.
Động cơ servo có sẵn ở các hình dạng và kích thước khác nhau. Một động cơ servo sẽ chủ yếu có dây, một dây dành cho điện áp dương, dây nối đất và dây cuối cùng dành cho cài đặt vị trí. Dây ĐỎ được kết nối với nguồn, dây Đen được nối với đất và dây VÀNG được kết nối với tín hiệu.
Động cơ servo là sự kết hợp của động cơ DC, hệ thống điều khiển vị trí, bánh răng. Vị trí của trục của động cơ DC được điều chỉnh bởi thiết bị điện tử điều khiển trong servo, dựa trên tỷ lệ làm việc của tín hiệu PWM ở chân SIGNAL.
Nói một cách đơn giản, thiết bị điện tử điều khiển điều chỉnh vị trí trục bằng cách điều khiển động cơ DC. Dữ liệu liên quan đến vị trí của trục được gửi qua chân SIGNAL. Dữ liệu vị trí tới điều khiển phải được gửi dưới dạng tín hiệu PWM thông qua chân Tín hiệu của động cơ servo.
Tần số của tín hiệu PWM (Điều chế độ rộng xung) có thể thay đổi tùy theo loại động cơ servo. Điều quan trọng ở đây là TỶ LỆ NHIỆM VỤ của tín hiệu PWM. Dựa trên NHIỆM VỤ NÀY, thiết bị điện tử điều khiển điều chỉnh trục.
Như thể hiện trong hình bên dưới, để trục được di chuyển đến 9o đồng hồ, TURN ON RATION phải là 1 / 18.ie. 1ms thời gian BẬT và 17ms thời gian TẮT trong tín hiệu 18ms.
Để trục được di chuyển đến đồng hồ 12o, thời gian BẬT của tín hiệu phải là 1,5ms và thời gian TẮT phải là 16,5ms. Tỷ lệ này được giải mã bởi hệ thống điều khiển trong servo và nó điều chỉnh vị trí dựa trên nó. PWM này ở đây được tạo bằng cách sử dụng ARDUINO UNO.
Trước khi kết nối Servo với Arduino, bạn có thể kiểm tra servo của mình với sự trợ giúp của Mạch kiểm tra động cơ Servo này. Cũng kiểm tra các dự án Servo bên dưới của chúng tôi:
- Điều khiển động cơ servo bằng cảm biến linh hoạt
Giải thích mã Arduino
Mã Arduino hoàn chỉnh cho Điều khiển nhiều Servo được đưa ra ở cuối.
Arduino có thư viện cho Servo Motors và nó xử lý tất cả những thứ liên quan đến PWM để xoay servo, bạn chỉ cần nhập góc mà bạn muốn xoay và có chức năng servo1.write (angle); sẽ xoay servo theo góc mong muốn.
Vì vậy, ở đây chúng tôi bắt đầu bằng cách xác định thư viện cho động cơ Servo.
#include
Trong đoạn mã dưới đây, chúng tôi đang khởi tạo tất cả bốn Servo là Servo1, Servo2, Servo3 và Servo4.
Servo servo1; Servo servo2; Servo servo3; Servo servo4;
Sau đó, chúng tôi đang thiết lập tất cả chân đầu vào của servo với Arduino. Như được hiển thị trong đoạn mã dưới đây, Servo1 được kết nối với chân thứ 3 của Arduino. Bạn có thể thay đổi các chân cắm theo ý mình nhưng hãy nhớ rằng nó phải là chân PWM. Sử dụng Servo với các chân kỹ thuật số của Arduino là không đáng tin cậy.
void setup () { servo1.attach (3); servo2.attach (5); servo3.attach (6); servo4.attach (9); }
Bây giờ, trong hàm void loop (), chúng ta chỉ đang xoay tất cả servo từ 0 đến 180 độ và sau đó là 180 đến 0 độ. Độ trễ được sử dụng trong đoạn mã dưới đây được sử dụng để tăng hoặc giảm tốc độ của servo vì nó ảnh hưởng đến tốc độ tăng hoặc giảm của biến 'i'.
void loop () { for (int i = 0; i <180; i ++) { servo1.write (i); servo2.write (i); servo3.write (i); servo4.write (i); chậm trễ (10); } for (i = 180; i> 0; i-- ) { servo1.write (i); servo2.write (i); servo3.write (i); servo4.write (i); chậm trễ (10); } }
Điều khiển nhiều Servos với Arduino- Làm việc:
Tất cả chúng ta đều phải đối mặt với vấn đề hiện tại khi sử dụng nhiều hơn hai Servos với một Arduino. Giải pháp duy nhất cho việc này là kết nối nguồn điện bên ngoài với lượng dòng điện thích hợp (trong dự án này tôi đã sử dụng 2A với nguồn 9v). Đối với nguồn điện bên ngoài, bạn có thể sử dụng Bộ điều hợp, RPS (Dụng cụ cung cấp điện được điều chỉnh) hoặc pin 9v volt chất lượng tốt, ngoài ra bạn có thể sử dụng cổng USB của máy tính xách tay để cấp nguồn cho Servo nhỏ. Để sử dụng nguồn cung cấp bên ngoài, bạn chỉ cần nối đất Arduino với nguồn tiếp đất bên ngoài.
Sử dụng mã Arduino được cung cấp bên dưới để lập trình Arduino của bạn và kết nối tất cả các Động cơ Servo như được hiển thị trong sơ đồ mạch với nguồn điện thích hợp cho Động cơ. Do đó, tất cả các servos sẽ hoạt động cùng nhau mà không có bất kỳ sự gián đoạn nào.