步进电机是将脉冲信号转换成机械运动的一种特殊电机。步进电机在使用时不需要额外的反馈,这是因为除非失步,否则步进电机每次转动时的角度已知的,由于它的角度位置已知就能精确控制电机运动的位置。/* 步进电机速度控制示例 本示例程序用于驱动非极性步进电机。电机的接口连接至<acronym class="c2c-text-hover" data-hasqtip="6" oldtitle="Arduino,是一个开放源代码的单芯片微控制器,它使用了Atmel AVR单片机,采用了开放源代码的软硬件平台,建构于简易输出/输入(simple I/O)界面板,并且具有使用类似Java、C语言的Processing/Wiring开发环境。" title="" style="box-sizing: border-box;">Arduino的8至11号端口变阻器连接至模拟端口A0电机将沿着顺时针方向旋转,电位器的模拟量越高,步进电机的转速就越快。因为setSpeed()函数将设定每一步序的时间间隔。你可能会发现当电位器模拟量太低时,电机将会停止旋转。*/#include <Stepper.h>const int stepsPerRevolution = 200;Stepper myStepper(stepsPerRevolution, 8,9,10,11); int stepCount = 0;void setup(){}void loop(){ int sensorReading = analogRead(A0); int motorSpeed = map(sensorReading, 0, 1023, 0, 100); if (motorSpeed > 0){ myStepper.setSpeed(motorSpeed); myStepper.step(stepsPerRevolution/100); } }
|