目标:matlab向串口发送“1”,arduino接收串口数据后开始控制舵机工作。
用Arduino 控制舵机的方法有两种,
一种是通过Arduino 的普通数字传感器接口产生占空比不同的方波,模拟产生PWM 信号进行舵机定位,
第二种是直接利用Arduino 自带的Servo 函数进行舵机的控制,这种控制方法的优点在于程序编写,缺点是只能控制2 路舵机,因为Arduino 自带函数只能利用数字9、10 接口。
本系统用的Arduino自带的Servo函数
首先在setup()函数中初始化串口以及舵机状态
然后再执行循环的loop()函数,再其中读取串口数据,并调用舵机控制函数
舵机控制函数主要是实现计时每33ms舵机角度增加(或减小)1度的功能。
void checkServo( ) {
static uint32_t Timer;
//millis()函数:获取机器运行的时间长度,单位ms。
//系统最长的记录时间为9小时22分,如果超出时间将从0开始
if (Timer > millis())
return;
Timer = millis() + every;
if (servoTarget > po