ESP8266-Arduino编程实例-ULN2003步进电机驱动

ULN2003步进电机驱动

1、ULN2003介绍

ULN2003A 是一个由七个 NPN 达林顿晶体管组成的阵列,能够提供 500 mA、50 V 输出。 它具有用于切换感性负载的共阴极反激二极管。 它可以采用 PDIP、SOIC、SOP 或 TSSOP 封装。同一系列中有 ULN2002A、ULN2004A 以及 ULQ2003A 和 ULQ2004A,专为不同的逻辑输入电平而设计。

ULN2003A 也与 ULN2001A(4 个输入)和 ULN2801A、ULN2802A、ULN2803A、ULN2804A 和 ULN2805A 相似,只是逻辑输入电平(TTL、CMOS、PMOS)和输入/输出数量(4/7/8)不同 。

在这里插入图片描述

步进电机是无刷直流电机,它能以固定的步距角旋转。步进电机一般采用200步完成360度旋转,即每一步旋转1.8度。可以通过适当的指令将步进电机旋转到任何特定的角度。因此步进电机被广泛应用于旋转运动设备,如机械人、自动控制、机械手臂等。

步进电机一般分为为两种类型:

  • 单极步进电机:一般有五或六根导线,其中四根导线是四个固定子线圈的一端(A、B、C、D),四个线圈的另一端连接在一起,代表第五根导线,即为公共端。单极步进电机使用广泛。
  • 双极步进电机:只有四根导线从两组线圈中接出,没有共用导线。

本次使用的步进电机模块为28BYJ-48。如下图所示:

在这里插入图片描述

在前面的文章中,对ULN2003的应用及驱动做了介绍,请参考:

2、硬件准备

  • ESP8266 NodeMCU开发板一块
  • ULN2003模块传感器模块一个
  • 28BYJ-48步进电机一个
  • 9V直流电源一个
  • 面板板一个
  • 杜邦线若干
  • 数据线一条

硬件接线如下:

在这里插入图片描述

3、软件准备

  • Arduino IDE或VSCode + PlatformIO

在前面的文章中,对如何搭建ESP8266开发环境做了详细的介绍,请参考:

ESP8266 NodeMCU的引脚介绍在前面的文章中做了详细的介绍,请参考:

4、代码实现

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include <Stepper.h>

const int stepsPerRevolution = 200; // change this to fit the number of steps per revolution

// initialize the stepper library on pins D5 to D8
Stepper myStepper(stepsPerRevolution, D5,D6,D7,D8);

int stepCount = 0; // number of steps the motor has taken

void setup() {

}

void loop() {
// step one step:
myStepper.step(1);
stepCount++;
delay(100);
}

文章来源: https://iotsmart.blog.csdn.net/article/details/126458822