Arduino线性读取和设置位置

原理

电机驱动器速度控制

在此示例中,我们将使用Arduino和电机驱动器控制线性执行器的速度。

组件

接线

控制简述

线性执行器中的直流电动机需要大电流(高达5A),如果我们将线性执行器直接连接到Arduino,则此高电流消耗会破坏Arduino数字引脚,因为它们每个仅额定40mA。 因此,我们使用的电动机驱动器可以从Arduino板上获取低电流PWM(脉冲宽度调制)信号,并向线性执行器输出高电流PWM信号。

电机驱动器连接到两个PWM数字引脚(Arduino Uno上的引脚10和11)。 通过将其中一个引脚设置为低电平,将另一个引脚设置为高电平(请参见下面代码中的第18和19行),我们可以以最大速度扩展执行器。 为了停止执行器,我们将两个引脚都设置为LOW(参见下面代码中的第21和22行),并反转运动方向,我们可以颠倒HIGH和LOW引脚的顺序(参见下面代码中的第24和25行)。 我们还可以通过将变量“ Speed”更改为[0,255]范围内的任何值来调整速度。 请参阅下面的代码中的第17行。

代码

使用电位器的各种速度控制

在上面的示例中,我们在代码的第17行中手动设置了速度。 但是,在某些情况下,我们可能希望及时更改执行器的速度。 最简单的方法是使用电位计。 电位器是一个三端可变电阻器,可以用作分压器。 通过旋转电位器的旋钮,输出电压将发生变化,我们可以将其连接至Arduino上的模拟引脚以设置可变速度。

接线

控制简述

如上所述,电位计是一种旋转装置,当旋转旋钮时会改变电阻。 通过将电位器的两个外部引脚连接到5V和GND,并将中间引脚连接到Arduino模拟引脚A0,创建了一个分压器。 旋转旋钮时,Arduino将读取范围为[0,1023]的模拟读数。

对于[512,1023]范围内的值,我们希望执行器伸展,对于[0,511]范围值,我们希望执行器缩回,这可以通过简单的if()/ else 语句来实现。

代码

电位计反馈线性控制

在此示例中,我们将演示如何使用Arduino读取反馈杆执行器的信号,并将其转换为杆延伸到多远的距离测量。

组件

接线

读取位置

按照上面的步骤组装电路,然后上传以下代码。您需要将代码的第16行修改为您的特定行程长度,当前已将其设置为6英寸反馈杆执行器。

该程序将首先扩展并完全缩回执行器,以从电位计中找到最小和最大模拟传感器读数(代码的第27和28行)。 这是必要的,因为尽管电位计读数的范围为[0,1023],但实际上,由于执行器内部的齿轮比会阻止电位计完全旋转到其极限,因此可能会减小该范围。

遵循此初始校准顺序,执行器将连续扩展和缩回输出数据流,以显示线性执行器当前的扩展长度(以英寸为单位)。

代码

使用外部电位器控制位置

上面的示例演示了如何从反馈杆执行器获取读数,但是说我们想将执行器移动到特定位置,我们该怎么做? 下一节将通过使用外部电位计作为执行器所需设定点位置的用户输入来解决这种情况。 在实践中,您可以修改此示例以从所需的任何形式获取用户输入。

接线

位置控制

接线几乎与本教程的第一部分完全相同,只是现在外部电位计已连接到模拟引脚A1。

下面的程序移动到用户通过外部电位计设置的位置。 在代码的第18行中,设置了一个缓冲区变量,稍后将在第36和39行中使用。缓冲区变量给出了执行器将停止移动的理想设定点位置附近的范围,这是必需的,因为两个电位计都有一个倾向于波动。

代码

详情参阅 - 亚图跨际

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值