Arduino通过串口控制舵机角度实验

接上篇  光敏电阻实验   


要做向日葵式的太阳能收集器,除了找到光线外,还需要控制方向的部件,这里选择使用舵机控制方向,本实验室是用的是9克舵机。

舵机一般都是有可控制范围的,标准舵机是90度,也有小于90度的也有360度的舵机,本实验是180度的舵机。

这次实验除了实验了舵机的使用,还涉及到了串口的数据读取与发送。


1接线方法


PS:板子上数字接口,有些数字旁边有个~,有些没有,~代表有PWN,板子上也会有说明,可以留意一下。


2程序

#include <Servo.h> //引入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毫秒
}


接好线上电烧好程序


打开串口,输入0-180的数值,记得是数值哦,

因为程序没有做数据验证如果输入其他会。。。。。。大家可以自己试试看。

正常输入数值,舵机就会转动相应的角度。



你可能感兴趣的:(串口,arduino,实验,9克舵机)