96SEO 2026-02-20 01:22 18
https://item.taobao.com/item.htm?id728461040949

配套资料获取https://renesas-docs.100ask.net
https://blog.csdn.net/qq_35181236/article/details/132779862
本书使用的步进电机型号是28BYJ-48它是一款常见的步机电机其名称的含义为外径28毫米四相八拍式永磁减速型步进电机。
型号的含义如下
28步进电机的有效最大外径是28毫米B表示是步进电机Y表示是永磁式J表示是减速型减速比1:6448表示四相八拍
先看里圈它上面有8个齿分别标注为07这个叫做转子顾名思义它是要转动的。
转子的每个齿上都带有永久的磁性是一块永磁体这就是“永磁式”的概念。
再看外圈这个是定子它是保持不动的实际上它是跟电机的外壳固定在一起的。
定子有ABCD四组共32个齿每个齿上都缠上了一个线圈绕组。
A组有8个线圈绕组它们是串联在一起的这8个线圈绕组会同时导通或关断。
B、C、D组也是一样的如此就形成了4相在图中分别标注为
A-B-C-D这就是“4相”的概念。
相邻定子之间的夹角为360/3211.25度。
步进电机一共有5根线引出红色是公共端接5v电源其他四根分别对应A,B,C
假设初始状态时A导通A组的8个线圈绕组都有磁力吸引住8个转子8个转子和8个A组定子对齐如上图所示。
然后让A断开B导通此时B组的8个线圈绕组会把距离它最近的8个转子吸引过来使得转子和B组的定子对齐。
以0号转子为例它从正对着A定子的位置顺时针旋转到正对着B定子的位置顺时针旋转了11.25度。
紧接着让B断开C导通此时C组的8个线圈绕组会把距离它最近的8个转子吸引过来使得转子和C组的定子对齐。
以0号转子为例它从正对着B定子的位置顺时针旋转到正对着C定子的位置再次顺时针旋转了11.25度。
当我们依次单独导通ABCD时电动机就顺时针转到起来了。
单独导通ABCD的某一组线圈绕组时转子旋转11.25度这个值就叫做步进角度。
而上述这种工作模式就是步进电机的单四拍模式。
同样的道理如果想让转子逆时针转动可以依次单独导通DCBA。
我们再来介绍一种具有更优性能的工作模式那就是在单四拍的每两个节拍之间再插入一个双绕组导通的中间节拍组成八拍模式。
两个绕组的定子齿对它们附近的转子齿同时产生相同的吸引力这将0号转子处于
两个定子中间也就是新插入的这个节拍使转子转过了上述单四拍模式中步进角度的一半即5.625度。
这样一来就使转动精度增加了一倍而转子转动一圈则需要8*864拍了。
另外新增加的这个中间节拍还会在原来单四拍的两个节拍引力之间又加了一把引力从而可以大大增加电机的整体扭力输出使电机更“有劲”了而且更平顺。
下表给出八拍模式下电机绕组激励时序电机引线颜色可能因厂家不同而不同
本文将以八拍模式展开编程演示当按照下表的数值连续给电机提供激励时电机就逆时针转起来。
28BYJ-48为减速电机电机输出的转速并不等于转子的转速。
下图是这个28BYJ-48步进电机的拆解图从图中可以看到位于最中心的那个白色小齿轮才是步进电机的转子输出64个节拍只是让这个小齿轮转了一圈然后它带动那个浅蓝色的大齿轮这就是一级减速。
右上方的白色齿轮的结构除电机转子和最终输出轴外的3个传动齿轮都是这样的结构由一层多齿和一层少齿构成而每一个齿轮都用自己的少齿层去驱动下一个齿轮的多齿层这样每2个齿轮都构成一级减速一共就有了4级减速。
根据28BYJ-48电机原理我们只需要将开发板的四个引脚通常为GPIO分别连接到电机再按照电机的驱动逻辑给出一定的激励信号。
但是开发板的GPIO驱动能力有限需要在开发板和电机之间加入驱动电路本教程选择了双路有刷直流马达驱动芯片MX1508驱动电路原理图见下图
开发板的GPIO0~GPIO3引脚直接连接MX1508的INA1、INB1、INA2、INB2。
MX1508的输出端OUTA1、OUTB1、OUTA2、OUTB2分别接到步进电机28BYJ-48的A、B、C、D四个线圈。
所以可以通过开发板的4个GPIO引脚间接控制电机的ABCD。
并不是使用4个GPIO简单地控制ABCD它们不是一一对应的关系。
在待机模式下INAxINBxL。
包括驱动功率管在内的所有内部电路都处于关断状态。
电路消耗极低极低的电流。
此时马达输出端
快速释放马达在短时间内就会停止转动。
注意在刹车模式下电路将消耗静态功耗。
PWM信号占空比的控制。
在这个模式下马达驱动电路是在导通和待机模式之间切换在待机模式下所有功率管都处于关断状态马达内部储存的能量只能通过功率
PWM信号占空比的控制。
在这个模式下马达驱动电路输出在导通和刹车模式之间在刹车模式下马达存储的能量通过低边的
上述真表中OUTAx/OUTBx输出Z高阻态、H高电平时连接到的电机线圈绕组都不会导通效果是一样的。
为了让ABCD输出8个节拍可以按照下图控制GPIO0~GPIO3
以第1个节拍为例想让D输出0ABC输出高电平或是高阻态怎么办换句话说想让OUTB2LOUTA2、OUTA1、OUTB1等于H或Z怎么办
根据真值表设置INA2H、INB2L可以让OUTA2H、OUTB2L
继续根据真值表设置INA1L、INB1L可以让OUTA1Z、OUTB1Z
所以要让D输出0ABC输出高电平或是高阻态时需要INA1L、INB1L、INA2H、INB2L。
即GPIO00、GPIO10、GPIO21、GPIO30用二进制表示即为0b0100即0x04。
{0x04,0x0c,0x08,0x09,0x01,0x03,0x02,0x06};
把4个GPIO配置为输出后将数组的值循环写到GPIO输出寄存器就可以让电机转动起来。
按照反向的顺序循环写GPIO输出寄存器就可以实现电机反转。
调节两个节拍间的周期可以改变电机转速。
本次实验实质上驱动的外设只有一个那就是GPIO。
但是为了更好的驱动电机本次实验还使用了UART让用户输入角度、速度并使用定时器来实现精准延时。
本实验使用的步进电机模块会接到扩展板的GPIO组会使用到4个GPIO来接电机驱动板的INA/B/C/D扩展板GPIO组原理图如下图所示
本实验使用的是GPIO0~3所以需要在RASC中将这4个IO对应的引脚配置为通用输出模式请读者参考本书前文对于GPIO的配置来配置这4个引脚。
设备对象封装》中已经将结果使用到的方法基本一致请读者参考前文了解设备对象封装的概念和方法以及下载本书配套资料调阅源码学习。
对于电机用户需要的操作是启停、设定转动角度角度、速度。
根据这些需求封装出电机的结构体dev_motor.h
}StepMotorDevice;然后在dev_motor.c里构造一个StepMotor结构体并给上层代码提高获得这个结构体的函数代码如下
本书并没有在Start函数中让步进电机转动仅仅是修改状态表示电机处于开启状态代码如下;
将电机状态标志赋值为0并且让步进电机的4个IO都输出低电平。
代码如下
通过前面的讲解可以知道24BYJ-48步进电机内部收到64个节拍会转动1圈转子通过减速齿轮驱动输出轴转动1/64圈。
那么要想输出轴转动1圈就需要给步进电机4096个节拍64*644096。
如果想要转动指定角度angle那么对应的拍数计算公式就是
另外还可以顺序、逆序使用S_CW[8]数组的值来驱动电机以实现反转、正转。
而电机转速则表现在每拍之间的间隔时间间隔越长转速越慢。
根据这些原理就可以将设置步进电机转角和转速的功能封装到一个函数中了
{0x04,0x0c,0x08,0x09,0x01,0x03,0x02,0x06};
int)(nAbsValue*4096/360);unsigned
ptdev-status)ptdev-Start(ptdev);for(unsigned
(7-(i0x07));gINAIO-Write(gINAIO,
((EightBeat[phase]0x08)0)?0:1);gINBIO-Write(gINBIO,
((EightBeat[phase]0x04)0)?0:1);gINCIO-Write(gINCIO,
((EightBeat[phase]0x02)0)?0:1);gINDIO-Write(gINDIO,
((EightBeat[phase]0x01)0)?0:1);mdelay(speed);}ptdev-Stop(ptdev);return
本次实验的方法是让用户通过串口输入角度、速度然后控制步进电机转动。
代码如下
{UartDevicesRegister();TimerDevicesRegister();IODevicesRegister();StepMotorDevice
Device!\r\n);return;}pMotor-Init(pMotor);pMotor-Start(pMotor);while(1){xprintf(Enter
speed);xprintf(\tValue:%d\tSpeed:%d\r\n,
将程序烧写到开发板中运行打开串口助手插上步进电机后通过串口助手输入转角和转速
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback