ColdString 发表于 2019-8-13 21:21:41

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

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.图片








ColdString 发表于 2019-8-13 21:22:02

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);
}
}

gada888 发表于 2019-8-15 09:09:10

支持一下

大圈biubiu 发表于 2019-8-16 11:52:25

有个不成熟的问题,就是交换2个的电机后,原本是只能运动一个方向的电机还是保持这个样子吗?(我想知道驱动是好是坏)
页: [1]
查看完整版本: 42步机使用仅有单方向求解