当前位置: 首页 > news >正文

第三节、电机定速转动【51单片机-TB6600驱动器-步进电机教程】

摘要:本节介绍用定时器定时的方式,精准控制脉冲时间,从而控制步进电机速度

一、计算过程
1.1 电机每一步的角速度等于走这一步所花费的时间,走一步角度等于步距角,走一步的时间等于一个脉冲的时间
w = s t e p t … … ① w=\frac{step}{t} ……① w=tstep……

w:角速度(°/s)
step:步距角(°)
t:脉冲时间(s)

1.2 TB6600及其他驱动器大多具有细分功能,考虑细分X之后,一个脉冲转动的角度为step/X,带入①式:
w = s t e p t ∗ X … … ② w=\frac{step}{t*X} ……② w=tXstep……

X:驱动器细分(X=1,2,4,8,16,32……)

1.3 电机速度通常使用单位为转速RPM(转/分),角速度(°/S)与转速之间的转换关系:
w = 6 ∗ n … … ③ w=6*n ……③ w=6n……

t = s t e p 6 ∗ n ∗ X … … ④ t=\frac{step}{6*n*X} ……④ t=6nXstep……

n:转速(RPM)
至此得到了步进电机一个脉冲的时间t

1.4 采用51单片机16位溢出定时器的模式去定时,可以得到:
C = 65536 − t ∗ X t a l 12 … … ⑤ C=65536-t*\frac{Xtal}{12} ……⑤ C=65536t12Xtal……

C:16位溢出定时器初值
Xtal:晶振频率

1.5 将④带入⑤可得:
C = 65536 − s t e p ∗ X t a l 72 ∗ X ∗ n … … ⑥ C=65536-\frac{step*Xtal}{72*X*n}……⑥ C=6553672XnstepXtal……

1.6 对于二相步进电机步距角为step=1.8°,带入之后可得:
C = 65536 − X t a l 40 ∗ X ∗ n … … ⑦ C=65536-\frac{Xtal}{40*X*n}……⑦ C=6553640XnXtal……

至此得到了转速n与定时初值C的函数关系

二、举例计算
步进电机使用二相四线电机,驱动器细分值设定为2,单片机晶振频率为12000000,设定转速为100RPM,带入⑦可得:
C = 65536 − 12000000 40 ∗ 2 ∗ 100 = 64036 C=65536-\frac{12000000}{40*2*100} =64036 C=6553640210012000000=64036

定时器0初值高8位TH0= C/256=0XFA
定时器0初值低8位TL0= C%256=0X24

三、测试
烧录hex文件后,单片机上电,电机会以100RMP速度匀速转动
请添加图片描述

四、功能扩展
扩展1
① 增加4个按键,控制电机启停、方向、速度加减
② 增加数码管,显示信息
在这里插入图片描述

扩展2
① 增加4个按键,控制电机启停、方向、速度加减
② 增加1602LCD,显示信息
在这里插入图片描述

五、总结
至此一个基本的电机定速驱动程序完成,通过调整定时时间,可以精确调整电机的转速
此种方式利用定时器精确定时能力,从而控制电机转速,是后续电机加减速运动的理论基础

五、附件
测试程序请见百度网盘
链接: https://pan.baidu.com/s/157zhD4JJLsjp0STiIE9MDQ
提取码: cj5j

↓↓↓点击下方【目录】,查看本系列全部文章

http://www.lryc.cn/news/501668.html

相关文章:

  • 从一个Bug谈前端响应拦截器的应用
  • JS进阶DAY4|节点操作
  • 【Web】2023安洵杯第六届网络安全挑战赛 WP
  • go 语言中协程和GMP模型
  • coco数据集转换SAM2格式
  • 【CMD、PowerShell和Bash设置代理】
  • 22智能 代码作业集合
  • 实现一个简单的后台架子(侧边栏菜单渲染,折叠,黑白主题,组件主题色,全屏,路由快捷栏)
  • vue3-canvas实现在图片上框选标记(放大,缩小,移动,删除)
  • unity3d—demo(2d人物左右移动发射子弹)
  • 【ETCD】【源码阅读】 深入解析 raftNode.start`函数:Raft 核心启动逻辑剖析
  • Robust Depth Enhancement via Polarization Prompt Fusion Tuning
  • NEFTune,SFT训练阶段给Embedding加噪音
  • uniapp -- 实现页面滚动触底加载数据
  • L22.【LeetCode笔记】相交链表(新版)
  • 智能时代网络空间认知安全新观察
  • 游戏如何应对模拟器作弊
  • c++ 判断一个 IP 地址(可能是 IPv6 或 IPv4)是否属于特定范围
  • 计算机视觉——相机标定(Camera Calibration)
  • 【qt环境配置】windows下的qt与vs工具集安装\版本对应关系
  • GitHub使用
  • 元宇宙时代的社交平台:Facebook的愿景与实践
  • vue2中各种钩子函数的总结以及使用场景
  • 软件架构:从传统单体到现代微服务的技术演变
  • git新建远程分支后,无法切换
  • 【SpringBoot】31 Session + Redis 实战
  • 在Windows环境下的rknn-toolkit环境搭建
  • Facebook广告突然无消耗?原因解析与解决方案。
  • Rabbitmq 镜像队列
  • TensorBoard