串口控制舵机
通过串口向Arduino发送指令控制一台舵机的原理和示例程序
代码
#include <Servo.h>
Servo myServo; //创建Servo对象myServo
int dataIndex = 0; //创建整数型变量,存储输入数据序列号
void setup() {
myServo.attach(6);
Serial.begin(9600); //启动串口通讯,传输波特率9600
Serial.println("Please input serial data.");
}
void loop() { // 检查串口缓存是否有数据等待传输
if ( Serial.available()>0 ) {
dataIndex++; // 处理数据序列号并通过串口监视器显示
Serial.print("dataIndex = ");
Serial.print(dataIndex);
Serial.print(" , ");
int pos = Serial.parseInt(); // 解析串口数据中的整数信息并赋值给变量pos
Serial.print("Set servo position: ");
Serial.println(pos); // 通过串口监视器显示变量pos数值
myServo.write(pos); // 使用pos变量数值设置伺服电机
delay(15);
}
}
代码解析
if ( Serial.available()>0 )
串口接收函数,从串口接收到大于0的进入控制舵机程序
dataIndex++; // 处理数据序列号并通过串口监视器显示
Serial.print("dataIndex = ");
每次从串口接收数据,闲显示序列号并加1
int pos = Serial.parseInt(); // 解析串口数据中的整数信息并赋值给变量pos
Serial.print("Set servo position: ");
myServo.write(pos); //
解析串口数据中的整数信息并赋值给变量pos, myServo.write(pos);
使用pos变量数值设置伺服电机,
结束
我希望,你能活出最精彩的自己;我希望,你能见识到令你惊奇的事物;我希望,你能体验未曾有过的情感;我希望,你能遇见一些想法不同的人;我希望,你能为你自己的人生感到骄傲。如果你自己还没有做到,我希望,你有勇气重头再来。 – 大卫・芬奇 《返老还童》