51单片机快速入门之 步进电机的使用与 ULN2003 2024/10/21

51单片机快速入门之 步进电机的使用与 ULN2003

步进电机相关百科http://步进电机_360百科 https://baike.so.com/doc/656679-695086.html

ULN2003相关百科 http://ULN2003_360百科 https://baike.so.com/doc/5356466-5591963.html

ULN2003(图片来源于网络):

引脚1:CPU脉冲输入端 引脚16:脉冲信号输出端,对应1脚信号输入端。

引脚2:CPU脉冲输入端。 引脚15:脉冲信号输出端,对应2脚信号输入端。

引脚3:CPU脉冲输入端。 引脚14:脉冲信号输出端,对应2脚信号输入端。

引脚4:CPU脉冲输入端。 引脚13:脉冲信号输出端,对应2脚信号输入端。

引脚5:CPU脉冲输入端。 引脚12:脉冲信号输出端,对应2脚信号输入端。

引脚6:CPU脉冲输入端。 引脚11:脉冲信号输出端,对应2脚信号输入端。

引脚7:CPU脉冲输入端。 引脚10:脉冲信号输出端,对应2脚信号输入端。

引脚8:接地。

引脚9:该脚是内部7个续流二极管负极的公共端,各二极管的正极分别接各达林顿管的集电极。

用于感性负载时,该脚接负载电源正极,实现续流作用。如果该脚接地,实际上就是达林顿管的集电极对地接通。

感性负载:感性负载是带有感性的负载,通常有电磁性,如电磁阀线圈,电动机,电感等。

达林顿管:一种特殊的三极管,由两个PNP或NPN型晶体管级联组成,其中一个晶体管充当了基本上拉电阻的作用,另一个晶体管充当了共射放大器的作用。这种结构能够极大提高晶体管的放大倍数,使得达林顿管在许多应用中都比常规三极管更为有效

**下面是更多的感性负载的例子:

  1. 交流电动机:**

包括单相和三相电动机,广泛应用于各种工业和家用设备中,如风扇、泵、压缩机、洗衣机、搅拌机等。


2. 直流电动机:

用于需要精确控制转速和扭矩的设备,如电动车、电动工具、伺服系统等。


3. 变压器:

用于电力传输和分配的大型变压器,以及用于电子设备中的小型电源变压器。


4. 电抗器:

用于电力系统中限制短路电流和调节电压的设备。


5. 继电器:

含有电磁铁的继电器,用于电路的开关控制,常见于各种控制系统和保护电路中。


6. 电磁阀:

用于控制流体的通断,常见于自动化控制系统中。


7. 线圈:

用于各种电子设备中的滤波、振荡和调谐电路。


8. 镇流器:

用于荧光灯和高压汞灯等气体放电灯的镇流器,起到限制电流和稳定电压的作用。


9. 电磁炉:

利用电磁感应原理加热的厨房电器。


10. 电动剃须刀:

含有小型电动机的个人护理设备。


11. 电动牙刷:

含有小型电动机的个人护理设备。


12. 电动窗帘:

用于自动控制窗帘的开合。


13. 电动座椅:

用于汽车和家庭中的可调节座椅。


14. 电动窗户:

用于自动控制窗户的开关。


15. 电动门:

用于自动控制门的开关。


16. 电动车库门:

用于自动控制车库门的开关。


17. 电动卷帘门:

用于自动控制卷帘门的开关。


18. 电动自行车:

含有电动机的交通工具。


19. 电动汽车:

含有大功率电动机的交通工具。


20. 电动滑板车:

含有电动机的个人交通工具。


这些设备在工作时,由于电感的存在,电流会滞后电压一定的相位角,这就是感性负载的典型特征。-----------资料来源于AI生成

Proteus电路图:

MOTOR-STEPPER 元件是一个常见的六线制步进电机,这种电机通常是四相的。

A B C D

对应

A1 B1 C1 D1

程序释意:

这里我们先用最简单的驱动方式: 单相 4拍 也就是 A>B>C>D>A

工作原理是通过依次激活每个线圈(A、B、C、D)来驱动电机旋转。一个完整的周期意味着电机完成了一次完整的旋转过程,回到了初始状态。因此,从A开始,经过B、C、D,然后回到A,这样才构成一个完整的周期。

程序实现:

复制代码
#include <STC89C5xRC.H>
void delay(unsigned int t);//延时函数声明
sbit A1=P2^1;
sbit B1=P2^2;
sbit C1=P2^3;
sbit D1=P2^4;
sbit KEY=P3^0;
#define A_NO {A1=1;B1=0;C1=0;D1=0;}//宏定义简化操作 也可以用操作寄存器 P2=0x01
#define B_NO {A1=0;B1=1;C1=0;D1=0;}
#define C_NO {A1=0;B1=0;C1=1;D1=0;}
#define D_NO {A1=0;B1=0;C1=0;D1=1;}
void main()
{
    while(1) {
       if(KEY==0)       //如果按钮被按下
					{          
						
            A_NO;
						delay(10);  //给A相的通电时间
            B_NO;
            delay(10);  //给B相的通电时间
            C_NO;
            delay(10);  //给C相的通电时间
            D_NO;
            delay(10);  //给D相的通电时间 
        } 


    }

}

void delay(unsigned int t)      //简单延迟函数
{
    while(t--);

}

注意一个问题宏定义中 {A1=0;B1=0;C1=1;D1=0 ; } 最后一个一定要加不然会报错

运行效果:

注意

这里六线没有元器件标识,接线上有些问题,所以相位并不准确,只参考代码即可

相关推荐
ACP广源盛139246256732 分钟前
Qwen3.8‑2.4T 开源落地@ACP#国产 MoE 大模型私有化部署中 MST 多屏转换芯片 GSV2231 硬件价值与应用场景
大数据·数据库·人工智能·嵌入式硬件
oshan20121 小时前
零基础STM32入门教程--04-工程文件分析
stm32·单片机·嵌入式硬件
lhbweilai1 小时前
FreeRTOS(事件组)
stm32·单片机·嵌入式硬件
szarron2 小时前
VNA6 便携式矢量网络分析仪:从入门到精通
数据库·嵌入式硬件·测试工具·5g·射频工程
恒锐丰科技韩生2 小时前
率能 SS8812T|8.2‑36V 双通道 H 桥电机驱动 ETSSOP28 带散热焊盘 打印机安防机器人专用
嵌入式硬件·硬件工程
LCG元2 小时前
STM32 HAL 库串口 DMA + 空闲中断接收不定长数据:从原理到量产级稳定方案
stm32·单片机·嵌入式硬件
嵌入式阿蔡3 小时前
OTA 实战四:安全启动与固件签名(Secure Boot)—— 拒绝非法固件
网络·stm32·单片机·嵌入式硬件·嵌入式实时数据库
LCMICRO-133108477463 小时前
国产长芯微LP8628完全P2P替代AD8628,零漂移、单电源、输入输出轨到轨高精度运放
arm开发·嵌入式硬件·fpga开发·硬件工程·精密运放·ad8628
DevHub3 小时前
电视盒子刷 Armbian 教程:30 元旧盒子变 NAS 跑 Docker,200+ 机型可刷
linux·嵌入式硬件·docker·容器·开源·电视盒子
wuyk55512 小时前
4.树:一对多的层次数据结构
开发语言·数据结构·stm32·单片机