【Proteus仿真】Arduino UNO利用Stepper库实现uln2003驱动步进电机转动

【Proteus仿真】Arduino UNO利用Stepper库实现uln2003驱动步进电机转动


  • Proteus仿真
    在这里插入图片描述

Proteus说明

  • Proteus软件里面的步进电机的步距角默认是90,和代码中的const int stepsPerRevolution = 4; 对应。
    在这里插入图片描述

Arduino IDE编译说明,本示例需要修改库的源文件才行。Stepper 库是Arduino IDE自带的库,但是该库源代码的驱动的相序是不一样的,为了驱动28BYJ-48步进电机和匹配Proteus软件里面的步进电机组件,修改相关代码如下:

文件位置:C:\Users\Administrator\Documents\Arduino\libraries\Stepper\src,中的Stepper.cpp源文件,第257行-278行,修改如下,就是调整引脚高低电平顺序。
在这里插入图片描述

示例程序代码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44


/\*
Stepper Motor Control
\*4相5线步进电机 28YBJ-48
\* 步进电机跟随电位器旋转
\* (或者其他传感器)使用0号模拟口输入
\* 使用arduino IDE自带的Stepper.h库文件
\*
\* 如果编译报缺少库点击下方链接跳转字库下载页面
\* 点击这里会自动打开管理库页面: http://librarymanager/All#Stepper
\* 除此之外,还要修改库源文件
\* 此程序需要修改库文件:C:\Users\Administrator\Documents\Arduino\libraries\Stepper\src\Stepper.cpp
\* 本代码实现功能:
\* 正转一圈,停3秒,
\* 反转一圈,循环

\*/

#include <Stepper.h>

const int stepsPerRevolution = 4; // 旋转1圈所需的步数
// initialize the stepper library on pins 8 through 11:
Stepper myStepper(stepsPerRevolution, 8, 9, 10, 11);

void setup() {
// 设置转速set the speed at 120 rpm
myStepper.setSpeed(120);
// initialize the serial port:
Serial.begin(9600);
}

void loop() {
while(1){
myStepper.step(stepsPerRevolution);
delay(3000);

myStepper.step(-stepsPerRevolution);
delay(3000);
}
}



程序源码和仿真资源

1
2
3
链接:https://pan.baidu.com/s/1C4SRe\_wF2UyvlIBV7OHcyg 
提取码:id9c


淡定看人生,宁静做自我。人生充满变数,定力如何,直接影响到人生的走向。所谓定力,就是对自己的控制力。定力好的人,谨言慎行,不随波逐流,不放纵欲望,有所为,有所不为。因而常不被情绪左右,淡看名利得失,宁静做自我,从容过生活。淡了,静了,你的生活才会听你的安排。