Arduino 舵机控制小车运动代码解析
#include <servo.h> servo servoLeft; servo servoRight;
void setup () { servoLeft.attach ( 13 ); servoRight.attach ( 12 ); maneuver(200,200,2000) ; maneuver(-200,200, 600) ; maneuver(200,-200, 600 ) ; maneuver (-200,-200,2000) ; maneuver ( 0, 0,-1); }
void loop ( ){ }
void maneuver (int speedLeft, int speedRight, int msTime) { servoLeft.writeMicroseconds ( 1500 + speedLeft) ; servoRight .writeMicroseconds (1500 - speedRight) ; if (msTime == -1) { servoLeft.detach ( ) ; servoRight .detach ( ) ; } delay (msTime) ; }
该代码使用两个舵机控制小车的左右轮,通过调整每个舵机的速度(speedLeft和speedRight),可以控制小车的运动方向和速度。其中,舵机的角度范围为0-180度,但是该代码使用了 writeMicroseconds 函数来以微秒为单位控制舵机角度,从而精确控制小车的移动。
在 setup 函数中,通过调用 maneuver 函数实现了一系列的小车运动,包括前进、左转、右转、后退等。其中,每个运动过程的持续时间可以通过 msTime 参数来控制,单位为毫秒。
在 maneuver 函数中,通过 writeMicroseconds 函数控制舵机角度来实现小车的运动。同时,如果 msTime 为 -1,则表示该运动过程需要一直持续下去,直到下一个运动指令到来。如果 msTime 为其他正整数,则表示该运动过程持续的毫秒数,小车在该时间内会按照指定的速度和方向移动。
最后,在 loop 函数中没有任何代码,因此小车将一直保持静止状态。
原文地址: https://www.cveoy.top/t/topic/oxxU 著作权归作者所有。请勿转载和采集!