easydriver的问题啊
新人最近看到光驱DIY激光雕刻机流行,看得我心痒痒,上某宝买了两个光驱电机和两片easydriver驱动等一堆东西。
买回来发现要自己焊接管脚,又去买电铬铁等工具。刚开始焊接的时候不熟练,第一片的第一只脚就反复焊了好久。
焊上管脚后测试,电机不能正常工作。
////正题////
两片easydriver都能点亮,但一片的电机不正常工作,另一片的电机完全没反应。
我写了个程序用UNO测试。
int STEP = 9;
int DIR = 8;
void setup() {
pinMode(STEP, OUTPUT);
pinMode(DIR, OUTPUT);
}
void loop() {
digitalWrite(DIR, LOW);
digitalWrite(STEP,HIGH);
delay(1000);
digitalWrite(DIR, HIGH);
delay(1000);
}
http://image.geek-workshop.com/forum/201402/28/101913v5bca93m5c55zd99.png
程序是9号脚接step,一直高电平,就是电机一直转;8号脚接DIR,高低电平每秒钟变一次,就是电机旋转方向变一次。
第一片焊的灯亮了,但电机完全没反应。测量输出的A,B 的电压都是0。先不管这片了。
第二片的电机是大约每转一秒钟停一秒钟,方向几乎没有变,只是启动的时候会左右抖动。
此时STEP和DIR旁边的GND是空的,没和UNO的GND连接。
输入是4.65V电压。用万用表测量STEP和GND电压,总是在2.5和5V之间波动;DIR是0到2.3之间变化。之所以电机就产生了这样的动作。
如果easydriver和UNO的GND连接,STEP和DIR的电压就按程序设定的变化了,STEP 5V不变,DIR每秒0/5V切换一次。但电机处于硬直状态,不动。这是分别测电机A,B口的电压,都是2.3不变。
本人没什么经验,问题出在哪里??
你用多少V的电源给easydriver供电? 代码写的有点问题 粗看step pin的时序 还有dir的用法有问题
最直接的解决方法就是用arduino里面的自带stepper的库吧 或者学学那里写的方法 本帖最后由 uvvvvw 于 2014-9-22 22:20 编辑
试试这样
void loop() {
digitalWrite(DIR,LOW);
digitalWrite(STEP,HIGH);
delay(1000);
digitalWrite(STEP, LOW);
delay(1000);
} 程序可能有点问题。主要是电源的问题~~是我的电源线路接触不好,重新接了电源后可以按指令动了,可是只能接一个电机,两个一起接就动不了了。 我和你同样,还未解决 本帖最后由 老来疯 于 2015-9-28 03:15 编辑
看一下我的解释:
int STEP = 9; // 这是 步进 驱动信号端口
int DIR = 8; // 这是 方向 驱动信号端口
void setup() {
pinMode(STEP, OUTPUT); // 端口设置正确
pinMode(DIR, OUTPUT); // 端口设置正确
}
void loop() { // 这是 Arduino 的 无休止的主循环
digitalWrite(DIR, LOW); // 方向端口 低电平 如果是 反时针 转,高电平时 就会 顺时针转。
digitalWrite(STEP,HIGH); // 步进端口 如果 在 高电平时 步进一步 ,那么 低电平 就会复位,电机不动。
delay(1000); // 给了 1 秒的 延时
digitalWrite(DIR, HIGH); // 方向端口 高电平 ,准备让电机下一步 反方向转。这一句的 DIR 要改为 STEP,
// 并且置低电平 LOW 一次,不让步进端口 复位,(低电平,)下一个 高电平是不干活的。
delay(1000); // 又等了 1 秒,你好像是让 电机 2 秒 走一步
} // 返回 void loop()再执行一遍, 永远不停
这个程序 只能 驱动一个 步进电机,要驱动 两个或更多的步进电机,最好是 使用 现成的 库。
页:
[1]