电子发烧友网 > 控制/MCU > 正文

单片机对28BYJ-48步进电机的控制设计

2018年11月22日 15:46 次阅读

再重新看一下上面的步进电机外观图和内部结构图:步进电机一共有5根引线,其中红色的是公共端,连接到 5 V 电源,接下来的橙、黄、粉、蓝就对应了 A、B、C、D 相;那么如果要导通 A 相绕组,就只需将橙色线接地即可,B 相则黄色接地,依此类推;再根据上述单四拍和八拍工作过程的讲解,可以得出下面的绕组控制顺序表,如表9-1所示:

单片机对28BYJ-48步进电机的控制设计

我们板子上控制步进电机部分是和板子上的显示控制的 74HC138 译码器部分复用的 P1.0~P1.3,关于跳线我们在第3章已经讲过了,通过调整跳线帽的位置可以让 P1.0~P1.3控制步进电机的四个绕组,如图9-5所示。

单片机对28BYJ-48步进电机的控制设计

图9-5 显示译码与步进电机的选择跳线

如果要使用电机的话,需要把4个跳线帽都调到跳线组的左侧(开发板上的实际位置),即左侧针和中间针连通(对应原理图中的中间和下边的针),就可以使用 P1.0 到 P1.3 控制步进电机了,如要再使用显示部分的话,就要再换回到右侧了。那如果大家既想让显示部分正常工作,又想让电机工作该怎么办呢?跳线帽保持在右侧,用杜邦线把步进电机的控制引脚(即左侧的排针)连接到其它的暂不使用的单片机 IO 上即可。

再来看一下我们步进电机的原理图,步进电机的控制电路如图9-6所示。

单片机对28BYJ-48步进电机的控制设计

图9-6 步进电机控制电路

诚然,单片机的 IO 口可以直接输出 0 V 和 5 V 的电压,但是电流驱动能力,也就是带载能力非常有限,所以我们在每相的控制线上都增加一个三极管来提高驱动能力。由图中可以看出,若要使 A 相导通,则必须是 Q2 导通,此时 A 相也就是橙色线就相当于接地了,于是A 相绕组导通,此时单片机 P1 口低4位应输出 0b1110,即 0xE;如要 A、B 相同时导通,那么就是 Q2、Q3 导通,P1 口低4位应输出 0b1100,即 0xC,依此类推,我们可以得到下面的八拍节拍的 IO 控制代码数组:

unsignedcharcodeBeatCode[8]={0xE,0xC,0xD,0x9,0xB,0x3,0x7,0x6};

到这里,似乎所有的逻辑问题都解决了,循环将这个数组内的值送到 P1 口就行了。但是,只要再深入想一下就会发现还有个问题:多长时间送一次数据,也就是说一个节拍要持续多长时间合适呢?是随意的吗?当然不是了,这个时间是由步进电机的启动频率决定的。启动频率,就是步进电机在空载情况下能够正常启动的最高脉冲频率,如果脉冲频率高于该值,电机就不能正常启动。表9-2就是由厂家提供的步进电机参数表,我们来看一下。

表9-2 28BYJ-48 步进电机参数表

供电电压相数相电阻Ω步进角度减速比启动频率P.P.S转矩g.cm噪声dB绝缘介电强度5V450±10%5.625/641:64≥550≥300≤35600VAC

表中给出的参数是≥550,单位是 P.P.S,即每秒脉冲数,这里的意思就是说:电机保证在你每秒给出550个步进脉冲的情况下,可以正常启动。那么换算成单节拍持续时间就是 1 s/550=1.8 ms,为了让电机能够启动,我们控制节拍刷新时间大于 1.8 ms 就可以了。有了这个参数,我们就可以动手写出最简单的电机转动程序了,如下:

#includeunsignedcharcodeBeatCode[8]={//步进电机节拍对应的IO控制代码0xE,0xC,0xD,0x9,0xB,0x3,0x7,0x6};voiddelay();voidmain(){unsignedchartmp;//定义一个临时变量unsignedcharindex=0;//定义节拍输出索引while(1){tmp=P1;//用tmp把P1口当前值暂存tmp=tmp&0xF0;//用&操作清零低4位//用|操作把节拍代码写到低4位tmp=tmp|BeatCode[index];//把低4位的节拍代码和高4位的原值送回P1P1=tmp;index++;//节拍输出索引递增index=index&0x07;//用&操作实现到8归零delay();//延时2ms,即2ms执行一拍}}/*软件延时函数,延时约2ms*/voiddelay(){unsignedinti=200;while(i--);}

把程序编译下载到板子上试试吧!看看电机转了没有?要记得换跳线哦!

