Arduino通过串口控制舵机角度


版权声明:本文为博主原创文章,未经博主允许不得转载。

发布

实例效果

本实例,实现通过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) 函数控制舵机的角度