下面我们把上文的所有内容通过下文的代码进行总结与使用。
1. 我用write(degree,speed)函数输入角度控制位移,它的degree值取值范围为【0,180】;
2. 我用attach(pin,min,max)函数配置舵机控制引脚,最小与最大脉宽根据芯片手册设定符合值范围【min=1300,max=1700】;
直接看我的代码吧:
#include//#include//我们已经不需要这个老库了 //arduino的库提供两个函数控制舵机。write()和writeMicroseconds(); //这两个函数都可以控制360/180这两种舵机。 /********************这是write()函数的例子***********/ VarSpeedServo servoLeft;//注意这里因为调用的是新库,所以要把左边红字Servo改为VarSpeedServo VarSpeedServo servoRight; int i=0; int j=0; void setup() { servoLeft.attach(12,1300,1700);//P12是左舵机,P13是右舵机。双轮在前为正.使用芯片手册值 servoRight.attach(13,1300,1700); //servoLeft.write(x); // 左舵机:x=90舵机不动,x=0舵机全速后退,x=180舵机全速前进 //servoRight.write(x); // 右舵机:x=180舵机全速后退,x=90舵机不动,x=0舵机全速前进 } void loop() { /***************成功了,下文for语句可实现左右舵机同时前进一圈(360°)**************/ for( i=90 , j=90;i=0;i += 1 , j -= 1){ servoLeft.write(i,100); // 左舵机前进(90-180) servoRight.write(j,100); // 右舵机前进(90-0) //servoRight.write(j,100,true); // 右舵机前进(90-0),选择中等速度100,如果为true,则导致函数调用阻塞,直到移动完成 delay(15); } //如果想前进2圈,就把上文的for语句