arduino实现42步进电机运动控制(二)

目录

电路

材料清单

组装电路

软件

效果

存在的问题

电阻的问题

电机响应速度问题

最大供电电流


 

本文参考了从零开始怎样让步进电机转起来(上)_哔哩哔哩_bilibili

电路

材料清单

从某宝购买:

42步进电机,附送6pin转4pin杜邦线

a1e51012feed4db3a203f458090c9a77.jpeg

电机驱动,盒子形状的,与电机同一个店家

eca8a1b6ca504b70ae8e0cc2dd525cfb.jpeg

杜邦线若干,面包板一块

arduino uno,及相应的usb数据线

上位机一台

可调直流电源一台,最大输出电路不少于2A

86e0d2961ba346fa907162d00f98cb9b.png

组装电路

1 将驱动器的S1 S2 S3 设为On On Off; S4 S5 S6 设为On Off Off

652cc6e779d34f3f947955a688f58db1.jpeg

2 杜邦线的6pin端插入步进电机;

驱动器的A+端连接杜邦线4pin端的红线;

驱动器的A-端连接杜邦线4pin端的蓝线;

驱动器的B+端连接杜邦线4pin端的绿线;

驱动器的B-端连接杜邦线4pin端的黑线

5d13005093fb4cd2b72a531faed83bb3.jpeg

3 选择面包板的边缘的一条线作为公共地。将arduino的GND插入公共地。驱动器的EN-, DIR-, PUL-三个电极也插入这个公共地。

关于接地,这里有一处处理不正确,后续改正了:驱动器的GND、直流电源的负极也要连入公共地,不能让两者(驱动器的GND、直流电源的负极)绕过公共地直连,否则电机不能转动

2a01bff9f63a450da5acba148b8ba8c2.jpeg

44a7e61d86b24b14b03d6690045d3567.bmp

4 EN+通过200Ohm电阻接入arduino 7; DIR+通过200Ohm电阻接入arduino 6; PUL+通过100Ohm电阻接入arduino 5。    这里是否要接电阻还有疑问,见文末的讨论。

57321d1844ac4a24a9745eb9ab9ae5d0.bmp

5 arduino接入上位机

6 直流电源的正负两极输出分别接入驱动器的Vcc和GND。随后接通直流电源。

d51863a363d3495c9e35bab0561d1a15.bmp

7 烧写arduino程序。

软件

采用arduino IDE 1.8.10

这里INTERVAL的含义是脉冲的宽度,单位us。

57ed31bb2c1e4033bbf42bb706ceae07.jpeg

这里INTERVAL至少是300,假如是200us,则电机不能转动。

#define INTERVAL 300
#define DELAY 200
void setup() {
  // put your setup code here, to run once:
  pinMode(5, OUTPUT);
  pinMode(6, OUTPUT);
  pinMode(7, OUTPUT);
 
  digitalWrite(7, LOW);
}
 
void loop() {
  // put your main code here, to run repeatedly:
  digitalWrite(6, HIGH);
  for(int k = 0; k < 200; k++)
  {
    digitalWrite(5, HIGH);
    delayMicroseconds(INTERVAL);
    digitalWrite(5, LOW);
    delayMicroseconds(INTERVAL);
  }
 
  delay(DELAY);
 
 
  digitalWrite(6, LOW);
  for(int k = 0; k < 200; k++)
  {
    digitalWrite(5, HIGH);
    delayMicroseconds(INTERVAL);
    digitalWrite(5, LOW);
    delayMicroseconds(INTERVAL);
  }
 
  delay(DELAY);
}

效果

arduino控制42步进电机

存在的问题

电阻的问题

在本实验中,arduino 的pin 5,6,7与PUL+,DIR+,EN+通过电阻相连,如下:

c6a6d1881ae74a70822f33a97ef3591c.jpeg

这样是否使得电机对脉冲的响应变慢?是否可以改为如下?

34d62c2c28174e2bb101f7f1c79264e1.jpeg

电机响应速度问题

在上一篇博客arduino实现42步进电机运动控制(一)-CSDN博客里,我采用1/8细分的方式步进。脉冲的宽度为100us.我嫌这样步进太慢,所以在本篇博客里使用完整步进。但是发现INTERVAL也随之增加为300us,否则会丢步。所以电机转完一周的速度并没有线性的提升8倍。

最大供电电流

实测发现,增加INTERVAL的值,直流电源的输出电流随之增加。所以我特意把直流电源的最大输出电流设为5amp,确保电源可以承担负载。

 

  • 23
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值