|
回復 5# pizg
你用ULN2003 控制的 5線式步進馬達應該是這種:
步進角度:5.625 x 1/64
減速比:1/64
這顆步進馬達裡面有減速齒輪,
信號頻率越大,馬達轉速越快,
馬達的STEPS是由自己設定的,這句stepper.step(200);就是只走200 STEPS,
stepper.setSpeed(30); 這一行設定轉速為30rpm, 我的馬達真的會是30rpm,
又如果設成stepper.setSpeed(30000); 它就不會動,
我的是四線馬達,跟你的不一樣,最多接近三轉一秒,
code如下:
#include <Stepper.h>
// change this to the number of steps on your motor
#define STEPS 200
//steps:代表馬達轉完一圈需要多少步數。如果馬達上有標示每步的度數,
//將360除以這個角度,就可以得到所需要的步數(例如:360/3.6=100)。(int)
// create an instance of the stepper class, specifying
// the number of steps of the motor and the pins it's
// attached to
Stepper stepper(STEPS, 2, 3, 4, 5);
//Stepper stepper(STEPS, 26, 28, 32, 34);
void setup()
{
stepper.setSpeed(140);// 將馬達的速度設定成140RPM 最大 150~160
}
void loop()
{
stepper.step(100);//正半圈
delay(1000);
stepper.step(-100);//反半圈
delay(1000);
stepper.step(200);//正1圈
delay(1000);
stepper.step(-200);//反1圈
delay(1000);
stepper.step(300);//正1圈半
delay(1000);
stepper.step(-300);//反1圈半
delay(1000);
stepper.step(1600);//正8圈
delay(1000);
stepper.step(-1600);//反8圈
delay(1000);
} |
|