电机驱动开发

最近在搞电机驱动程序,感觉很简单,实际操作却发现里面还有很多猫腻(细节)。

电机在嵌入式设备中非常常见,例如云台的转动,都是靠电机来驱动的。

电机常见分步进电机、直流电机,相对来说步进电机精准度会更高,控制起来也更复杂。直流电机,往往需要接一个反馈,才能比较好的控制电机。

总体来说,电机驱动的目的:

1、电机开关

2、电机转动方向

3、电机转动距离(角度)

4、电机转动速度

把这几项管理好(协调好),就是驱动主要目的。

很多情况下,电机不仅仅是转与不转的关系,还应该有其他要求,因此需要程序或芯片来实现驱动功能。

以下是比较常见的架构:(当然现在驱动芯片很强,可以同时驱动多个电机)

作为程序员而言,其实是关心的,怎么通过MCU “调用” 驱动芯片,实现

开关切换、电机转动方向切换、电机转动速度调节之类的。

还好,本次同时接触了两款不同的驱动芯片,因此可以明确一点:不同驱动芯片驱动方式是不相同的!所以要分析对应的技术手册文档(往往都比较简单,虽然看起来内容很多)!

但不管怎么样,还是存在一些共同特性(后面会记录)。

先看下,其中一款驱动芯片引脚定义:

其实一开始,小白是看不懂的(当然有类似经验就好了)。总的来说,对软件而言,关心的有这几个:VREF1~VREF4、OUTx、Ixx、PHASE1~PHASE4,这几个(后面两组是用来Control input控制输入的,也就是开关)。

再来看看,驱动芯片内部结构:

就好比流程图一样,左边是我们要输入的(通过MCU),右边是控制输出的。逻辑也上很简单。

再来看看另外一款驱动芯片信息的

这款更简单,最多控制两路电机。

与上面那款比起来,共同关注是:VREFx、OUTx,表示的意思也是一样的。

其他常见引脚:

●EN 逻辑输入:它是芯片使能输入。低逻辑电平可切断桥 A 和桥 B 的所有功率 MOSFET。

此引脚还连至过电流和热保护电路的集电极以实现过电流保护。

●CLOCK 逻辑输入:它是步进时钟输入。在每个上升沿,状态机前进一步。例如HALF step模式下,如果输入一个 波形,则Step+1

●CW/CCW 逻辑输入:它选择了旋转的方向,注意这个不是电流控制方向。高逻辑电平设置的是顺时针方向,低逻辑电平设置的是逆时针方向。这个跟上面CLOCK有关系,要确认好,

就好比,现在要去调整开关(电风扇开关,设置风量大小);这个引脚的意思你要顺时针调,还是逆时针调

●HALF/FULL 逻辑输入:它是步进模式选择器。高逻辑电平设置的是半步进模式,低逻辑电平设置的是全步进模式。

●CONTROL 逻辑输入:它是衰变模式选择器。高逻辑电平设置的是慢衰变模式,低逻辑电平设置的是快衰变模式。

●VREFA 和 VREFB 模拟输入:它们分别是桥 A 和桥 B 的源引脚。(PWM输入)如果此处固定输入,则Iout是固定的,这里

核心内容:

控制开关输出:

第一款芯片,我们来看看手册,

大致意思是通过使能I0,I1,PHASE来控制输出方向状态之类;通过VREF来控制速度。这样不是就简单了嘛。但是需要怎么使能呢?还得看一张表:

圈出来的就是我们需要的。

第二款芯片,我们来看看手册,以Half step为例:

大致的意思:当选择half step(独立使能引脚)模式时,通过给不同数量的CLOCK可以实现不同形式切换。

这张图,看右侧波形,举个例子:

当step=4的时候,Iouta=CW,Ioutb=待机

当step=5的时候,Iouta=CW,Ioutb=CW

....

实际turn

A

B

实现效果

step1 

CCW(0)

