Arduino使用Stepper库驱动2byjs8步进电机及计算每步延时
Arduino ide1.8中自带stepper库,但是ide2.0里没有。可以手动把1.8里的文件复制到ide2.0的库里,默认是在C:\Users\(你的账号名)\Documents\Arduino\libraries. 重启ide后就可以看到第三方库还有例子了。如果在文件里引用了不存在的库,那么代码补全就只能补全文档里的变量了,没法提示函数。
接线
程序没啥说的,2byjs8步进电机最高也就 能收1000hz脉冲,再快就堵转了,根据参数,可以算出最快也就每分钟15转。
电机是64步/圈,每步360° / 64 = 5.625°,出来还有1 / 64减速箱,所以是64 * 64 = 4096步/圈,1000步/s / 4096步/圈 = 0.25圈/秒 = 15RPM。 |
#include "Stepper.h" const int stepsPerRevolution = 2000;//每次动作的步数,实测用2000可以做到最快速度,改小会变慢 // initialize the stepper library on pins 8 through 11: Stepper myStepper(stepsPerRevolution, 8, 10, 9, 11); int stepCount = 0; // number of steps the motor has taken void setup() { // initialize the serial port: //Serial.begin(9600); myStepper.setSpeed(15);//每分钟转速,stepper库自动根据stepsPerRevolution算出脉冲延时 } void loop() { // step one step: myStepper.step(2000); //Serial.print("steps:"); //Serial.println(stepCount); stepCount++; delay(5000); }