实例效果
本实例,实现通过Arduino IDE的串口监视器,控制舵机的角度,例如输入:90,则舵机会转到90度的位置。
本实例程序打包下载地址:
https://u16460183.ctfile.com/fs/16460183-295173181
元件说明
舵机,是一个可以转向指定角度的动力装置,可以选择购买扭力大的舵机,可以抬举大重量的东西。
舵机种类很多,有普通舵机和数字舵机,还有分可以转动不同角度的90度180度等等,甚至有些可以360度旋转。
引脚说明
舵机一般三条线:
地线(GND) | 棕色或黑色 |
---|---|
电源线(VCC) | 红色 |
信号线(IN) | 橙色或白色 |
BOM表
Arduino UNO | x 1 | |
舵机 | x 1 | |
USB数据线 | x 1 |
接线
注意:板子上的数字接口,有些数字旁边有个~,有些却没有,其实~代表具有有PWM功能,板子上也会有说明,可以留意一下。(PWM又叫脉冲宽度调制,请自行搜索)
程序代码
//引入lib
Servo myservo; // 创建一个伺服电机对象
char inByte = 0; //串口接收的数据
int angle = 0; //角度值
String temp = ;//临时字符变量,又或者说是缓存用的吧
void setup()
{
myservo.attach(9); //定义舵机的引脚为9,舵机只能是10,或者9引脚
Serial.begin(9600); //设置波特率
}
void loop()
{
while (Serial.available() > 0) //判断串口是否有数据
{
inByte = Serial.read();//读取数据,串口一次只能读1个字符
temp += inByte;//把读到的字符存进临时变量里面缓存,
//再继续判断串口还有没有数据,知道把所有数据都读取出来
}
if(temp != ) //判断临时变量是否为空
{
angle = temp.toInt(); //把变量字符串类型转成整型
Serial.println(angle); //输出数据到串口上,以便观察
}
temp = ;//请看临时变量
myservo.write(angle); //控制舵机转动相应的角度。
delay(100);//延时100毫秒
}
接好线,上传完程序,打开Arduino IDE的串口监视器,输入0-180的数字,并发送,就可以控制舵机的转动到指定角度了。
程序思路
- 1,我们需要引入舵机的库,#include
- 2,通过 Servo myservo 创建舵机对象
- 3,使用 myservo.attach(9); 定义引脚9为舵机
- 4,通过 myservo.write(angle) 函数控制舵机的角度