CCW(0)

A、B反向输出

step2

-(2)

CCW(0)

A不输出,B反向

step3

CW(1)

CCW(0)

A正向,B反向

step4

CW(1)

-(2)

A正向,B不输出

step5

CW(1)

CW(1)

A正向,B正向

step6

-(2)

CW(1)

A不输出,B正向

step7

CCW(0)

CW(1)

A反向,B正向

step8

CCW(0)

-(2)

A方向,B不输出

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/221156.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GaussDB数据库表创建行访问控制策略

目录 一、前言 二、GaussDB中的行访问控制 1、CREATE ROW LEVEL SECURITY POLICY语法 2、ALTER ROW LEVEL SECURITY POLICY语法 3、ROW LEVEL SECURITY策略与适配SQL语法关系 三、GaussDB中的行访问控制策略示例 1、实现GaussDB行访问控制的一般步骤 2、行访问控制策略…

【Proteus仿真】【Arduino单片机】光照强度检测系统

文章目录 一、功能简介二、软件设计三、实验现象联系作者 一、功能简介 本项目使用Proteus8仿真Arduino单片机控制器,使共阳数码管,ADC模块、光敏传感器等。 主要功能: 系统运行后,数码管显示光传感器采集光照强度值,…

【深度学习目标检测】九、基于yolov5的路标识别(python,目标检测)

YOLOv5是目标检测领域一种非常优秀的模型,其具有以下几个优势: 1. 高精度:YOLOv5相比于其前身YOLOv4,在目标检测精度上有了显著的提升。YOLOv5使用了一系列的改进,如更深的网络结构、更多的特征层和更高分辨率的输入图…

MyBatis的ORM映射

目录 什么是ORM 一,列的别名 二,结果映射 三,总结 什么是ORM ORM:对象关系映射(Object Relational Mapping,简称ORM)模式是一种为了解决面向对象与关系数据库存在的互不匹配的现象的技术。简…

51单片机应用从零开始(十一)·数组函数、指针函数

51单片机应用从零开始(九)数组-CSDN博客 51单片机应用从零开始(十)指针-CSDN博客 目录 1. 用数组作函数参数控制流水花样 2. 用指针作函数参数控制 P0 口 8 位 LED 流水点亮 1. 用数组作函数参数控制流水花样 要在51单片机中…

使用matlab制作声音采样率转换、播放以及显示的界面

利用matlab做一个声音采样率转换、播放以及显示的界面 大抵流程: 图形界面创建:使用figure函数创建名为“声音采样率转换”的图形界面,并设置了其位置和大小。 按钮和文本框:使用uicontrol函数创建了选择音频文件的按钮、显示当前…

[PyTorch][chapter 8][李宏毅深度学习][Back propagation]

前言: 反向传播算法(英:Backpropagation algorithm,简称:BP算法)是一种监督学习算法,常被用来训练多层感知机。 它用于计算梯度计算中,降低误差。 目录: 链式法则 模型简介(Model) 损失函…

电脑风扇控制软件Macs Fan Control mac支持多个型号

Macs Fan Control mac是一款专门为 Mac 用户设计的软件,它可以帮助用户控制和监控 Mac 设备的风扇速度和温度。这款软件允许用户手动调整风扇速度,以提高设备的散热效果,减少过热造成的风险。 Macs Fan Control 可以在菜单栏上显示当前系统温…

【Git】Git基本操作

文章目录 Git 是什么Git 的优点Git 安装Linux UbuntuLinux CentOsWindows Git 基本操作1. 创建 Git 本地仓库2. 配置 Git3. Git工作区、暂存区和版本库4. 添加文件5. 查看 .git 文件6. 修改文件7. 版本回退 Git 是什么 Git是一个免费的、开源的分布式版本控制系统,…

行业追踪,2023-12-20

