因為某個專案開始要玩馬達
之前學會操控的是伺服馬達SG90,但這顆馬達只能轉動<180度,對於需要旋轉的機構還是有所限制
找了很多資料發現有可以360度旋轉的馬達MG996R360,今天參考2個網頁,終於寫出可以控制順時針轉動跟逆時針轉動,並運用可變電阻調整轉速,因為找到的中文資料都是MG996R180度的,摸索了一下終於完成這個程式,如果湊4顆就可以玩開車了
https://www.youtube.com/embed/YypeOdehXSE
下方是程式碼
/*--------------------------請複製分隔線下方的資料--------------------------
#include <Servo.h>
#include <Servo.h>
Servo MG996R360; // 建立一個 servo 物件,最多可建立 12個 servo
int potPin = 17; // 可變電阻連接的 pin 腳於A3
int R; // 從可變電阻來的數值
int MG_stop = 93; //每個馬達停止的值可能略有不同,如果無法停止可以微調這個值,此值應該是接近90
void setup() {
Serial.begin(9600);
MG996R360.attach(18); // 將 servo 物件連接到 A4
MG996R360.write(0); // 順時針測試
delay(1000); // 等待 1s 讓 servo 走到指定位置
MG996R360.write(180); // 逆時針測試
delay(1000); // 等待 1s 讓 servo 走到指定位置
MG996R360.write(MG_stop); // 停止
}
void loop() {
R = analogRead(potPin);
R = map(R, 0, 900, 0, 10); // 將可變電阻0-900轉換為0-10
Serial.print(R);
//控制轉向與轉速
if(R < 4){
Serial.println(" Clockwise ");
MG996R360.write(MG_stop-4+R);
}else if(R >= 4 && R <= 6 ){
Serial.println(" sent Stopped ");
MG996R360.write(MG_stop);
}else if(R > 6){
Serial.println(" anti-clockwise ");
MG996R360.write(MG_stop-5+R);
}
delay(15);
}
--------------------------請複製分隔線上方的資料--------------------------*/
參考資料
Arduino筆記(15):控制伺服馬達 Servo
https://atceiling.blogspot.com/2017/03/arduino.html
這網頁用的MG996R是180度的
How to use Continuous 360 Servo with Arduino
https://robojax.com/learn/arduino/?vid=robojax-servo-360
可以請教一下 nano 下面那塊板子的型號嗎
回覆刪除arduino nano UNO多用 擴展板 (E006)
刪除應該用這個去找會找到,滿好用的