技术专区

下载发烧友APP

打造属于您的人脉电子圈

关注电子发烧友微信

有趣有料的资讯及技术干货

关注发烧友课堂

锁定最新课程活动及技术直播
收藏 人收藏
分享:

评论

相关推荐

单片机多机通信的设计

写寄存器的时候,如果我们要把01写到一个地址是0000的寄存器地址里,点一下“写入”,就会出现发送指...

发表于 2018-11-22 15:20 10次阅读
单片机多机通信的设计

基于C51单片机的MP3播放器设计与实现

发表于 2018-11-22 11:17 27次阅读
基于C51单片机的MP3播放器设计与实现

一文了解磁电编码器的工作原理及适用领域

磁编码器是一种新型的角度或者位移测量装置,其原理是采用磁阻或元件对变化的磁性材料的角度或者位移值进行...

发表于 2018-11-22 10:35 20次阅读
一文了解磁电编码器的工作原理及适用领域

为什么单片机不能直接驱动继电器和电磁阀?

比如我这个继电器线圈的电阻,大概是71.7欧姆,加5V电压的话,电流就是5除以71.7约等于0.07...

发表于 2018-11-22 10:33 97次阅读
为什么单片机不能直接驱动继电器和电磁阀?

单片机复位的问题

发表于 2018-11-21 20:14 91次阅读
单片机复位的问题

51单片机入门教程之从原理到汇编

发表于 2018-11-21 17:46 293次阅读
51单片机入门教程之从原理到汇编

便携式封口机单片机芯片方案—深圳单片机开发方案公司

发表于 2018-11-21 17:21 21次阅读
便携式封口机单片机芯片方案—深圳单片机开发方案公司

两个单片机相互传输数据该如何接收数据?

发表于 2018-11-21 16:41 137次阅读
两个单片机相互传输数据该如何接收数据?

基于STM32高性能全数字式正弦波逆变电源的设计方案

发表于 2018-11-21 16:36 29次阅读
基于STM32高性能全数字式正弦波逆变电源的设计方案

单片机C语言双向通信程序设计

甲机向乙机发送控制命令字符,甲机同时接收乙机发送的数字,并显示在数码管上。

发表于 2018-11-21 16:33 135次阅读
单片机C语言双向通信程序设计

51单片机逐渐的被淘汰了,大家都去学32了

发表于 2018-11-21 16:33 368次阅读
51单片机逐渐的被淘汰了,大家都去学32了

学习STM32单片机,从菜鸟到牛人就是这样简单 (2)

发表于 2018-11-21 16:30 249次阅读
学习STM32单片机,从菜鸟到牛人就是这样简单 (2)

单片机与ARM谁更实用

一般在8位单片机与ARM方面的嵌入式系统是有层次上的差别,ARM适用于系统复杂度较大的高级产品,如P...

发表于 2018-11-21 15:33 67次阅读
单片机与ARM谁更实用

如何破解单片机解密芯片

单片机加解密可划分为两大类,一类是硬件加解密,一类是软件加解密。硬件加密,对于单片机来说,一般是单片...

发表于 2018-11-21 15:06 72次阅读
如何破解单片机解密芯片

请问如何用PCF8591和51单片机实现测量0~5V的数字电压表,数码管显示?

发表于 2018-11-21 13:37 69次阅读
请问如何用PCF8591和51单片机实现测量0~5V的数字电压表,数码管显示?

请问ADF4350跳频杂散怎么解决

发表于 2018-11-21 09:45 18次阅读
请问ADF4350跳频杂散怎么解决

基于PIC12C508单片机对灯光系统的控制

