Arduino串口控制舵机机械臂

本文介绍了如何利用ArduinoNano作为主控板,通过串口通信控制由四个SG90舵机组成的机械臂,通过接收a,s,d字符并解析数字角度值,实现对舵机的精确控制。
摘要由CSDN通过智能技术生成

 

Arduino nano作为主控板,控制由四个SG90舵机组成的机械臂,原先想着用四个电位计控制舵机转动,结果舵机一直抖动,索性就使用串口类似at指令控制舵机转动。使用的串口中断,通信的数据也是 字母+数字 的格式,字母代表舵机的编号,目前只控制三个舵机,对应的字母分别是 a,s,d,数字代表需要转动到的角度。

以下是代码。 

#include <Servo.h>
 
Servo myservo;
Servo myservo1;
Servo myservo2;

int angle = 60;
int angle1 = 140;
int angle2 = 80;

boolean stringComplete = false;

void setup()
{
  Serial.begin(9600);

  myservo.attach(2);
  myservo1.attach(3);
  myservo2.attach(4);
  myservo.write(angle);
  myservo1.write(angle1);
  myservo2.write(angle2);
}
 
void loop()
{
  if (stringComplete) {

    myservo.write(angle);
    myservo1.write(angle1);
    myservo2.write(angle2);

    Serial.print("angle:");
    Serial.println(angle);
    Serial.print("angle1:");
    Serial.println(angle1);
    Serial.print("angle2:");
    Serial.println(angle2);
    Serial.println();
    stringComplete = false;
  }

}


void serialEvent() {
  char inChar = (char)Serial.read();
  if (inChar == 'a'){
    angle = Serial.parseInt();
    stringComplete = true;
  }
  if (inChar == 's'){
    angle1 = Serial.parseInt();
    stringComplete = true;
  }
  if (inChar == 'd'){
    angle2 = Serial.parseInt();
    stringComplete = true;
  }
}

  • 9
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值