极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 14507|回复: 3

串口通讯控制舵机问题

[复制链接]
发表于 2016-2-14 00:14:40 | 显示全部楼层 |阅读模式
本人新手,想要通过串口通讯的方式来对舵机进行控制,但是遇到了2个问题,百度了很久也没有找到解决方法,请教一下各位大神。
问题1:比如初始角度设定为140,串口输入100,舵机会转到100度但马上又会转回140度,不知为何
问题2:在输入过一次角度后,之后再输入角度就没有反应了,如果把COM窗口关了再开有的时候可以再输,有的时候不行。
本人开发板是arduino mega2560 电脑是win8.谢谢大家!
回复

使用道具 举报

 楼主| 发表于 2016-2-14 00:25:29 | 显示全部楼层
代码如下:

#include<Servo.h>
Servo steer1;
static int angle1 = 140;
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  steer1.attach(7);
  steer1.write(angle1);
}

void loop() {
  Serial.println(angle1);
  steer1.write(angle1);
  int num = 0;
  char c2 = 0;
  int i = 3;
  while (i > 0)
  {
    if (Serial.available() > 0)
    {
      Serial.println('b');
      c2 = Serial.read();
      Serial.println(c2);
      if (c2 <= '9' && c2 >= '0')
      {
        if (i == 3)
        {
          num += 100 * (c2 - '0');
        }
        else if (i == 2)
        {
          num += 10 * (c2 - '0');
        }
        else
        {
          num += c2 - '0';
        }
        i--;
      }
    }
  }

  angle1 = num;

}
回复 支持 反对

使用道具 举报

发表于 2016-2-14 10:26:42 | 显示全部楼层
0到255的值用一个char传就可以了
回复 支持 反对

使用道具 举报

发表于 2016-2-14 11:47:30 | 显示全部楼层
不要这么麻烦,直接用Serial.parselnt能直接读出整数值!!
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-15 10:46 , Processed in 0.041458 second(s), 21 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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