0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

如何实现直流电机的非常精确的位置控制

单片机 来源:单片机 2020-05-14 09:35 次阅读

总览

在这篇文章中,我们将看到如何实现直流电机的非常精确的位置控制。我们使用ArduinoPID计算来实现简单直流电机的精确位置控制。

这样的小项目非常有趣,您可以通过构建该项目来学习许多概念,例如PID,闭环系统和编码器基础。

首先,我想向您简要介绍什么是PID,因为这将帮助您进一步了解这些内容。

PID

PID代表比例微分和积分计算

PID是编程的一部分,在该部分上,控制器将执行复杂的计算,并根据过程的反馈来操纵输出。

PID有4个关键值:
1. PV(过程值)或反馈
2. SV(设定值)
3.错误
4.输出

PID图

PID的基本工作如下,我不想进行复杂的算术公式,因为我想保持简单。

PID尝试使PV尽可能接近SV。
误差= SV-PV误差是设定值与过程值之间的差值,
而输出直接是误差的先决条件,换句话说,如果误差为正,则误差为正,如果误差为负,则输出与正的差越大,输出就越大。输出为负。随着PV越来越接近SV,误差变得越来越小,因此输出也越来越小,因此,我们获得了干净而精确的输出。

这是一个真实的例子。

假设我告诉您,在直路上行驶1公里以下的不中断汽车,因为您没有间断,因此油门就可以用来控制汽车,因此您上车时按住油门并加速一会儿,然后释放油门减速并逐渐停在1公里处。
这就是您所做的全部,我们可以称其为PID控制。PID知道如何在到达SP之前操纵输出。

Kp,Ki,Kd是可以微调PID控制器的参数,这些参数可以控制过冲下冲振荡。

假设一个微控制器在没有PID的情况下驱动汽车,它将启动汽车并继续加速直至到达1公里。

然后放开油门,使动车继续行驶并逐渐停止,直至超过我们设定的1公里。

然后,微控制器再次使汽车反转,并在他回到1公里点时加速,再次释放油门,同样的事情由于动量而继续向后移动,这样的循环一次又一次地重复。

您可以想像,现在几乎没有控制器可以在没有PID的情况下将汽车停在固定点

以下是了解PID平滑运动外观的视觉效果。

这个怎么运作?

双轴简单直流齿轮电动机的一侧与编码器的轴连接,另一侧与指针连接,该指针指向量角器上标记的角度,编码器与中断引脚上的arduino连接,并通过L293D电动机IC驱动直流电动机, HC-05模块用于将我们的系统与android设备连接

当我们从android设备arduino发送角度设定值接收数据并运行电机时,编码器将脉冲与要求匹配时,编码器会按照预定义的计算将实时位置反馈发送到arduino,这意味着指针到达所需位置arduinuo在这种情况下停止直流电机。所有过程均由PID控制,以实现平稳,干净的运动。

例如,在这里我们使用了一个光学编码器,该编码器可以提供1600跃迁脉冲以进行360度旋转,因此,如果我们想将指针旋转到90度,那么来自编码器的1600/360 x 90 = 400脉冲将告诉我们它移动了90度。

组件

我使用了一个简单的BO电机,将光编码器连接到其轴上,将360度量角器用作秤HC-05 bt模块,用于连接arduino和android设备,并使用android手机运行android app发送角度设置指向arduino

以下是产品链接,以防万一您需要购买

Arduino的

直流电动机

量角器

L293d IC

光学编码器

我3d打印了一些土墩电机和编码器零件,我也3d打印了指针,您可以在下面的链接中找到3D文件。
https://www.thingiverse.com/thing:3221695

光学编码器

我在这里使用了一个400 ppr 2相增量式光学编码器,该编码器可以为每个演进提供1600平移的参考,意味着每个相位800个过渡,我们需要连接连接到A相和B相的上拉电阻,因为我们不能使引脚悬空以避免任何问题。干扰,在我们的案例中,我们使用的是arduino,它具有内置的上拉电阻器功能,只需要从代码中激活即可。

pinMode (encoderPin1,INPUT_PULLUP );

pinMode (encoderPin2,INPUT_PULLUP );

要了解有关编码器的更多信息,请阅读上期推文

电路图

进行上图所示的接线,编码器绿色和白色导线必须连接到arduino的中断引脚,即数字引脚2和3。

在这里,我使用了L293D H桥式电动机控制IC,它可以控制直流电动机。工作在5V至36V的电压范围内,它可以处理每个通道1A的电流,每个通道2A的峰值,必须将HC-05 BT模块连接到arduino的串行引脚(TX,RX)引脚0和1。
我用了9V电池为电动机供电

源代码

