极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 22665|回复: 8

学习啦,Arduino串口控制六路舵机实验

[复制链接]
发表于 2014-10-23 13:58:58 | 显示全部楼层 |阅读模式
本帖最后由 轻吟浅唱 于 2014-10-23 14:00 编辑

因为之前买了一个六路机械臂,但木有买舵机控制器,而且自己又打算用arduino uno来作舵机的控制,所以对舵机的控制学习了不少,下面是一段串口控制六路舵机的实验代码,串口每输入一段字符指令相应的舵机就会有对应角度偏转,,,,,。
         



#include <Servo.h>    //这里是头文件,可以在“sketch”-“Import Library”-“servo”调用出来
Servo myservo_1;   //定义一号舵机名{Servo [声明舵机的名字,可以随意,后面需要调用]}
Servo myservo_2;   //定义二号舵机名
Servo myservo_3;   //定义三号舵机名
Servo myservo_4;
Servo myservo_5;
Servo myservo_6;
void setup()   //这里前面的文章提过了,指的是函数在程序开始时使用,可以初始化变量、接口模式、启用库等
{
  myservo_1.attach(1);   //定义一号舵机接口,连接到Arduino板子上的pin1
  myservo_2.attach(2);   //定义二号舵机接口,连接到Arduino板子上的pin2
myservo_3.attach(3);    //定义号三号舵机接口,连接到Arduino板子上的pin3
myservo_4.attach(4);
myservo_5.attach(5);
myservo_6.attach(6);
  Serial.begin(19200);   //设置波特率为19200,波特率
  Serial.print("Ready");   //板子运行的时候返回“Ready”提示
}
void loop()
{
  static int v=0;
  if (Serial.available())   //判断语句
  {
    char ch = Serial.read();   //读取串口数据
    switch(ch)
    {
      case '0'...'9':
      v = v*10 + ch - '0';   //字符转换成十进制
      break;
      case 'a':   //如果数据后带a,则表示是一号舵机的数据,比如串口发送85a
      myservo_1.write(v); //用于设定舵机旋转角度的语句,可设定的角度范围是0°到180°,“V”得到所输入的值而改变角度,比如85a为85度角

      v = 0;
      break;

      case 'b':   //如果数据后带b,则表示是二号舵机的数据,比如串口发送85a

      myservo_2.write(v);   //用于设定舵机旋转角度的语句,可设定的角度范围是0°到180°,“V”得到所输入的值而改变角度,比如90b为90度角
      v = 0;
      break;
      case 'c':   
      myservo_3.write(v);   
      v = 0;
      break;
case 'd':  
         myservo_4.write(v);   
      v = 0;
      break;
case 'e':  
         myservo_5.write(v);   
      v = 0;
      break;
case 'f':  
         myservo_6.write(v);   
      v = 0;
      break;

    }
  }
}




本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2014-10-23 19:18:17 | 显示全部楼层
额,,,你确定是有串口控制舵机?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2014-10-23 21:05:27 | 显示全部楼层
努力微笑 发表于 2014-10-23 19:18
额,,,你确定是有串口控制舵机?

是的,不过一次只能控制一个,有上位机更好
回复 支持 反对

使用道具 举报

发表于 2014-10-23 21:45:30 | 显示全部楼层
噢,原来如此
回复 支持 反对

使用道具 举报

发表于 2015-7-31 19:57:56 | 显示全部楼层
目前正在做Matlab和arduino串口通信控制2路舵机,看了您的例程,很受启发,请问怎么让arduino接收负数呢?
回复 支持 反对

使用道具 举报

发表于 2015-8-11 23:00:06 | 显示全部楼层
初学者学习
回复 支持 反对

使用道具 举报

发表于 2015-8-16 21:02:08 | 显示全部楼层
我也需要这个,有谁有这样的上位机软件,共享一下啦!!
回复 支持 反对

使用道具 举报

发表于 2016-4-6 21:16:35 | 显示全部楼层
为什么我的串口数据发送,85a一点反应没有,是串口数据没有发送成功吗?初学者,求解答,谢谢了
回复 支持 反对

使用道具 举报

发表于 2016-4-10 10:21:12 | 显示全部楼层
初学者学习
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-3-29 02:14 , Processed in 0.042792 second(s), 25 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表