Arduino线性读取和设置位置

2023-11-12

原理

电机驱动器速度控制

在此示例中,我们将使用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行中使用。缓冲区变量给出了执行器将停止移动的理想设定点位置附近的范围,这是必需的,因为两个电位计都有一个倾向于波动。

代码

详情参阅 - 亚图跨际

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Arduino线性读取和设置位置 的相关文章

  • 递增数组值 - Arduino

    我正在尝试增加一些数组值 int counter 0 0 0 0 0 0 0 0 如果位置 0 的数字值达到 25 则位置 1 的值加 1 位置 0 重置为 0 依此类推 当索引位置 2 达到 25 时 位置 3 增加 1 并重置它的值 自
  • Arduino:将数据存储在 EEPROM 中的轻量级压缩算法

    我想将大量数据存储到我的 Arduino 上ATmega168 http www atmel com devices atmega168 aspx ATmega328 http www atmel com devices atmega328
  • 蓝牙 HC-05 发送错误 1F 仅适用于 INQ 命令

    我的新蓝牙 HC 05 模块有问题 在 AT 模式下 它可以与我需要的所有命令完美配合 除了 INQ 我已经尝试事先发送一大堆其他命令 AT INIT OK AT ORGL OK AT ROLE 1 OK AT CLASS 0 OK 他们都
  • 如何使用arduino从sim900模块的RTC读取日期和时间数据?

    include SIM900 h include
  • DCF77 解码器与噪声信号

    我几乎完成了我的开源 DCF77 解码器项目 当我注意到标准 Arduino DCF77 库在噪声信号上表现非常差时 这一切就开始了 特别是当天线靠近计算机或洗衣机正在运行时 我永远无法从解码器中获取时间 我的第一个方法是向输入信号添加 数
  • 如何将 ASCII char 转换为其 ASCII int 值?

    我想将 char 转换为它的ASCII http en wikipedia org wiki ASCIIint 值 我可以用所有可能的值填充一个数组并与其进行比较 但这对我来说似乎不正确 我想要类似的东西 char mychar k pub
  • Android BLE 扫描与 UUID 过滤器列表混淆

    我正在 Android 移动设备 A 上执行 UUID 过滤扫描 并且有两个测试用例 一个人在另一台 Android 设备 移动设备 b 上使用名为 BLE Scanner 的应用程序来创建具有两个测试服务 每个服务都有自己唯一的 UUID
  • C-如何使用PROGMEM存储和读取char数组

    我有三个字符数组 我不希望 Arduino 将它们存储在SRAM http en wikipedia org wiki Static random access memory 所以我想使用PROGMEM来存储和读入flash http en
  • ESP32 Arduino-ide如何获取唯一id

    我试图自动为每个 esp32 设置一个唯一的 id 在我使用提供该方法的 ESP IDF 框架对设备进行编程之前esp efuse mac get default 这将返回一个 8 字节值 该值在我手上的所有设备上都是唯一的 在arduin
  • 在Python中快速绘制数据

    我正在尝试使用 arduino 绘制来自 mpu6050 imu 的数据 MPU6050 发送数据的速度比绘图快 Arduino 代码从串口提供 6 个数据 即偏航 俯仰 滚动 轴 ay 和 az 我需要快速情节的建议 Python代码 i
  • 如何实现Android Open Accessory模式即服务?

    我一直在研究 Android 开放配件开发套件 依照指示Google 提供的 DemoKit 示例 http developer android com guide topics usb accessory html 我在使解决方案适应我的
  • HM10 ble改变特征值AT命令Arduino

    谁能帮我用AT命令写入特征值 或者如何使用Hm10模块将数据从arduino发送到另一个ble设备 HM10发送AT START后 会通告数据包 并且可以检测服务和特征 但特征值是默认的0x00 如何更改 多次检查数据表 但找不到能够执行相
  • 如何为 Arduino 或类似的微控制器编写 JavaScript 编译器? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我意识到这个问题会引起一些人的注意 并且我意识到 JavaScript 传统上是一种解释性语言 请让我解释一下 我是一名专门从事 We
  • 如何在 Windows 上获取 Arduino 草图的汇编语言列表?

    我希望能够看到我的 Arduino 草图的汇编语言列表 我怎样才能实现这个目标 Update 我正在 Windows 机器上运行 Arduino 软件 一种方法是使用avr objdump on the elf构建创建的文件 例如 在 OS
  • 在 Arduino 上将整数/小数转换为十六进制?

    如何将整数或小数变量转换为十六进制字符串 我可以做相反的事情 将十六进制转换为整数 但我无法找出其他方法 这是为了Serial print 数组中的十六进制值 查看 Arduino 字符串教程here http arduino cc en
  • SIM900 GSM/GPRS 未获得正确的 AT+CREG?回答

    我使用的是带有 IComsat SIM900 GSM GPRS 扩展板的 Arduino UNO 使用以下教程 Arduino 实时 GPS 追踪器 http www samaria me uk 2011 12 arduino live g
  • 使用 Ardulink 命令 Arduino Uno

    我试图在我的 JAVA 应用程序中使用 Ardulink 库来命令我的 Arduino Uno 但没有成功 我不知道我错过了什么 这是我的代码 Link link Link getDefaultInstance boolean connec
  • 从 iBeacon 接收 BLE 信号到 Bluno(arduino with BLE)

    我想从 iBeacon 到 Bluno 接收 rssi 信号和 UUID Arduino 板具有 BLE 对此有一些疑问 有没有从 BLE 到 BLE 接收 UUID 和 rssi 的解决方案 两个BLE设备可以互相通信吗 我想找一些网站来
  • 如何在 Arduino 中将 char 变量作为数字打印到串行端口?

    我正在使用 Arduino Uno 我正在从 EEPROM 读取一个字节值并将该值存储在类型变量中char 1 字节 我想将变量的值作为数字 而不是相应的 ASCII 代码 打印到串行监视器 例如考虑char val 5 我想查看串行监视器
  • Arduino Nano 33 IoT 的软件序列号

    我计划从旧的 5V Arduino Nano 迁移到新的 Arduino Nano 33 IoT 我已经使用软件串行 SoftwareSerial h 为旧的 5V Arduino Nano 编写了一个功能代码 以便与 Sim800L 模块

