|
步進(jìn)電機(jī)是將脈沖信號(hào)轉(zhuǎn)換成機(jī)械運(yùn)動(dòng)的一種特殊電機(jī)。步進(jìn)電機(jī)在使用時(shí)不需要額外的反饋,這是因?yàn)槌鞘Р剑駝t步進(jìn)電機(jī)每次轉(zhuǎn)動(dòng)時(shí)的角度已知的,由于它的角度位置已知就能精確控制電機(jī)運(yùn)動(dòng)的位置。/* 步進(jìn)電機(jī)速度控制示例 本示例程序用于驅(qū)動(dòng)非極性步進(jìn)電機(jī)。電機(jī)的接口連接至<acronym class="c2c-text-hover" data-hasqtip="6" oldtitle="Arduino,是一個(gè)開放源代碼的單芯片微控制器,它使用了Atmel AVR單片機(jī),采用了開放源代碼的軟硬件平臺(tái),建構(gòu)于簡易輸出/輸入(simple I/O)界面板,并且具有使用類似Java、C語言的Processing/Wiring開發(fā)環(huán)境。" title="" style="box-sizing: border-box;">Arduino的8至11號(hào)端口變阻器連接至模擬端口A0電機(jī)將沿著順時(shí)針方向旋轉(zhuǎn),電位器的模擬量越高,步進(jìn)電機(jī)的轉(zhuǎn)速就越快。因?yàn)閟etSpeed()函數(shù)將設(shè)定每一步序的時(shí)間間隔。你可能會(huì)發(fā)現(xiàn)當(dāng)電位器模擬量太低時(shí),電機(jī)將會(huì)停止旋轉(zhuǎn)。*/#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); } }
|
|