42步机使用仅有单方向求解

2019-08-131.4万
AI 快速预览详细 收起
本文讨论了使用Arduino MEGA2560和双路步进电机驱动扩展板(DRV8825)时,步进电机Y只能单方向运动的问题。通过详细的接线和代码检查,发现步进电机Y的方向控制引脚未正确设置,导致只能单方向运动。通过正确的配置,成功解决了这一问题,确保步进电机能够双向运动。
I.背景:
刚学,如果提出了太过基础的问题,请多包涵。


II.主要环境:
1.使用Arduino MEGA2560作为主控,用了拓展板,链接放最下方
2.使用的是42步进电机,并且使用【SKU: DRI0023 双路步进电机驱动扩展板(DRV8825)】作为连接,链接放最下方


III.问题主体:
1.照着42电机驱动板的官方WIKI上的接线复制并改的,(代码与接线照片放在下方)
2.步进电机Y不论是HIGH还是LOW,都为同一方向。【问题核心】
3.步进电机X能够根据代码digitalWrite(M1dirpin,HIGH);的HIGH改变成LOW而改变方向
4.两个电机运动时均无杂音,并且接线正反都试过,无果


IV.链接
1.拓展版:https://www.dfrobot.com.cn/goods-970.html
2.步进电机WIKI:https://wiki.dfrobot.com.cn/index.php?title=SKU:_DRI0023_%E5%8F%8C%E8%B7%AF%E6%AD%A5%E8%BF%9B%E7%94%B5%E6%9C%BA%E9%A9%B1%E5%8A%A8%E6%89%A9%E5%B1%95%E6%9D%BF(DRV8825)


V.图片








创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(3)
大圈biubiu
大圈biubiu
有个不成熟的问题,就是交换2个的电机后,原本是只能运动一个方向的电机还是保持这个样子吗?(我想知道驱动是好是坏)
gada888
gada888
支持一下
ColdString
ColdString
作者
VI.代码/*
This sample code is for testing the 2 stepper motors
The rotation velocity can be adjusted by the code switch
Microcontroller: Arduino UNO
*/
int M1dirpin = 24; //电机Y方向引脚
int M1steppin = 25; //电机Y驱动引脚
int M1en=29; //电机Y使能引脚
int M2dirpin = 27; //电机X方向引脚
int M2steppin = 26; //电机X驱动引脚
int M2en= 28; //电机X使能引脚
void setup()
{
pinMode(M1dirpin,OUTPUT);
pinMode(M1steppin,OUTPUT);
pinMode(M1en,OUTPUT);
pinMode(M2dirpin,OUTPUT);
pinMode(M2steppin,OUTPUT);
pinMode(M2en,OUTPUT);
digitalWrite(M1en,LOW); //低电平使能
digitalWrite(M2en,LOW); //低电平使能
}
void loop()
{
int j;
delayMicroseconds(2);
digitalWrite(M1dirpin,HIGH);
digitalWrite(M2dirpin,HIGH);
for(j=0;j<=5000 ;j++){
digitalWrite(M1steppin,LOW);
digitalWrite(M2steppin,LOW);
delayMicroseconds(2);
digitalWrite(M1steppin,HIGH); //上升沿步进
digitalWrite(M2steppin,HIGH); //上升沿步进
delay(1);
}
}
- 没有更多了 -