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

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

3天内不再提示

使用红外传感器构建一个Arduino计数机

科技观察员 来源:circuitdigest 作者:Debasis Parida 2022-08-17 15:59 次阅读

在这个项目中,我们正在使用红外传感器构建一个Arduino 计数机。这台机器在红外传感器的帮助下对不同部分的硬币进行计数和分类。在这里,布置了红外传感器以感应不同的硬币,Arduino UNO 用于处理数据并在16x2 LCD上显示总计数值。

所需组件

Arduino UNO

红外传感器

面包板

16*2 字母数字液晶屏

用于 16x2 (1602) 字母数字 LCD 的 I2C 模块

连接电线

为 Arduino 硬币分拣机制作结构

步骤 1:取一张纸板并标记不同的硬币尺寸,如下图所示。然后小心地切割标记的部分。这些部分的切割必须准确;否则,该项目可能无法完美运行。

pYYBAGL8n66AabVFAAngVl956X4403.png

第 2 步:按照下图所示,将上述装置放置在斜坡结构中。布置好后,通过在斜坡上插入不同的硬币来检查它,以确保布置完美无缺。如果硬币没有正确插入,则根据硬币稍微增加孔的大小并重新检查直到成功操作。

poYBAGL8n6qAUjPPAAaq4-alb5s159.png

pYYBAGL8n6aAEtFnAAYDm_jCSp0539.png

第 3 步:将 IR 传感器放置在单个硬币的输出路径附近。正确放置传感器并使用电位计校准它们非常重要。然后再次插入硬币以检查传感器操作。在此处了解有关IR 传感器电路的更多信息

poYBAGL8n6KAQRMJAAc0eu9HXrA070.png

电路原理

下面是Arduino计数机的电路图:

poYBAGL8n56AHSrpAAG8Jq-GRPY460.png

在这里,红外传感器被放置在硬币分拣机的不同输出路径上以感应硬币。当硬币插入这个 Arduino 硬币计数器时,它会根据机械设计进入专用路径,相应的 IR 传感器会感应硬币并向 Arduino 提供 HIGH 输出值,该值可由 Arduino 的模拟引脚读取。给出 HIGH 值的 IR 传感器决定硬币的价值,如卢比 2/5/10。

这里一个 16x2 字母数字 LCD 使用 I2C 模块与 Arduino 连接,以显示放入盒子中的硬币数量。此LCD 也可以不使用 I2C 模块直接连接到 Arduino,但这需要更多的连接数。所以为了更简单,I2C 模块与 LCD 一起使用,它只使用 2 个引脚,即 SCL、SDA 来连接 LCD 和 Arduino。为 Arduino 供电,使用 12VDC,1 AMP AC-DC 适配器,可直接连接到 Arduino 的电源插孔。

稍作修改后,基于 Arduino 的硬币分拣机的完整设置如下所示:

pYYBAGL8n5qAJ7blAAXmk_9pX8k608.png

对 Arduino 进行编程

硬件连接成功后,现在是时候对 Arduino 进行编程了。Arduino 的完整代码在本教程的底部给出。代码的逐步解释如下:

在程序中要做的第一件事是包含所有必需的库。在我的例子中,我包含了用于使用 LCD 的 I2C 接口的“LiquidCrystal_I2C.h”库和用于在 Arduino 上使用 I2C 功能的“Wire.h ”。

#include 
#include 
LiquidCrystal_I2C lcd(0x27,16,2);

在setup() 中,编写了 LCD 命令用于在 LCD 上显示欢迎消息。

液晶显示器();
液晶背光();
lcd.setCursor(0,0);
lcd.print("基于 ARDUINO");
lcd.setCursor(0,1);
lcd.print("硬币排序");
延迟(2000);
lcd.clear();

在loop() 内部,analogRead函数用于从 Arduino 的不同模拟通道读取红外传感器值并将它们存储在不同的变量中。

int s1=analogRead(A0);
int s2=analogRead(A1);
int s3=analogRead(A2);

然后,编写下面的代码来检测硬币并增加硬币计数器的值。这里使用标志值 f1 来避免多次计数硬币。

如果(s1>=200 && f1==0)
{
  f1=1;
}
否则如果(s1<200 && f1==1)
{
  f1=0;
  c1++;
}

最后,使用以下命令将计数值显示在 LCD 上。

lcd.setCursor(0,0);
lcd.print("RS10 RS2 RS5");
lcd.setCursor(1,1);
lcd.print(c1);
lcd.setCursor(7,1);
lcd.print(c2);
lcd.setCursor(14,1);
lcd.print(c3);

Arduino硬币计数器的操作

完成设置并上传代码后,打开 12V 直流电源。首先,欢迎信息将显示在 LCD 上,几秒钟后,LCD 上将显示所有可用硬币数量的屏幕。一开始,它会显示为零,因为我们还没有插入任何硬币。

接下来,在写有“ Insert Coin ”的机器顶部插入任何硬币(Rs. 2/5/10)。现在您将看到必须在 LCD 上更新硬币计数的值。然后插入多个不同价值的硬币,并在 LCD 上检查各个硬币的计数。

poYBAGL8n5OAE_GpAAUM0-j2N9o556.png
#include

#include

LiquidCrystal_I2C lcd(0x27,16,2);

诠释 f1=0,f2=0,f3=0;