以下程序使用PIC12C508 单片机 ,内部4MHz时钟,4脚输入50HZ脉冲信号,7,6,3脚(...

发表于 2018-11-20 15:37 47次阅读
基于PIC12C508单片机对灯光系统的控制

如何使用SAM4E单片机点亮LCD并显示出文字

在Atmel Studio 6中,集成了Atmel Software Framework(ASF框架...

发表于 2018-11-20 15:20 47次阅读
如何使用SAM4E单片机点亮LCD并显示出文字

单片机的空闲和掉电模式的应用

单片机进入空闲模式的时候,除了cpu处于休眠状态外,其余的硬件全部处于活动状态,芯片中未涉及的数据存...

发表于 2018-11-20 15:00 52次阅读
单片机的空闲和掉电模式的应用

单片机中的拉电流和灌电流是什么意思

单片机的拉电流和灌电流都是对单片机的输出而言的,是单片机驱动能力的具体体现。

发表于 2018-11-19 16:22 77次阅读
单片机中的拉电流和灌电流是什么意思

STM32F4的FPU性能的设置及要点

浮点运算一直是定点CPU的难题,比如一个简单的1.1+1.1,定点CPU必须要按照IEEE-754标...

发表于 2018-11-19 15:47 74次阅读
STM32F4的FPU性能的设置及要点

PIC16C5X系列单片机的四种振荡方式解析

PIC16C5X系列可以使用4种类型振荡方式:标准晶体/陶瓷振荡XT、高速晶体振荡HS(4MHz以上...

发表于 2018-11-19 15:43 32次阅读
PIC16C5X系列单片机的四种振荡方式解析

单片机调试有那些常见问题如何解决

error: #18: 6.error: #18: expected a ")" 如果是出现在c...

发表于 2018-11-17 11:50 500次阅读
单片机调试有那些常见问题如何解决

浅谈智能仪表未来发展趋势

智能仪表是以微型计算机(单片机)为主体,将计算机技术和检测技术有机结合,组成新一代“智能化仪表”。微...

发表于 2018-11-16 15:04 60次阅读
浅谈智能仪表未来发展趋势

C51单片机对五线四相八拍步进电机的控制设计

本试验板设有四个按键,其功能分别为“启动/停止”“正转/反转”“速度-”“速度+”。 定义P2...

发表于 2018-11-15 16:44 142次阅读
C51单片机对五线四相八拍步进电机的控制设计

浅析单片机数码管的8个段显示效果

数码管的 8 个段,我们直接当成 8 个 LED 小灯来控制,那就是 a、b、c、d、e、f、g、d...

发表于 2018-11-15 16:21 194次阅读
浅析单片机数码管的8个段显示效果

深度解析单片机复位电路

射频干扰,它是以空间电磁场的形式传递 在机器内部的导体(引线或零件引脚)感生出相应的干扰,可通过电磁...

发表于 2018-11-15 11:32 288次阅读
深度解析单片机复位电路

浅谈信源编码和信道编码的作用是什么

信源编码是一种以提高通信有效性为目的而对信源符号进行的变换,或者说为了减少或消除信源利余度而进行的信...

发表于 2018-11-15 09:12 50次阅读
浅谈信源编码和信道编码的作用是什么

PIC12F675单片机用于热释红外传感器中的应...

现在用于检测人员进出的探测器主要采用热释红外传感器。人体能够发射10μm左右的红外线,热释红外传感器...

发表于 2018-11-14 16:38 83次阅读
PIC12F675单片机用于热释红外传感器中的应...

探讨STC单片机烧写时出现的情况

MAX232转换板出口接三条线到STC单片机RXD,TXD和GND,单片机未通电,但这时RXD上有电...

发表于 2018-11-14 16:34 187次阅读
探讨STC单片机烧写时出现的情况

单片机最小系统的组成及其原理解析

单片机最小系统主要由电源、复位、振荡电路以及扩展部分等部分组成。

发表于 2018-11-14 16:06 146次阅读
单片机最小系统的组成及其原理解析

单片机采用串行方式对LCD12864的驱动

#i nclude #i nclude sbit SCLK =P1^3 //E s...

发表于 2018-11-12 15:19 98次阅读
单片机采用串行方式对LCD12864的驱动

如何测试单片机的数据类型字节数

i = sizeof(char);//char是一字节的变量 if(i == 1) { ...

发表于 2018-11-12 15:13 85次阅读
如何测试单片机的数据类型字节数

单片机中断源情况大汇总 嵌入式时代已经到来

嵌入式时代已经来了,不要纠结要不要踏入嵌入式的领域了,

发表于 2018-11-12 10:44 245次阅读
单片机中断源情况大汇总 嵌入式时代已经到来

如何提高单片机系统的可靠性

提高单片机系统可靠性的方法与措施很多。一般地,应根据系统所面临的具体的可靠性问题,针对引起或影响系统...

发表于 2018-11-09 15:20 111次阅读
如何提高单片机系统的可靠性

浅析伺服电机的原理、分类及与步进电机的区别

伺服电动机也可以叫做执行电动机,是自动控制系统中的执行元件,其工作是把收到的电信号转换成电动机轴上的...

发表于 2018-11-09 14:20 372次阅读
浅析伺服电机的原理、分类及与步进电机的区别

单片机中如何实现多线程

整个项目需要控制16台步进电机,21个电磁阀,3个泵,1个直流电机,系统要求全部执行时间为6秒钟,系...

发表于 2018-11-08 16:21 174次阅读
单片机中如何实现多线程

STM32F103试用体验:水共震准备材料中的过...

我这次要做的东东是一个水共震系统,说明:水共震系统是指在一个水盆里,有一个执行单元,通过电机和皮带,...

发表于 2018-11-08 10:38 294次阅读
STM32F103试用体验:水共震准备材料中的过...

一文了解逻辑分析仪当中的高级参数

对于快速高效的调试,选择逻辑分析仪解决方案时,需要重点评估仪器各方面参数,逻辑分析仪在数字电路的前期...

发表于 2018-11-08 09:07 63次阅读
一文了解逻辑分析仪当中的高级参数

比较逻辑分析仪与示波器之间的区别

目前电路的发展从抽象类似向着数字化发展,因此这些测量仪器的开发也正在朝着这种条件方法迈进。 现在,在...

发表于 2018-11-08 08:55 109次阅读
比较逻辑分析仪与示波器之间的区别

浅析单片机、ARM、FPGA 、嵌入式的特点

自带廉价的程序存储器(FLASH)和非易失的数据存储器(EEPROM)。这些存储器可多次电擦写,使程...

发表于 2018-11-07 09:54 487次阅读
浅析单片机、ARM、FPGA 、嵌入式的特点

如何系统地入门学习stm32?老司机筒子们有自己...

arm 官方也开始推这种通用库了。而此时st发现一剑走天涯的方法的确有很多弊端,开始了stmcube...

发表于 2018-11-06 17:07 562次阅读
如何系统地入门学习stm32?老司机筒子们有自己...

单片机无线传输系统的设计及nRF905无线收发模...

nRF905片内集成了电源管理、晶体振荡器、低噪声放大器、频率合成器、功率放大器等模块,曼彻斯特编码...

发表于 2018-11-06 16:00 93次阅读
单片机无线传输系统的设计及nRF905无线收发模...

五花八门的关于单片机的开发经验

AT89C51我认为是一个非常标准的51单片机了,4个P口,1个串口,RAM只有标准的128Byte...

发表于 2018-11-06 15:58 418次阅读
五花八门的关于单片机的开发经验

浅析单片机中断处理过程

中断处理过程可分为中断响应、中断处理和中断返回三个阶段。

发表于 2018-11-06 14:31 244次阅读
浅析单片机中断处理过程

如何使用可编程斜坡发生器外设创建参考信号和时序源

可编程斜坡发生器(PRG)(在Microchip最近推出的几款8位PIC 单片机上提供)是一种高度灵...

发表于 2018-11-06 09:15 190次阅读
如何使用可编程斜坡发生器外设创建参考信号和时序源

单片机中的定时计数器的四种工作方式解析

在单片机中有两个特殊功能寄存器与定时/计数有关,这就是TMOD和TCON。,TMOD和TCON是名称...

发表于 2018-11-05 16:11 154次阅读
单片机中的定时计数器的四种工作方式解析

借助Vivado来学习FPGA的各种配置模式

单片机是基于FLASH结构的,所以单片机上电直接从本地FLASH中运行。但SRAM 架构的FPGA是...

发表于 2018-11-05 15:12 399次阅读
借助Vivado来学习FPGA的各种配置模式

单片机IO口另外三种状态

标准 51 单片机的P0 口默认就是开漏输出,如果要用的时候外部需要加上拉电阻。而强推挽输出就是有比...

发表于 2018-11-05 11:40 570次阅读
单片机IO口另外三种状态

上拉电阻应用很多,都可以起到什么作用呢?

加大普通 IO 口的驱动能力。标准 51 单片机的内部 IO 口的上拉电阻,一般都是在几十 K 欧,...

发表于 2018-11-05 11:35 473次阅读
上拉电阻应用很多,都可以起到什么作用呢?

为何不在单片机上实现PLC的逻辑呢?

内存规划,包括堆栈区的设置,定时器,计数器的累加值和预设值地址等等,目前初步定义8个计数器的当前计数...

发表于 2018-11-05 11:31 519次阅读
为何不在单片机上实现PLC的逻辑呢?

开发单片机时需掌握的四个基本技巧

在单片机应用开发中,代码的使用效率问题、单片机抗干扰性和可靠性等问题仍困扰着。现归纳出单片机开发中应...

发表于 2018-11-05 11:21 389次阅读
开发单片机时需掌握的四个基本技巧

准备学习单片机,该做哪些准备呢?

这估计是争论最大的一个问题了,有些人坚持学单片机软件一定要用汇编,也有人坚持选择高级语言。C51刚推...

发表于 2018-11-05 11:00 460次阅读
准备学习单片机,该做哪些准备呢?

单片机为什么需要晶振?外接晶体的值可以随意选择呢...

获取稳定的脉冲!那只要有合适的方法生成稳定的脉冲,那就可以去掉外接的晶体。举例,AVR单片机,它在单...

发表于 2018-11-05 10:40 374次阅读
单片机为什么需要晶振?外接晶体的值可以随意选择呢...

单片机、ARM、DSP与CPU之间的关系大揭秘

你知道单片机、ARM、DSP都是CPU吗,它们之间又有什么不同,小编进行了整理和编辑。

发表于 2018-11-02 17:38 618次阅读
单片机、ARM、DSP与CPU之间的关系大揭秘

单片机中的上下拉电阻有什么作用

上拉电阻就是将不确定的信号通过一个电阻拉到高电平,同时此电阻也起到一个限流作用,下拉就是下拉到低电平...

发表于 2018-11-02 16:22 179次阅读
单片机中的上下拉电阻有什么作用

单片机中的CY与OV详细解析

CY(Carry): 用于表示加法进算中的进位和减法运算中的借位,加法运算中有进位或减法运算中有借位...

发表于 2018-11-02 16:15 155次阅读
单片机中的CY与OV详细解析

基于STM32单片机的64Mbit单对单通信

简单的一种应用,ARM芯片作为master,flash为slaver,实现单对单通信。

发表于 2018-11-02 14:19 265次阅读
基于STM32单片机的64Mbit单对单通信

AVR系列单片机的主要特性及选型

AVR单片机是1997年由ATMEL公司研发 出的增强型内置Flash的RISC(Reduced I...

发表于 2018-11-02 09:20 343次阅读
AVR系列单片机的主要特性及选型

单片机中的冷复位和热复位是什么意思

冷复位用英文来表示是Restart,热复位用英文来表示是Reset。

发表于 2018-11-01 16:25 194次阅读
单片机中的冷复位和热复位是什么意思

单片机存储器的工作原理及选片与总线的概念解析

存储器就是用来存放数据的地方。它是利用电平的高低来存放数据的,也就是说,它存放的实际上是电平的高、低...

发表于 2018-11-01 16:15 120次阅读
单片机存储器的工作原理及选片与总线的概念解析

基于单片机的I2C和EEPROM连接

在实际的应用中,保存在单片机RAM中的数据,掉电后就丢失了,保存在单片机的FLASH 中的数据,又不...

发表于 2018-11-01 10:38 297次阅读
基于单片机的I2C和EEPROM连接

面对芯片及其相关的软件开发技术的快速发展变化如何...

单片机不是裸奔就是RTOS,其实玩过RTOS和linux的同学都知道,RTOS虽然也叫操作系统,但是...

发表于 2018-10-31 17:05 444次阅读
面对芯片及其相关的软件开发技术的快速发展变化如何...

单片机通用寄存器的分类及应用

通用寄存器可用于传送和暂存数据,也可参与算术逻辑运算,并保存运算结果。除此之外,它们还各自具有一些特...

发表于 2018-10-31 16:50 127次阅读
单片机通用寄存器的分类及应用

单片机为何不能直接驱动继电器

虽然这个问题对于电子老白来说不值一提,不过对于初学单片机的朋友,问这个问题的人实在是太多了,以前总是...

发表于 2018-10-31 16:23 488次阅读
单片机为何不能直接驱动继电器

如何实现单片机UART串行数据与CAN数据之间相...

GCAN-601模块是嵌入式单片机UART串口转CAN模块,可实现将UART串行数据与CAN数据之间...

发表于 2018-10-31 16:00 400次阅读
如何实现单片机UART串行数据与CAN数据之间相...

单片机硬件电路设计的七个原则分享

一个单片机硬件系统的硬件电路设计包含两部分内容:一是系统扩展,即单片机内部的功能单元,如ROM、RA...

发表于 2018-10-30 16:22 204次阅读
单片机硬件电路设计的七个原则分享

单片机实现利用中断复位的两种方式

如果想要实现利用中断复位,我所知道的有两种方式:看门狗中断和无中断服务程序的中断。

发表于 2018-10-30 15:55 312次阅读
单片机实现利用中断复位的两种方式

简单分析树莓派的优点与缺点

关于树莓派,想必从事嵌入式开发的开发者都有听过,树莓派原名为Raspberry Pi,也就是它的英文...

发表于 2018-10-30 15:08 503次阅读
简单分析树莓派的优点与缺点

Arduino/树莓派/单片机/arm区别分析

Arduino是一款由开源软件环境提供支撑的开源硬件原型平台。最早是意大利的一个团队的一个开源项目,...

发表于 2018-10-30 11:06 423次阅读
Arduino/树莓派/单片机/arm区别分析