自动复盘 2023-12-20 凡所有相,皆是虚妄。若见诸相非相,即见如来。 k 线图是最好的老师,每天持续发布板块的rps排名,追踪板块,板块来开仓,板块去清仓,丢弃自以为是的想法,板块去留让…

WPF——样式和控件模板、数据绑定与校验转换

样式和控件模板 合并资源字典 Style简单样式的定义和使用 ControlTemplate控件模板的定义和使用 定义 使用 Trigger触发器 数据绑定与校验转换 数据绑定的设置 代码层实现绑定 数据模板DataTemplate xml文件的读取与显示 方法的返回值作为源绑定到控件中ObjectDataProvider L…

【SQL】根据年份,查询每个月的数据量

根据年份,查询每个月的数据量 一种 WITH Months AS (SELECT 1 AS Month UNION ALL SELECT 2 UNION ALL SELECT 3 UNION ALL SELECT 4 UNION ALL SELECT 5 UNION ALL SELECT 6 UNION ALL SELECT 7 UNION ALL SELECT 8 UNION ALL SELECT 9 UNION ALL SELECT 10 UNION…

3.1 内容管理模块 - 工程搭建、课程查询、配置Swagger、数据字典

文章目录 内容管理模块一、基础工程搭建1.1 需求分析1.2 业务流程1.3 数据模型1.4 创建模块工程1.4.1 介绍1.4.2 xuecheng-plus-content 聚合工程1.4.3 模块演示 二、课程查询准备2.1 需求分析2.1.1 业务流程2.1.2 数据模型 2.2 生成PO类2.2.1 新增Maven配置2.2.2 课程基本信息…

Dokit 开源库:简化 Android 应用开发的利器

Dokit 开源库:简化 Android 应用开发的利器 一、Dokit 简介二、Dokit 功能三、Dokit 使用3.1 DoKit Android 最新版本3.2 DoKit Android 接入步骤 四、总结 在 Android 应用开发过程中,我们经常需要处理调试、性能优化和用户体验等方面的问题。然而&…

最新全网整理的7个最佳开源免费库存/仓库管理系统(WMS)都具有高星star

最新全网整理的7个最佳开源免费库存/仓库管理系统(WMS)都具有高星star。 库存/仓库管理软件是一种用于帮助企业管理库存、仓储位置和交付过程的软件系统。这种类型的软件对于拥有大量库存和多个仓库的企业非常有用。 库存/仓库管理软件的作用包括以下几个方面&…

竞赛保研 python的搜索引擎系统设计与实现

0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 python的搜索引擎系统设计与实现 🥇学长这里给一个题目综合评分(每项满分5分) 难度系数:3分工作量:5分创新点:3分 该项目较为新颖&#xff…

优维科技荣获第二届中国赛宝信息技术应用创新优秀解决方案三等奖

近日,“第二届中国赛宝信息技术应用创新优秀解决方案”评选活动圆满结束。优维科技所提交的《Hyperlnsight超融合持续观测解决方案》、《EasyOps一体化运维平台》从全国近300份申报方案中脱颖而出,荣获2023中国赛宝信息技术应用创新优秀解决方案奖。 本…

SQL Server 安装教程

安装数据库 1、启动SQL Server2014安装程序,运行setup.exe文件,打开”SQL Server安装中心“对话框,单击左侧 的导航区域中的”安装“选项卡。 2、选择”全新SQL Server独立安装或向现有安装添加功能“,启动SQL Server2014安装向导…

基于Spring Boot 框架的试卷自动生成系统的设计与实现

项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等。你想解决的问题,今天给大家介绍…

SpringBoot actuator应用监控

文章目录 引入依赖端点(Endpoints)端点种类端点开启配置暴露端点手动暴露端点 端点保护引入spring security依赖配置security 端点响应缓存访问端点路径修改CORS跨域支持健康信息(/actuator/health)自定义healthInfo 应用信息(/actuator/info) 监控信息可视化引入依赖配置查看配…