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

#单片机(TB6600驱动42步进电机)

1.IDE:keil


2.设备:保密


3.实验:使用单片机通过普通IO口控制TB6600驱动42步进电机


4.时序图:

TB6600

ENA+、ENA-DIR-、DIR+PUL-、PUL+B-、B+A+、A-VCC、GND
使能电机(直接悬空不接)方向脉冲输入(普通IO口模拟即可)同组同组看驱动的电机的电压

s1-s6根据驱动的电机设置电机驱动板,在下面第二张图里面可以看到 

S1-S3设置步进电机的细分:

比如S1-ON,S2-ON,S3-OFF那么Pul输入200个脉冲,电机转一圈,

360度/200=1.8度,一个脉冲,电机转1.8度。

比如S1-ON,S2-OFF,S3-ON那么Pul输入400个脉冲,电机转一圈,

360度/400=0.9度,一个脉冲,电机转0.9度。

S4-S6设置电机的驱动电流:

我们现在使用的42步进电机,驱动电流为1A,所以S4-ON,S5-OFF,S6-ON。(根据使用的电机设置)

42步进电机

供电12V

如何判断是否好坏:

所有线拧在一起,用手转电机,转不动,再把线散开,能转动电机,则证明电机为好的。

如何判断两根线是否为同一组:

一般默认红(A+)黑(A-)为一组,蓝(B+)绿(B-)为一组,但是有些不是的。将四根线,两根两根的拧在一起,转动电机,转动有阻力则为一组,没有阻力则不是一组。

接法:

(1)共阴极:DIR-、PUL-、单片机GND接在一起,DIR+、PUL+接单片机IO口(高电平有效)

(2)共阳极:DIR+、PUL+、单片机VCC接在一起,DIR-、PUL-接单片机IO口(低电平有效)

(3)VCC直流电源正极12V,GND接直流电源负极

(4)A+、A-、B+、B-理论上说只要能保证同一组即可

(5)ENA悬空

部分问题:

(1)脉冲频率不要过高,否则会出现电机响而不转

(2)注意电机负重不要过大


5.步骤:

(1)TB6600图片

 

(2)42步进电机图片

(该步进电机为红黑一组,本人的步进电机为黑绿一组(相邻且有排子),具体情况按上述说明测试)


6.代码:

/**一个脉冲(无细分下转动1.8度)*/
void Step_Run_OnePulse(void)
{Pulse_High;Delay_ms(20);Pulse_Low;Delay_ms(20);}/**指定方向转动指定角度*细分200情况下:转一圈为360/1.8=200个脉冲*/
void Step_Run_SpecifyAngle(u8 dir,u8 angle)
{u8 pulse_number=0;if(dir == Clockwise)               //顺时针Dir_High;else  if(dir == Counterclockwise)  //逆时针Dir_Low;pulse_number = (u8)((float)angle / 1.8);   //得到需要转动到指定角度的脉冲数for(pulse_number ;pulse_number > 0;pulse_number--)Step_Run_OnePulse();
}

相关文章:

  • yolov9从头开始训练
  • STM32------分析GPIO寄存器
  • mysql timestamp转换为datetime
  • 课时51:表达式_表达式进阶_综合实践
  • 【Linux深入剖析】进程控制 | 进程程序替换--长篇深层次讨论
  • 机器学习笔记 YOLOv9模型相关论文简读
  • 1. 开发环境搭建
  • 瑞_Redis_Redis命令
  • x-pack的破解方式和免费jar包!!可直接用!!
  • 2024年四川媒体新闻发布渠道,媒体邀约资源表
  • 嵌入式驱动学习第一周——git的使用
  • MariaDB MaxScale实现mysql8读写分离
  • Mysql 的高可用详解
  • day10_日志模块AOP
  • JavaWeb HTTP 请求头、请求体、响应头、响应体、响应状态码
  • 「译」Node.js Streams 基础
  • 【EOS】Cleos基础
  • co模块的前端实现
  • flask接收请求并推入栈
  • Java小白进阶笔记(3)-初级面向对象
  • PHP 小技巧
  • swift基础之_对象 实例方法 对象方法。
  • 对JS继承的一点思考
  • 多线程 start 和 run 方法到底有什么区别?
  • 个人博客开发系列:评论功能之GitHub账号OAuth授权
  • 数据库写操作弃用“SELECT ... FOR UPDATE”解决方案
  • 这几个编码小技巧将令你 PHP 代码更加简洁
  • 自制字幕遮挡器
  • 3月7日云栖精选夜读 | RSA 2019安全大会:企业资产管理成行业新风向标,云上安全占绝对优势 ...
  • MyCAT水平分库
  • Prometheus VS InfluxDB
  • UI设计初学者应该如何入门?
  • zabbix3.2监控linux磁盘IO
  • 交换综合实验一
  • #LLM入门|Prompt#3.3_存储_Memory
  • (04)odoo视图操作
  • (6)【Python/机器学习/深度学习】Machine-Learning模型与算法应用—使用Adaboost建模及工作环境下的数据分析整理
  • (delphi11最新学习资料) Object Pascal 学习笔记---第5章第5节(delphi中的指针)
  • (MATLAB)第五章-矩阵运算
  • (超简单)使用vuepress搭建自己的博客并部署到github pages上
  • (分享)一个图片添加水印的小demo的页面,可自定义样式
  • (附源码)计算机毕业设计SSM在线影视购票系统
  • (排序详解之 堆排序)
  • (七)理解angular中的module和injector,即依赖注入
  • (入门自用)--C++--抽象类--多态原理--虚表--1020
  • (转)Mysql的优化设置
  • (最全解法)输入一个整数,输出该数二进制表示中1的个数。
  • .net 7 上传文件踩坑
  • .Net 访问电子邮箱-LumiSoft.Net,好用
  • .NET 应用启用与禁用自动生成绑定重定向 (bindingRedirect),解决不同版本 dll 的依赖问题
  • .NET/C# 反射的的性能数据,以及高性能开发建议(反射获取 Attribute 和反射调用方法)
  • .netcore如何运行环境安装到Linux服务器
  • .net生成的类,跨工程调用显示注释
  • .NET中使用Protobuffer 实现序列化和反序列化
  • @GetMapping和@RequestMapping的区别