Arduino 2560控制两个步进电机

用arduino和步进电机控制器驱动两个步进电机,具体的接线过程和怎样连接都在图片上。

准备工具:

两个步进电机(我用的是J42):



Arduino板(我用的是2560):



步进电机控制器:



电源适配器:



一 储备知识:

1.步进电机的绕组:

A+:黑

A-:绿

B+:红

B-:蓝

(这个问题就查了好久..)

2.细分:


步进电机每200(360÷1.8)脉冲转一圈,1.8是步进电机1脉冲走的度数(步进电机背面显示的。200就是1细分,那么2细分就是400(400脉冲转一圈,4细分就是800脉冲转一圈。
所以可以通过调节细分来控制步进电机转动的速度。

二 步进电机与步进电机控制器相连

按照上面说的黑绿红蓝连接步进电机的A+A-B+B-



三控制器与电源适配器相连






四控制器和arduino连接




1.输入信号有三种

①    步进脉冲信号PUL+,PUL-;

②    方向电平信号DIR+ ,DIR-

③      脱机信号EN+,EN-。

2. 采用共阴极接法:

PUL-,DIR-,EN-连arduino的地

EN+:脱机信号,接地或者不接,接口4

DIR+:控制转动方向,高电平正转,接口 5

PUL+:控制脉冲,接口 6

3. 第二个步进电机接法同理:

PUL-,DIR-,EN-连arduino的地

EN+:脱机信号,接地或者不接,接口7

DIR+:控制转动方向,高电平正转,接口 8

PUL+:控制脉冲,接口 9





 

五代码:
#define CLK 9 #define CW 8 #define EN 7 #define CLK2 6 #define CW2 5 #define
EN2 4 void setup() { pinMode(CLK,OUTPUT); pinMode(CW,OUTPUT);
pinMode(EN,OUTPUT); pinMode(CLK2,OUTPUT); pinMode(CW2,OUTPUT);
pinMode(EN2,OUTPUT); Serial.begin(9600); } void loop() { digitalWrite(CW,HIGH);
//正转 digitalWrite(CW2,HIGH); //正转 //digitalWrite(EN, LOW); //脱机 for(int
i=0;i<200;++i) { digitalWrite(CLK,HIGH);//逆时针(正转),无细分,半流,200脉冲/转,步距角1.8度,500KHZ
digitalWrite(CLK2,HIGH);// delayMicroseconds(1000); digitalWrite(CLK,LOW);
digitalWrite(CLK2,LOW); delayMicroseconds(1000); } }
六 延伸

学长提了个问题,怎样让步进电机触摸时,能明显的感受到转动每一步,也就是说每一步与每一步之间都有时间暂停,然后在循环往复的转动。

解决方法:在学长的提示下,因为脉冲信号呈时序状,让高频脉冲的时间短,低频持续的时间长,这样在转动的时候就能明显的感受到每一步的转动。
#define CLK 9 #define CW 8 #define EN 7 int steps=50; //角度 /* * steps=16.667
旋转30 * steps=33.334 旋转60 * steps=50 旋转90 * steps=100 旋转180 * steps=200 旋转360 */
void setup() { pinMode(CLK, OUTPUT); pinMode(CW, OUTPUT); pinMode(EN, OUTPUT);
Serial.begin(9600); //通信接口 } /* * 速度:通过脉冲时间间隔来控制速度/控制细分? * 方向:控制脉冲次数来控制一次能过转多少度
*/ void loop() { digitalWrite(CW, HIGH); //正转 //digitalWrite(EN, LOW); //脱机 for
(int i = 0; i < steps; ++i) { digitalWrite(CLK, HIGH);
//逆时针(正转),无细分,半流,200脉冲/转,步距角1.8度,500KHZ delayMicroseconds(10);
//微秒400以上左右好用,所以周期T=800us,所以f=1/T=1250HZ digitalWrite(CLK, LOW);
delayMicroseconds(15000); } //delay(500); //毫秒 }
学长又又提出了一个问题(-_-),假如让步进电机转动90度,怎样在前45度速度逐渐加快,怎样在后45度速度逐渐减慢?因为时间挤不出,一直没去想,等有时间看看能不能解决

友情链接
KaDraw流程图
API参考文档
OK工具箱
云服务器优惠
阿里云优惠券
腾讯云优惠券
华为云优惠券
站点信息
问题反馈
邮箱:ixiaoyang8@qq.com
QQ群:637538335
关注微信