步進電機是將脈沖信號轉換成機械運動的一種特殊電機。步進電機在使用時不需要額外的反饋,這是因為除非失步,否則步進電機每次轉動時的角度已知的,由于它的角度位置已知就能精確控制電機運動的位置。/* 步進電機速度控制示例 本示例程序用于驅動非極性步進電機。電機的接口連接至<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); } }
|