旋转机

Arduino用PID控制直流电机定位旋

发布时间:2022/5/6 10:43:43   

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

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

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

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

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连接,并通过LD电动机IC驱动直流电动机,HC-05模块用于将我们的系统与android设备连接

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

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

组件

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

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

Arduino的

直流电动机

量角器

LdIC

光学编码器

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

转载请注明:http://www.aideyishus.com/lkjg/147.html

------分隔线----------------------------

热点文章

  • 没有热点文章

推荐文章

  • 没有推荐文章