舵机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() 断开舵机连接