在开始编码之前,您必须先安装一个PID库(https://github.com/br3ttb/Arduino-PID-Library/archive/master.zip ),
该库由br3ttb提供(https://github.com/br3ttb/Arduino-PID-Library),是一个出色的库,它非常易于使用,并且可以使用。

如上面的视频和图像所示,首先我借助3D打印的联轴器和3D打印的安装支架连接编码器和直流电动机,然后借助M3 X 10螺栓将安装支架固定在编码器上。

在支架I的另一侧上,通过这种方式将直流电动机粘到直流编码器轴上,直流编码器轴与直流编码器轴一起移动,并继续向arduino提供位置参考

现在,我带了一个大的360度保护器,并在中心钻了一个孔,以便可以将其安装在直流电动机轴上。现在,我在电动机的另一轴上连接了3D打印指针,该指针指出了直流电动机轴的运动角度。

我有一块可用的PCB,可以连接直流电动机,L293d IC和HC-05模块,该PCB可以用作arduino uno屏蔽,可以直接安装在Arduino UNO上。

一旦我们完成了所有组件的组装,就可以运行该项目,因此我们需要一个android设备和android应用,您可以从下面的链接下载android应用和可编辑的.aia文件

always

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 编码器
    +关注

    关注

    41

    文章

    3359

    浏览量

    131470
  • 直流电机
    +关注

    关注

    35

    文章

    1623

    浏览量

    69462
  • PID
    PID
    +关注

    关注

    35

    文章

    1445

    浏览量

    83781

原文标题:Arduino用PID控制直流电机定位旋转 - 【单片机教程-Arduino-PID】

文章出处:【微信号:aidanpianji,微信公众号:单片机】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    步进电机、有无刷直流电机介绍

    步进电机能够通过控制流向线圈的电流来实现精确位置控制和运动
    的头像 发表于 02-05 13:42 288次阅读
    步进<b class='flag-5'>电机</b>、有无刷<b class='flag-5'>直流电机</b>介绍

    直流电机控制器电路图分享

    直流电机控制器是一种电子控制系统,用于控制直流电机的转速、转向和扭矩等参数,从而实现
    的头像 发表于 02-04 15:52 1423次阅读
    <b class='flag-5'>直流电机</b><b class='flag-5'>控制</b>器电路图分享

    直流电机的励磁是直流电吗?直流电机励磁的作用?

    直流电机的励磁是直流电吗?直流电机励磁的作用?直流电机励磁方式的区分  直流电机的励磁是直流电
    的头像 发表于 01-18 16:07 957次阅读

    直流电机的调速方法 调速方法的优缺点

    直流电机的调速方法 调速方法的优缺点  直流电机是一种广泛应用于工业和家用电器中的电动机,它通过控制电流的大小和方向,实现对转速的精确调控。
    的头像 发表于 12-21 14:13 2004次阅读

    直流电机驱动电路结构组成

    直流电机驱动电路是一种将直流电源转换为直流电机所需的电流和电压的电路。它主要由电源模块、电流控制模块和速度控制模块组成。这些模块的功能和相互
    的头像 发表于 12-20 17:11 576次阅读

    直流电机控制电路的工作原理

    直流电机是一种将直流电能转化为机械能的装置,广泛应用于电动机、发电机等领域。直流电机控制电路是对直流电机
    的头像 发表于 12-20 14:39 685次阅读

    直流电机emf怎么计算

    直流电机电动势(emf)的计算涉及到一系列的物理和数学原理。在这篇文章中,我将详细介绍直流电机电动势的计算方法,包括电源电动势、气隙电动势以及绕组电动势。希望这篇文章能帮助您深入了解直流电机
    的头像 发表于 12-15 15:30 780次阅读

    直流电机制动是电机抖动的原因吗

    现抖动问题,这影响了电机的运行效果和使用寿命。本文将详细探讨直流电机制动抖动的原因,并提出一些建议来减轻抖动问题。 2. 直流电机制动过程 直流电机的制动一般是通过改变
    的头像 发表于 11-23 10:54 551次阅读

    他励直流电机的工作原理

    与其他类型的直流电机相比,他励直流电机励磁绕组和转子绕组分别供电,需要两个电源。其他直流电机只需要一个电源。
    的头像 发表于 10-17 14:36 1961次阅读
    他励<b class='flag-5'>直流电机</b>的工作原理

    直流电机运动控制的过程中怎么实现高精度的位置控制

    直流电机运动控制的过程中怎么实现高精度的位置控制
    发表于 10-11 06:23

    STM32怎么实现直流电机的匀速控制

    STM32怎么实现直流电机的匀速控制
    发表于 10-09 09:02

    为什么直流电机需要控制器来控制电机速度和输出转矩?

    直流电机控制器是将电能转换为机械能的一种特殊类型的电气设备,直流电机通过利用直流电来接收电能,然后将这种能量转换为电机的自动旋转。
    的头像 发表于 07-19 16:51 492次阅读
    为什么<b class='flag-5'>直流电机</b>需要<b class='flag-5'>控制</b>器来<b class='flag-5'>控制</b><b class='flag-5'>电机</b>速度和输出转矩?

    使用Arduino来控制直流电机

    电子发烧友网站提供《使用Arduino来控制直流电机.zip》资料免费下载
    发表于 07-03 11:04 0次下载
    使用Arduino来<b class='flag-5'>控制</b><b class='flag-5'>直流电机</b>

    无刷直流电机32位MCU解决方案

    无刷直流电动机的工作原理:无刷直流电机是永磁式同步电机的一种,而并不是真正的直流电机。区别于有刷直流电机,无刷
    的头像 发表于 06-30 17:05 470次阅读

    无刷直流电机结构图

    电机的绕组内,然后通过电刷与换向器之间的相对位置变化,改变流入电机绕组内的电流方向,从而实现电机的持续运转。 图1-3给出了
    发表于 06-07 16:59 924次阅读