白话学习Arduino:42步进电机
本帖最后由 IOT专业户 于 2018-12-5 14:34 编辑Arduino控制42步进电机1、项目总览 2、42步进电机 可以看到这个是四线步进电机,内部两两短接,可以通过万用表测出,相同相的线随意接入驱动器的A+,A-和B+,B-即可。 3、驱动器驱动器侧面有一排按钮,往上拨为OFF,往下为ON,其中看驱动器界面标识可见, SW1-SW3:为步进电机驱动器电流控制按钮,电流越大步进电机就越有劲,不容易丢步。SW4:是控制限时电流按钮,即电机不转时是否给电机电流按钮,据说开启OFF可以更好的保护电机,但是为了更好地控制步进电机建议打开。SW5-SW8:是控制电机精度的,Pulsw/rev表示的是多少个脉冲为一圈,数字越小即转的越快,数字越高越精确转的越慢。PUL+,PUL-:步数控制,输入脉冲信号,一个脉冲(一高一低)走一步。DIR+,DIR-:方向控制,接入高电平即正转,接入低电平则反转。ENA+,ENA-:使能控制,一般情况悬空(都不接)即可,接入高电平步数控制失效,可以手动转动,当接入低电平恢复原有的步数控制,此时无法手动转动。
4、程序代码保证线路连接正确的情况下,以下程序就能简单控制步进电机的运动,如果要精确控制等更精确的控制,或者用库控制的话需要更深入的研究。int x;//定义发射方波次数
//SW 往上是off往下是on
#define enaPin 6
#define dirPin 22
#define pulPin 7
void setup()
{
Serial.begin(115200);
pinMode(enaPin, OUTPUT); // Enable
pinMode(pulPin, OUTPUT); // Step
pinMode(dirPin, OUTPUT); // Dir
digitalWrite(enaPin, LOW); // Set Enable low
}
void loop()
{
digitalWrite(dirPin, HIGH); // Set Dir high
for (x = 0; x < 256; x++) // Loop 200 times
{
// digitalWrite(pulPin, HIGH); // Output high
// delayMicroseconds(800); // Wait 1/2 a ms
// digitalWrite(pulPin, LOW); // Output low
// delayMicroseconds(800); // Wait 1/2 a ms
//这里两种驱动方式任选其一即可,上面的这个语句可以精确控制到几步,缺点:占用CPU时间,这个控制下CPU无法进行其他运算。
analogWrite(pulPin, x);//如果用analogWrite则注释掉上面的,优点不占用CPU,写法简单,缺点,不能精确控制到几步,下同。
Serial.println(x);
}
delay(1000); // pause one second
digitalWrite(dirPin, LOW); // Set Dir low
for (x = 0; x < 255; x++) // Loop 2000 times
{
// digitalWrite(pulPin, HIGH); // Output high
// delayMicroseconds(800); // Wait 1/2 a ms
// digitalWrite(pulPin, LOW); // Output low
// delayMicroseconds(800); // Wait 1/2 a ms
analogWrite(pulPin, x);
Serial.println(x);
}
delay(1000); // pause one second
}
6666:D:):):):):):):):) 并不能反转啊 leverleong 发表于 2019-7-25 11:24
并不能反转啊
肯定可以的哦,建议你再试试 想问一下,我把for循环里面的延迟改成delay(1)之后没问题,但是改成delay(2)之后就丢步了,就是延迟时间大于1ms之后就会丢步了,这个是电流不够的原因吗 请教一下,你这里只用了三条线,#define enaPin 6 #define dirPin 22 #define pulPin 7 那驱动器接线图却有四个线PUL+,PUL-,DIR+,DIR-,ENA+,ENA-怎么理解呢?这样理解对吗?比如enaPin 6接ENA+或ENA-都任意一根都可以吗?dir的也一样吗 我看到图片是也是四根线接Arduino,所以请教一下,驱动器上的DIR-、DIR+、PUL-和PUL+分别对应接Arduino哪个脚,可以分享一下吗?谢谢!! qq308644097 发表于 2021-4-21 16:27
请教一下,你这里只用了三条线,#define enaPin 6 #define dirPin 22 #define pulPin 7 那驱动器接线图 ...
你知道什么接线了吗? qq308644097 发表于 2021-4-21 16:27
请教一下,你这里只用了三条线,#define enaPin 6 #define dirPin 22 #define pulPin 7 那驱动器接线图 ...
这个应该是共负极连接,dir- pul-并在一起连地线 本帖最后由 bgsdd 于 2021-12-14 16:00 编辑
准备用4个28步进电机+4个驱动器做个手机蓝牙控制小车,为制作步进电机的机械臂屯点经验,在关注这个步进电机的共阳极和共阴极两种接法,不知道有什么区别:
共阳极是不是把END+,PUL+,DIR+ 都接在一起控制板的END引脚?END-,PUL- DIR-分别接在控制板的3个输出引脚上??
共阴极是不是把END-,PUL-,DIR- 都接在一起控制板的END引脚?END+,PUL+, DIR+分别接在控制板的3个输出引脚上??
页:
[1]