DRV8818步进电机一种应用场景及实现思路
一、应用场景
步进电机带动齿轮旋转,齿轮过孔和托盘孔重合之后,停止旋转,保证每次齿轮和托盘的过孔重合之后再停止工作。适用于齿轮下药装置。
二、分析
1.步进电机有3个控制脚:PUL脉冲、电机正反转、电源开关
2.电机旋转起始和停止位置,考虑失步情况
3.加一个霍尔开关传感器(DH627)用于校准起始位置和控制停止位置,解决失步问题
三、实现思路
齿轮上盖加开槽一个霍尔开关,齿轮开孔加一个磁铁,当霍尔开关和磁铁距离1cm以内时,输入脚(DH627_OnOff)为高电平,反之,则低电平。
1.上电校准
每次上电检测霍尔开关输入脚是否为高电平,如果为低电平则开启电机旋转(正转、反转根据需求),直到检测到DH627_OnOff为高电平,则校准完成,即为起始位置。
2.开始工作
启动电机:开启电源(高电平)--输入方向(0或1)--PUL脉冲(低电平),开启定时器,加一个电机开始标志位(MONTOR_START_FLAG),这时候先让电机脱离霍尔感应区域再判断DH627_OnOff是否为高电平,高则停止旋转,这里是一个小逻辑,用来解决电机工作之后判断停止位置。代码如下:(这一段代码放在定时器中)
if(Start_Motor_Calibration) //开机回归原点检测{if(DH627_OnOff){ GPIO_ResetBits(GPIO_MOTOR_PUL,GPIO_Pin_MOTOR_PUL);//PUL脉冲GPIO_ResetBits(GPIO_MOTOR_DIR,GPIO_Pin_MOTOR_DIR);//方向MOTOR_POWER_OFF; //关闭步进电机电源 TIM_ITConfig(TIM3,TIM_IT_Update,DISABLE); //关闭定时器3中断 Start_Motor_Calibration=0;}}if(MONTOR_START_FLAG) //电机开启{if(!DH627_OnOff){MONTOR_START_FLAG=0;MONTOR_LEAVE_FLAG=1;}}if(MONTOR_LEAVE_FLAG){if(DH627_OnOff){MONTOR_LEAVE_FLAG=0;GPIO_ResetBits(GPIO_MOTOR_PUL,GPIO_Pin_MOTOR_PUL);GPIO_ResetBits(GPIO_MOTOR_DIR,GPIO_Pin_MOTOR_DIR);MOTOR_POWER_OFF; //关闭步进电机电源 }}
DRV8818步进电机一种应用场景及实现思路相关推荐
- java get请求传参_Java-ThreadLocal三种使用场景
ThreadLocal对于每一位Java读者而言我想可能都不陌生,因为面试基本都会被问到. Java-ThreadLocal三种使用场景 关于ThreadLocal JDK1.2的版本中就提供java ...
- Numpy中np.mashgri() 函数介绍及2种应用场景
@[toc](Numpy中np.mashgri() 函数介绍及2种应用场景 文章目录:) 近期在好几个地方都看到meshgrid的使用,虽然之前也注意到meshgrid的用法. 但总觉得印象不深刻,不 ...
- Java CountDownLatch的两种常用场景
转载请标明出处:http://blog.csdn.net/zhaoyanjun6/article/details/120506758 本文出自[赵彦军的博客] 文章目录 简介 场景1 让多个线程等待: ...
- Redis 几种应用场景
Redis 几种应用场景 字符串缓存 <?php$redis = new Redis();$redis->connect('127.0.0.1',6379);$strKey = 'test ...
- 面试一口气说出Spring的声明式事务@Transactional注解的6种失效场景
一.Spring事务管理的两种方式 事务管理在系统开发中是不可缺少的一部分,Spring提供了很好事务管理机制,主要分为编程式事务和声明式事务两种. 编程式事务:是指在代码中手动的管理事务的提交.回滚 ...
- table表头固定4种方法_在常见的3种工资条场景中,教你4种批量打印工资条的方法...
私信回复关键词[福利]~ 获取丰富办公资源,助你高效办公早下班! 打印工资条估计是财务老师的痛,要把一行行的数据,变成一条条的工资条. 数据很多,表头很复杂. 一个个复制粘贴?那是不可能的! 那怎么办 ...
- Synchronized 的 8 种使用场景!
blog.csdn.net/x541211190/article/details/106272922 简介 本文将介绍8种同步方法的访问场景,我们来看看这8种情况下,多线程访问同步方法是否还是线程安全 ...
- 应用Quick BI实现首购用户和用户首购的三种运营场景监控
导读: 首购用户和用户首购是互联网公司运营中最简单.最常遇到.也最容易混淆的两个概念.运营人员与BI经常在首购用户和用户首购上沟通不畅,信息不对称造成理解偏差,导致数据仓库模型或者BI仪表板一改再改. ...
- mysql replace 效率,MySQL replace实用场景 MySQL实现replace函数的几种实用场景
想了解MySQL实现replace函数的几种实用场景的相关内容吗,_陈哈哈在本文为您仔细讲解MySQL replace实用场景的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:MySQL,r ...
最新文章
- 两个有序单链表的并交差运算
- RequisitePro SQL SERVER数据库的配置
- 高效算法——E - 贪心-- 区间覆盖
- nlp 中文停用词数据集
- 【小记】-006--关于高度塌陷的问题
- 前端学习(6):javascript简介
- 鸿蒙思维和小央美,中心路汝南路站附近艺术培训
- 适合新手入门的8个python项目_推荐:一个适合于Python新手的入门练手项目
- 渐进式app_如何编写渐进式Web App新闻网站
- bash: !: event not found
- Djanog结合jquery实现ajax
- 异常:由于代码已经过优化或者本机框架位于调用堆栈之上,无法计算表达式的值。...
- vmware workstation中Linux虚拟机固定IP
- Elasticsearch refresh
- 【转载】深入了解scanf()/getchar()和gets()等函数,C++系列教程,C++实例教程,C++
- Atlas 200 HiLens Kit
- OKRs, How Google sets goals, Startup Lab workshop | Chatopera
- Mac pro20版本的Endnote20关联word经历
- Linux 安装gcc编译器
- 数字图像处理习题(一)