诠释 c1=0,c2=0,c3=0;

无效设置()

{

lcd.init();

液晶背光();

lcd.setCursor(0,0);

lcd.print("基于 ARDUINO");

lcd.setCursor(0,1);

lcd.print("硬币排序");

延迟(2000);

lcd.clear();

}

无效循环()

{

int s1=analogRead(A0);

int s2=analogRead(A1);

int s3=analogRead(A2);

lcd.setCursor(0,0);

lcd.print("RS10 RS2 RS5");

如果(s1>=200 && f1==0)

{

f1=1;

}

否则如果(s1<200 && f1==1)

{

f1=0;

c1++;

}

if(s2>=200 && f2==0)

{

f2=1;

}

否则 if(s2<200 && f2==1)

{

f2=0;

c2++;

}

if(s3>=200 && f3==0)

{

f3=1;

}

否则 if(s3<200 && f3==1)

{

f3=0;

c3++;

}

lcd.setCursor(1,1);

lcd.print(c1);

lcd.setCursor(7,1);

lcd.print(c2);

lcd.setCursor(14,1);

lcd.print(c3);

}

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

    关注

    32

    文章

    2111

    浏览量

    92726
  • 红外传感器
    +关注

    关注

    9

    文章

    488

    浏览量

    47211
  • Arduino
    +关注

    关注

    184

    文章

    6422

    浏览量

    184630
收藏 人收藏

    评论

    相关推荐

    红外传感器避障如何设计

    以前从来没接触过单片,老师让我试试做一个简单的红外传感器避障程序,感应人体温度来提醒盲人躲避,我现在点头绪也没有,大家能不能帮忙说说要
    发表于 10-15 19:23

    红外传感器

    红外传感器 遥感
    发表于 08-06 11:25

    红外传感器介绍

    的分布图像;(4)红外测距和通信系统;(5)混合系统,是指以上各类系统中的两或者多个的组合。红外传感器根据探测机理可分成为:光子探测(基于光电效应)和热探测
    发表于 03-02 12:27

    【开源资料】基于Arduino红外传感器的汽车速度检测

    `基于Arduino红外传感器的汽车速度检测项目的工作非常简单。 Arduino不断从红外传感器读取输入。 当在设置前移动的汽车到达第
    发表于 10-23 13:59

    红外传感器安装要求及使用注意事项

      红外线传感器是利用红外线来进行数据处理的传感器,有灵敏度高等优点,红外传感器有什么作用,
    发表于 01-18 17:28

    红外传感器的制作原理是什么?红外传感器主要有哪些应用?

    红外传感器的制作原理是什么?红外传感器有哪些核心技术?红外传感器主要有哪些应用?
    发表于 06-18 07:51

    如何利用arduino打孔纸带通过两红外传感器控制步进电机正反转?

    如何利用arduino打孔纸带通过两红外传感器控制步进电机正反转?
    发表于 10-14 08:25

    红外传感器有哪些使用注意事项呢

    /*-----------------------循迹 + 避障 ----------------------------*/循迹:yl-701、分为大的红色的主控板2、红外对管 (1)
    发表于 01-17 07:07

    红外传感器工作原理_红外传感器的应用

    本文首先介绍了红外传感器工作原理,其次介绍了红外传感器的种类,最后介绍了红外传感器的应用。
    发表于 09-17 08:58 2.7w次阅读

    使用Arduino Leonardo和红外传感器制作手势控制设备

    电子发烧友网站提供《使用Arduino Leonardo和红外传感器制作手势控制设备.zip》资料免费下载
    发表于 10-26 15:57 0次下载
    使用<b class='flag-5'>Arduino</b> Leonardo和<b class='flag-5'>红外传感器</b>制作手势控制设备

    通过Simulink和Arduino建模和使用Sharp红外传感器

    电子发烧友网站提供《通过Simulink和Arduino建模和使用Sharp红外传感器.zip》资料免费下载
    发表于 11-15 10:37 2次下载
    通过Simulink和<b class='flag-5'>Arduino</b>建模和使用Sharp<b class='flag-5'>红外传感器</b>

    使用arduino红外传感器的自动开门器

    电子发烧友网站提供《使用arduino红外传感器的自动开门器.zip》资料免费下载
    发表于 12-13 14:19 1次下载
    使用<b class='flag-5'>arduino</b>和<b class='flag-5'>红外传感器</b>的自动开门器

    红外传感器的物体计数

    电子发烧友网站提供《带红外传感器的物体计数器.zip》资料免费下载
    发表于 02-06 11:13 2次下载
    带<b class='flag-5'>红外传感器</b>的物体<b class='flag-5'>计数</b>器

    如何在Arduino上使用红外传感器

    电子发烧友网站提供《如何在Arduino上使用红外传感器.zip》资料免费下载
    发表于 06-25 16:18 0次下载
    如何在<b class='flag-5'>Arduino</b>上使用<b class='flag-5'>红外传感器</b>

    构建一个简单的红外传感器模块电路

    红外传感器具有广泛的应用,包括机器人和自动化。几十年来,红外传感器在所有这些应用中都做得很好。本文教您构建一个简单的红外传感器模块电路,该电路可用于任何需要检测或
    的头像 发表于 06-29 17:36 1279次阅读
    <b class='flag-5'>构建</b>一个简单的<b class='flag-5'>红外传感器</b>模块电路