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

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

3天内不再提示

怎样将1个模拟输入用于Arduino的6个按钮

454398 来源:wv 2019-10-25 10:21 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

步骤1:电路

怎样将1个模拟输入用于Arduino的6个按钮

Arduino模拟输入可接受0V至5V输入。此输入具有10位分辨率,这意味着信号被分成2 ^ 10个段或1024个计数。基于此,在允许同时按下的同时,我们最多可能输入到模拟输入中的是10个按钮到1个模拟输入。但是,这不是一个完美的世界。导体中存在电阻,外部来源的噪声以及功率不完善。因此,为了给自己带来足够的灵活性,我计划设计6个按钮。这在一定程度上受到TinkerCAD Circuits具有6开关DIP开关对象这一事实的影响,这将使测试变得容易。

设计的第一步是确保每个按钮在按下时单独按下,将提供独特的电压。这排除了所有电阻器的值相同。下一步是,并联添加电阻值时,电阻值不能与任何单个电阻器值相同。当电阻并联时,可以通过Rx = 1/[(1/R1)+(1/R2)]来计算得到的电阻。因此,如果R1 = 2000和R2 = 1000,则Rx = 667。我推测通过将每个电阻器的尺寸加倍,对于任何组合我都不会看到相同的电阻。

因此,到目前为止,我的电路是有6个开关,每个开关都有自己的电阻。但是,完成该电路还需要一个电阻。

最后一个电阻有3个用途。首先,它充当下拉电阻。如果没有电阻,则当没有按钮按下时电路将不完整。这将使Arduino模拟输入上的电压浮动到任何电压电位。下拉电阻器实质上将电压下拉至0V。第二个目的是限制该电路的电流。欧姆定律指出,V = IR或电压=电流乘以电阻。在给定的电压源下,电阻越大,电流就越小。因此,如果将5V信号施加到500ohm电阻,则我们可以看到的最大电流为0.01A或10mA。第三个目的是提供信号电压。流过最后一个电阻的总电流为:i = 5V/Rtotal,其中Rtotal = Rlast + {1/[(1/R1)+(1/R2)+(1/R3)+(1/R4)+ (1/R 5)+(1/R 6)]}。但是,对于每个按下了相应按钮的电阻,仅包括1/Rx。从总电流中,提供给模拟输入的电压将为i * Rlast或i * 500。

步骤2:证明-Excel

证明该电路具有独特的电阻和独特的电压的最快,最简单的方法是使用Excel的功能。

我设置了所有可能的组合切换输入并按照二进制模式顺序组织这些。值“ 1”表示开关打开,空白表示开关关闭。在电子表格的顶部,我输入了每个开关和下拉电阻的电阻值。然后,我计算了每种组合的等效电阻,但当所有电阻都关闭时除外,因为这些电阻在没有电源的情况下不会产生影响。为了使我的计算变得容易,以便我可以复制和粘贴到每个组合,我通过将每个开关值(0或1)乘以其反向电阻值来将所有组合包括在计算中。如果开关断开,这样做可以从计算中消除其电阻。可以在电子表格的图像中看到生成的方程式,但是Req = Rx + 1/(Sw1/R1 + Sw2/R2 + Sw3/R3 + Sw4/R4 + Sw5/R5 + Sw6/R6)。使用Itotal = 5V/Req,我们确定通过电路的总电流。这与流过下拉电阻的电流相同,并向我们的模拟输入提供电压。计算公式为Vin = Itotal x Rx。查看Req数据和Vin数据,我们可以发现我们确实有唯一的值。

在这一点上,我们的电路似乎可以正常工作。现在要弄清楚如何对Arduino进行编程

第3步:Arduino编程

当我开始考虑如何对Arduino进行编程时,我最初计划设置各个电压范围来确定开关是打开还是关闭。但是,有一天晚上躺在床上时,我想到应该可以找到一个方程式来做到这一点。怎么样? EXCEL。 Excel能够计算方程以最适合图表中的数据。为此,我需要一个开关(二进制)的整数值与对应于该值的电压输入之间的等式。在我的Excel工作簿中,将“整数值”放在电子表格的左侧。现在确定我的方程式。

下面是有关如何在Excel中确定直线方程式的快速教程。

1)选择一个不包含任何数据的单元格。如果选择了一个具有数据的单元格,Excel将尝试猜测要趋势的单元格。因为Excel很少能正确预测,所以这使设置趋势变得更加困难。

2)选择“插入”选项卡,然后选择“散点图”。

3)右键单击图表框,然后单击“选择数据。..”。这将弹出“选择数据源”窗口。选择“添加”按钮继续选择数据。

4)给它指定一个系列名称(可选)。通过单击向上箭头,然后选择电压数据,选择X轴的范围。通过单击向上箭头,然后选择整数数据(0-63),选择Y轴的范围。

