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

embedded/2024/10/25 11:52:38/

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

步进电机相关百科icon-default.png?t=O83Ahttp://步进电机_360百科 https://baike.so.com/doc/656679-695086.html

ULN2003相关百科 icon-default.png?t=O83Ahttp://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 ; } 最后一个一定要加不然会报错

运行效果: 

 

注意

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


http://www.ppmy.cn/embedded/132323.html

相关文章

从安灯系统看汽车零部件工厂的智能制造转型

在当今快速发展的制造业领域&#xff0c;汽车零部件工厂正面临着日益激烈的市场竞争和不断提高的客户需求。为了在竞争中脱颖而出&#xff0c;实现可持续发展&#xff0c;许多汽车零部件工厂纷纷踏上智能制造转型之路。而安灯系统作为一种重要的生产管理工具&#xff0c;在这场…

影楼即将倒闭!!!!stable diffusion comfyui制作:AI人像摄影专业工作流

最近我们在学习ComfyUI&#xff0c;并用它搭建的摄影写真工作流&#xff0c;只需几张照片即可生成可交付的艺术写真照。 AI写真有以下好处&#xff1a; 创意无限&#xff1a;AI写真可以创造出超越现实的场景和效果&#xff0c;为用户提供更多的创意空间。用户可以通过简单的输…

MySQL 9从入门到性能优化-权限表

【图书推荐】《MySQL 9从入门到性能优化&#xff08;视频教学版&#xff09;》-CSDN博客 《MySQL 9从入门到性能优化&#xff08;视频教学版&#xff09;&#xff08;数据库技术丛书&#xff09;》(王英英)【摘要 书评 试读】- 京东图书 (jd.com) MySQL9数据库技术_夏天又到了…

杨辉三角 II

给定一个非负索引 rowIndex&#xff0c;返回「杨辉三角」的第 rowIndex 行。 在「杨辉三角」中&#xff0c;每个数是它左上方和右上方的数的和。 示例 1: 输入: rowIndex 3 输出: [1,3,3,1]示例 2: 输入: rowIndex 0 输出: [1]示例 3: 输入: rowIndex 1 输出: [1,1]提示…

开源模型应用落地-Qwen2-VL-7B-Instruct-vLLM-OpenAI API Client调用

一、前言 学习Qwen2-VL &#xff0c;为我们打开了一扇通往先进人工智能技术的大门。让我们能够深入了解当今最前沿的视觉语言模型的工作原理和强大能力。这不仅拓宽了我们的知识视野&#xff0c;更让我们站在科技发展的潮头&#xff0c;紧跟时代的步伐。 Qwen2-VL 具有卓越的图…

C语言程序设计:现代设计方法习题笔记《chapter4》

第一题 示例代码&#xff1a; #include<stdio.h>int main() {printf("Enter a two-digit number: ");int number,ten_n,g_n;scanf_s("%d", &number);ten_n number / 10;g_n number % 10;printf("The reversal is %d%d", g_n, ten_n…

vscode离线状态ssh连接不断输入密码登不上:配置commit_id

如题&#xff0c;vscode在一个离线服务器上&#xff0c;通过remote-ssh登录远程服务器&#xff0c;不断弹出密码框&#xff0c;总是进不去&#xff0c;后来了解到主要是不同vscode版本需要下载对应抑制commit-id的vscode-server-linux-x64.tar.gz包。 1&#xff09;vscode, 点…

【2024最新】Process Lasso使用与安装教学

Process Lasso介绍 Process Lasso 是一款专为 Windows 系统设计的高级进程管理工具&#xff0c;旨在优化系统性能和响应速度。它通过智能调节进程的 CPU 优先级和核心绑定&#xff0c;确保关键应用程序&#xff08;如游戏&#xff09;获得更多的处理资源。用户可以手动设置进程…