Khi điều khiển động cơ Servo hay bất kì động cơ nào khác ta sẽ sử dụng một biến trở để điều khiển tốc độ của các động cơ.
Trong bài viết này chúng ta sẽ cùng nhau tìm hiểu cách mà một biến trở điều khiển một động cơ Servo thông qua một board Arduino như thế nào.
1. Chuẩn bị
- 01 x Arduino MEGA + cáp nạp.
- 01 x Động cơ Servo MG 966R.
- 01 x Biến trở.
- Breadboard và dây cắm.
- Nguồn 5VDC cấp cho động cơ Servo.
2. Sơ đồ nguyên lí
Hình 1. Sơ đồ nguyên lí để điều khiển động cơ Servo được thiết kế trong phần mềm Proteus.
3. Lập trình và mô phỏng
3.1. Lập trình
#include <Servo.h> int analog_input,angle=0, offset=100, analog_output=0, cycle=0; Servo myservo; uint32_t newtime =0, oldtime=0; void setup() { pinMode(A0,INPUT); Serial.begin(9600); //Bật cổng Serial myservo.attach(9); } void loop() { newtime=millis(); if(newtime-oldtime>=offset) { analog_output=analog_input/cycle; angle=map(analog_output,0,1023,0,180); myservo.write(angle); oldtime=newtime; analog_input=cycle=0; } else { analog_input+=analogRead(A0); cycle++; } Serial.print(analog_output); Serial.print(" "); Serial.println(angle); }
3.2. Kết quả mô phỏng trên phần mềm Proteus
Chúng ta cùng xem kết quả được mô phỏng trên phần mềm Proteus qua video sau nhé!
4. Sơ đồ đấu nối mạch thực tế
Hình 2. Sơ đồ đấu nối điều khiển động cơ Servo.
5. Kết luận
Chúng ta hoàn toàn có thể làm rất nhiều thứ với Servo. Servo được dùng trong dự án kBOT – Wifi Robot đã được dùng trong việc điều chỉnh camera, cánh tay robot và radar địa hình.
Hãy dùng Arduino và Servo làm nên những ứng dụng độc đáo nhé!