5)右键单击数据点,然后选择“添加趋势线。..”。在“设置趋势线格式”窗口中,选择“多项式”按钮。观察趋势,我们发现2的阶数不太匹配。我选择了3阶,觉得这更准确。选中“在图表上显示方程式”复选框。现在,最终方程式显示在图表上。

6)完成。

确定。回到Arduino程序。现在我们有了方程式,对Arduino进行编程很容易。代表开关位置的整数以1行代码计算。通过使用“ bitread”功能,我们可以获取每个单独位的值,从而了解每个按钮的状态。 (请参阅照片)

第4步:TinkerCAD电路

如果您尚未签出TinkerCAD电路,请立即执行。等待!!!!完成阅读我的Instructionable,然后将其签出。 TinkerCAD Circuits使测试Arduino电路非常容易。它包括几个电子对象和Arduino,甚至允许您对Arduino进行编程以进行测试。

要测试我的电路,我使用DIP开关组设置了6个开关并将它们与电阻器捆绑在一起。为了证明我的Excel电子表格中的电压值正确,我在Arduino的输入处显示了一个电压表。一切都按预期工作。

为证明Arduino编程工作正常,我使用Arduino的数字输出将开关的状态输出到LED

然后我将每个开关切换为一切可能的组合,并为能说“ IT WORKS”而感到自豪!!

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

    关注

    0

    文章

    134

    浏览量

    13395
  • Arduino
    +关注

    关注

    190

    文章

    6515

    浏览量

    195998
  • 模拟输入
    +关注

    关注

    0

    文章

    30

    浏览量

    10903
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    Modbus TCP或EtherNet/IP从站转6通道输入模拟量(AI)

    。 参数: 1、多通道:多达6相互独立的通道,每通道均可配置为电流输入或电压输入; 2、强隔离:模拟
    的头像 发表于 07-17 15:06 331次阅读
    Modbus TCP或EtherNet/IP从站转<b class='flag-5'>6</b>通道<b class='flag-5'>输入</b><b class='flag-5'>模拟</b>量(AI)

    有没有办法Aurix配置为一执行输入和输出的MDIO引脚?

    我正在尝试使用 RMII 接口连接到 Aurix TC397x mcirochip PHY、KSZ8081RNA/RND。 KSZ8081 有一用于 MDIO(输入/输出)的引脚,而 Aurix
    发表于 07-14 08:21

    MAX22005 12通道工厂校准可配置工业模拟输入技术手册

    模拟输入输入通道可用作12单端输入6差分
    的头像 发表于 05-21 10:26 730次阅读
    MAX22005 12通道工厂校准可配置工业<b class='flag-5'>模拟</b><b class='flag-5'>输入</b>技术手册

    TPS650330-Q1 汽车级 18V 1.5A PMIC,具有 3 降压转换器和 1 用于摄像头模块的 LDO 稳压器数据手册

    TPS650330-Q1 器件是一款高度集成的电源管理 IC,适用于汽车摄像头模块。该器件结合了三降压转换器和一低压差 (LDO) 稳压器。BUCK
    的头像 发表于 04-24 15:23 598次阅读
    TPS650330-Q<b class='flag-5'>1</b> 汽车级 18V 1.5A PMIC,具有 3 <b class='flag-5'>个</b>降压转换器和 <b class='flag-5'>1</b> <b class='flag-5'>个</b><b class='flag-5'>用于</b>摄像头模块的 LDO 稳压器数据手册

    TPS650320-Q1 汽车级 18V 800mA PMIC,带有 3 降压转换器和 1 用于摄像头模块的 LDO 稳压器数据手册

    TPS650320-Q1 器件是一款用于汽车摄像头模块的高度集成的电源管理 IC。该器件结合了三降压转换器和一低压差 (LDO) 稳压器。BUCK
    的头像 发表于 04-24 14:12 641次阅读
    TPS650320-Q<b class='flag-5'>1</b> 汽车级 18V 800mA PMIC,带有 3 <b class='flag-5'>个</b>降压转换器和 <b class='flag-5'>1</b> <b class='flag-5'>个</b><b class='flag-5'>用于</b>摄像头模块的 LDO 稳压器数据手册

    TPS650332-Q1 汽车级 18V PMIC,带有 3 降压转换器和 1 用于摄像头模块的 LDO 稳压器数据手册

    TPS650332-Q1 器件是一款高度集成的电源管理 IC,适用于汽车摄像头模块。该器件结合了三降压转换器和一低压差 (LDO) 稳压器。BUCK
    的头像 发表于 04-24 14:02 683次阅读
    TPS650332-Q<b class='flag-5'>1</b> 汽车级 18V PMIC,带有 3 <b class='flag-5'>个</b>降压转换器和 <b class='flag-5'>1</b> <b class='flag-5'>个</b><b class='flag-5'>用于</b>摄像头模块的 LDO 稳压器数据手册

    TPS650333-Q1 18V PMIC,具有 3 降压转换器和 1 LDO,适用于高达 ASIL B 的摄像头模块数据手册

    TPS650333-Q1 器件是一款高度集成的电源管理 IC,适用于汽车摄像头模块。该器件结合了三降压转换器和一低压差 (LDO) 稳压器。BUCK
    的头像 发表于 04-24 11:21 658次阅读
    TPS650333-Q<b class='flag-5'>1</b> 18V PMIC,具有 3 <b class='flag-5'>个</b>降压转换器和 <b class='flag-5'>1</b> <b class='flag-5'>个</b> LDO,适<b class='flag-5'>用于</b>高达 ASIL B 的摄像头模块数据手册

    TPS650331-Q1 18V PMIC,具有 3 降压转换器和 1 LDO,适用于高达 ASIL B 的摄像头模块数据手册

    TPS650331-Q1 器件是一款高度集成的电源管理 IC,适用于汽车摄像头模块。该器件结合了三降压转换器和一低压差 (LDO) 稳压器。BUCK
    的头像 发表于 04-24 10:53 528次阅读
    TPS650331-Q<b class='flag-5'>1</b> 18V PMIC,具有 3 <b class='flag-5'>个</b>降压转换器和 <b class='flag-5'>1</b> <b class='flag-5'>个</b> LDO,适<b class='flag-5'>用于</b>高达 ASIL B 的摄像头模块数据手册

    TPS650350-Q1 18V PMIC,带有 3 降压转换器和 1 用于摄像头模块的 LDO数据手册

    TPS650350-Q1 器件是一款高度集成的电源管理 IC,适用于汽车摄像头模块。该器件结合了三降压转换器和一低压差 (LDO) 稳压器。BUCK
    的头像 发表于 04-24 09:48 733次阅读
    TPS650350-Q<b class='flag-5'>1</b> 18V PMIC,带有 3 <b class='flag-5'>个</b>降压转换器和 <b class='flag-5'>1</b> <b class='flag-5'>个</b><b class='flag-5'>用于</b>摄像头模块的 LDO数据手册

    TPS650352-Q1 汽车级 18V PMIC,具有 3 降压转换器和 1 用于摄像头模块的 LDO数据手册

    TPS650352-Q1 器件是一款高度集成的电源管理 IC,适用于汽车摄像头模块。该器件结合了三降压转换器和一低压差 (LDO) 稳压器。BUCK
    的头像 发表于 04-23 15:52 793次阅读
    TPS650352-Q<b class='flag-5'>1</b> 汽车级 18V PMIC,具有 3 <b class='flag-5'>个</b>降压转换器和 <b class='flag-5'>1</b> <b class='flag-5'>个</b><b class='flag-5'>用于</b>摄像头模块的 LDO数据手册

    国产AFE广泛应用于PLC/DCS中的模拟输入模块

    国产AFE广泛应用于PLC/DCS中的模拟输入模块
    的头像 发表于 02-17 10:09 833次阅读
    国产AFE广泛应<b class='flag-5'>用于</b>PLC/DCS中的<b class='flag-5'>模拟</b>量<b class='flag-5'>输入</b>模块

    开源项目!手把手教你制作一互动式LED墙壁时钟!

    在这篇教程中,教你使用Arduino创建一互动式LED墙壁时钟。这个项目结合了创意和技术,设计出一功能性强且视觉效果惊人的时钟,它配备了互动式的LED灯。无论你是
    发表于 02-08 17:47

    用于 SPI 绝对编码器的 Arduino 示例代码

    作者:Damon Tarry, Design Applications Engineer, Same Sky 本 Arduino 示例代码教程旨在为用户提供一坚实的起点,以便通过串行外设接口
    的头像 发表于 01-26 21:35 1324次阅读
    <b class='flag-5'>用于</b> SPI 绝对编码器的 <b class='flag-5'>Arduino</b> 示例代码

    AN-620:AD1836和AD1953用于带DSP的4输入/9输出模拟系统

    电子发烧友网站提供《AN-620:AD1836和AD1953用于带DSP的4输入/9输出模拟系统.pdf》资料免费下载
    发表于 01-13 16:07 0次下载
    AN-620:<b class='flag-5'>将</b>AD1836和AD1953<b class='flag-5'>用于</b>带DSP的4<b class='flag-5'>输入</b>/9输出<b class='flag-5'>模拟</b>系统

    adc模拟输入端通常会加一rc滤波电路,为什么RC滤波电路的电阻分成两部分分别接在正输入端和模拟地?

    adc模拟输入端通常会加一rc滤波电路.为什么RC滤波电路的电阻分成两部分分别接在正输入端和
    发表于 12-17 06:39