当前位置:首 页 --> 技术分享
使用Arduino与A4988 驱动步进电机
发布时间:2018/1/13 9:55:00 来源:永阜康科技
初识Arduino,有什么错漏的地方请指正.
实验目的:Arduino与A4988驱动42步进电机
材料如下:
Arduino uno *1
A4988 *1
42步进电机 *1
面包板 *1
9V外接电源 *1
导线 若干
step 1:接线
关于接线更详细的相关资料:http://fritzing.org/projects/a4988-single-stepper-test/
step 2:测试程序程序
学会使用A4988驱动电机对于DIY3D打印机,雕刻机很有帮助。
实验目的:Arduino与A4988驱动42步进电机
材料如下:
Arduino uno *1
A4988 *1
42步进电机 *1
面包板 *1
9V外接电源 *1
导线 若干
step 1:接线
关于接线更详细的相关资料:http://fritzing.org/projects/a4988-single-stepper-test/
MS1 , MS2 , MS3 跳线说明:(例子里是低电平,悬空或接地线,使用全步进模式)
分别是全步进,1/2步进,1/4步进,1/8步进,1/16步进模式。
步进电机走一步是1.8度,一圈就是200步。例如使用1/16步进,则需要走3200步才等于一圈。
step 2:测试程序程序
- int x;
- void setup()
- {
- pinMode(6,OUTPUT); // Enable
- pinMode(5,OUTPUT); // Step
- pinMode(4,OUTPUT); // Dir
- digitalWrite(6,LOW); // Set Enable low
- }
- void loop()
- {
- digitalWrite(4,HIGH); // Set Dir high
- for(x = 0; x < 200; x++) // Loop 200 times
- {
- digitalWrite(5,HIGH); // Output high
- delayMicroseconds(800); // Wait 1/2 a ms
- digitalWrite(5,LOW); // Output low
- delayMicroseconds(800); // Wait 1/2 a ms
- }
- delay(1000); // pause one second
- digitalWrite(4,LOW); // Set Dir low
- for(x = 0; x < 200; x++) // Loop 2000 times
- {
- digitalWrite(5,HIGH); // Output high
- delayMicroseconds(800); // Wait 1/2 a ms
- digitalWrite(5,LOW); // Output low
- delayMicroseconds(800); // Wait 1/2 a ms
- }
- delay(1000); // pause one second
- }
int x; void setup() { pinMode(6,OUTPUT); // Enable pinMode(5,OUTPUT); // Step pinMode(4,OUTPUT); // Dir digitalWrite(6,LOW); // Set Enable low } void loop() { digitalWrite(4,HIGH); // Set Dir high for(x = 0; x < 200; x++) // Loop 200 times { digitalWrite(5,HIGH); // Output high delayMicroseconds(800); // Wait 1/2 a ms digitalWrite(5,LOW); // Output low delayMicroseconds(800); // Wait 1/2 a ms } delay(1000); // pause one second digitalWrite(4,LOW); // Set Dir low for(x = 0; x < 200; x++) // Loop 2000 times { digitalWrite(5,HIGH); // Output high delayMicroseconds(800); // Wait 1/2 a ms digitalWrite(5,LOW); // Output low delayMicroseconds(800); // Wait 1/2 a ms } delay(1000); // pause one second }
ps后记学习:
*脚6(-en) 低电平为启动电机(enable),貌似也可以不接,试过一样能运行.但如果要控制电机的启动关闭还是要用上
*脚4(-dir) 用高低电平控制方向.
*脚5(-step) 用高低电平驱动电机转动.注意中间间隔等待的微秒值,如果太快会导致电机有声响不转动.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||