3979| 3
|
[求助] 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.图片 |
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); } } |
© 2013-2024 Comsenz Inc. Powered by Discuz! X3.4 Licensed