舵機3條線,紅色接5V,黃色接GND,橙色是資料,插入接口。。
網上教程說用了servo庫後,Arduino開發闆9.10接口不能用analogWrite()語句。是以最好舵機接到這個接口上,免得浪費。
這裡有個教程源碼,一個直接轉角度,一個控制PWM轉角度(這個更加精準的,範圍大500-2500)
============直接轉角度=============
#include <Servo.h> // 聲明調用Servo.h庫
Servo myservo; //建立一個舵機,命名為myservo
Servo myservo2; //建立一個舵機,命名為myservo2
//還有舵機,繼續建立,指令為Servo 名字
#define SERVO_PIN D7 //宏定義舵機控制引腳,指令為#define 舵機名字_PIN 端口 ;
#define SERVO2_PIN D6 //宏定義舵機控制引腳
//上邊的D7 D6是我的wemos D1開發闆(挺便宜的)接口,一般adruino是數字
void setup(){
myservo.attach(SERVO_PIN); // 将D6引腳與聲明的舵機對象連接配接起來
myservo2.attach(SERVO2_PIN); // 将D7引腳與聲明的舵機對象連接配接起來
}
void loop(){
myservo.write(10); //角度10。舵機轉動指令為:舵機名.write(角度);
delay(1000); //延時1秒
myservo2.write(140); //角度140
delay(1000);
}
===========PWM==========
#include <Servo.h> // 聲明調用Servo.h庫
Servo myservo; //建立一個舵機,命名為myservo
Servo myservo2; //建立一個舵機,命名為myservo2
//還有舵機,繼續建立,指令為Servo 名字
#define SERVO_PIN D7 //宏定義舵機控制引腳,指令為#define 舵機名字_PIN 端口 ;
#define SERVO2_PIN D6 //宏定義舵機控制引腳
//上邊的D7 D6是我的wemos.cc接口,一般adruino是數字
unsigned int PWM = 0; //變量pwm用來存儲舵機角度位置,PWM的500對應0度,2500對應舵機的最大角度
//(180度舵機2500對應180度,270度舵機2500對應270度)
void setup(){
myservo.attach(SERVO_PIN); // 将D6引腳與聲明的舵機對象連接配接起來
myservo2.attach(SERVO2_PIN); // 将D7引腳與聲明的舵機對象連接配接起來
}
void loop(){
myservo.writeMicroseconds( 500); //寫入PWM,最小值500,最大值2500.。每個值的角度都不同。
//PWM轉舵機角度指令:舵機名.writeMicroseconds(數值);
delay(1000); //延時1秒
myservo2.writeMicroseconds( 500);
delay(1000);
}
======舵機庫(Servo)的函數==================
attach 連接配接舵機
write 角度控制
writeMicroseconds() 更精準的角度控制
read() 讀上一次舵機轉動角度
attached() 檢查舵機及是否連接配接控制闆上
detach() 斷開舵機連接配接