随机推荐

  • 以太坊私有链重启后账户余额清零

    以太坊私有链重启后账户余额清零 问题描述 问题原因 问题解决 这个问题一直折磨了我两天 最后终于在luo同学和lin同学的帮助下解决了该问题 问题描述 使用 geth 搭建私有链 搭建完后新建账户并通过 miner start 挖矿获得以太
  • 【STM32知识点】关于不同外设中断标志位清除的使用笔记

    在使用中断函数的时候 我们往往忘记在中断服务函数内清除中断标志位而导致一些未知错误 以下我总结了几个外设关于中断标志位的清除问题 定时器 1 在程序有使用到中断的情况下 定时器在使能之前需要先清除更新中断标志位 否则会出现定时器一使能就进入
  • RocketMQ学习笔记

    基本概念 MessageQueue 消息存储的队列 topic 由一个或多个队列组成 逻辑概念 tag msg标签 目录 基本概念 架构 分布式事务 RocketMQ事务 RocketMQ安装 下载 开启NameServer 启动Broke
  • Java获取图片传到前端,生成二维码给前端

    可以将本地图片导入然后传到前端 也可以生成一个随意长度的二维码保存到本地 也可以传到前端 可以直接通过地址栏访问 要记得导入相关pom依赖包 获取本地图片传到前端 param paramm param 功能描述 传图片 GetMapping
  • MATLAB画灰阶窗口图

    一 效果图 先上效果图 二 程序 程序段如下 注释里面都写的很清楚 Author ZXX Date 2021 10 25 Introduction 按需求生成多张图片并保存到指定文件夹下 生成多张3840 2160 w h 的含有窗口 窗口
  • 《操作系统》- 操作系统的运行环境

    目录 一 操作系统的运行机制 1 1 基本概念 1 2 时钟管理 1 3 中断机制 1 3 1 内中断有三种情况 1 3 2 中断的处理过程 1 3 3 断点调试 1 4 原语 1 5 系统数据结构 1 6 系统调用 二 操作系统体系结构
  • 启动游戏提示由于找不到xinput1 3.dll无法继续执行代码?

    最近有Win10的用户在启动游戏的时候 电脑突出弹窗提示由于找不到xinput1 3 dll无法继续执行代码 导致游戏中断无法玩耍 这个要如何解决呢 下面小编就为大家带来详细的解决方法介绍 方法一 1 大家可以自己在本站下载一个叫做 xin
  • 初试Zabbix5.0下使用官方OID监控eNSP数通设备接口状态

    笔者学习Zabbix的初衷是监控园区网络 其中一项是监控在配置MSTP下BPDU Guard Filter及DHCP Snooping后接入交换机或非法DHCP服务器后端口的状态 本篇初试一下整个流程 实验拓扑搭建 拓扑如图 其中AR1 A
  • SpringBoot使用自定义favicon.ico图标

    一直不喜欢写这东西 但是有些问题浪费我大量时间最终得以解决还是想记录一下过程 SpringBoot使用自定义favicon ico 1 找个ICO图标放在resources static目录下 名字是favicon ico 2 在html文
  • gSoap使用入门(1)----由wsdl文件生成头文件

    向导 1 1节中提供了gSoap开发包的下载地址http sourceforge net projects gsoap2 下载最新gSoap程序包 解压后在 gsoap bin win32 windowsXP下 其它操作系统就自己选择 下找
  • AngularJS form表单验证(非常全面)

    构建一个ng表单 novalidate novalidate 2 form中不能有action属性 提交交由ng submit处理 3 每个input一定要有ng model 最好有一个name方便引用 然后用require或者ng min
  • 使用命令行运行Java程序,出现中文乱码问题解决方法

    前言 对于刚刚学习Java程序的同学来说 可能会遇到使用命令行来运行Java程序的情况 当输出中文内容时 可能会出现乱码的情况 遇到这种情况不要慌 这只是你的xxx java文件保存时的编码问题 只要另存为ANSI编码就可以解决了 下面我们
  • 蓝桥杯倒计时:刷题3.31

    目录 1 打包 算法提高 二分 2 约数个数 算法提高 3 寻找三位数 算法提高 4 第二点五个不高兴的小明 5 螺旋矩阵 模拟题 5 汉诺塔 1 打包 算法提高 二分 def check k t 1 summ a 0 for i in r
  • 原码, 反码, 补码 详解

    本篇文章讲解了计算机的原码 反码和补码 并且进行了深入探求了为何要使用反码和补码 以及更进一步的论证了为何可以用反码 补码的加法计算原码的减法 论证部分如有不对的地方请各位牛人帮忙指正 希望本文对大家学习计算机基础有所帮助 一 机器数和真值
  • 华为OD机试 -在字符串中找出连续最长的数字串(C++ & Java & JS & Python)

    描述 输入一个字符串 返回其最长的数字子串 以及其长度 若有多个最长的数字子串 则将它们全部输出 按原字符串的相对位置 本题含有多组样例输入 数据范围 字符串长度 1 200 1 n 200 保证每组输入都至少含有一个数字 输入描述 输入一
  • selenium反爬遇到的问题以及解决措施

    首先分享一下前两天爬取某宝数据时遇到的一些问题 第一个问题是模拟登陆时就被检测到了 之前的文章讲过为什么会被检测到以及应对的方法 今天分享一个更加实用的方法 driver execute cdp cmd Page addScriptToEv
  • Python蓝桥杯训练(详解和拓展)

    一 题目描述 成绩分析 小蓝给学生们组织了一场考试 卷面总分为 100 分 每个学生的得分都是一个 0 到 100 的整数 请计算这次考试的最高分 最低分和平均分 输入描述 输入的第一行包含一个整数 n 1 n 10 4 n 1 n 104
  • 目标检测代码实战篇

    关注 机器视觉CV 领取免费 GPU 算力 深度学习的三驾马车 数据 模型 算力 本文将从这三方面 实现 YOLO 目标检测 让自己的数据跑起来 数据 一个深度学习项目最好的初始状态是拥有漂亮的数据 但是一般情况下很难达到这种条件 往往需要
  • UML建模三个工具: StarUML ,Telelogic TAU 和 Rose

    UML建模软件目前用的主要有3种 商业版本 Telelogic TAU 和 Rational Rose 开源版本 StarUML Telelogic TAU与Rational Rose的功能很强 但是需要买License StarUML就是
  • Arduino线性读取和设置位置

    原理 电机驱动器速度控制 在此示例中 我们将使用Arduino和电机驱动器控制线性执行器的速度 组件 接线 控制简述 线性执行器中的直流电动机需要大电流 高达5A 如果我们将线性执行器直接连接到Arduino 则此高电流消耗会破坏Ardui