在这个项目中,我们正在使用红外传感器构建一个Arduino 计数机。这台机器在红外传感器的帮助下对不同部分的硬币进行计数和分类。在这里,布置了红外传感器以感应不同的硬币,Arduino UNO 用于处理数据并在16x2 LCD上显示总计数值。
所需组件
Arduino UNO
红外传感器
面包板
16*2 字母数字液晶屏
用于 16x2 (1602) 字母数字 LCD 的 I2C 模块
连接电线
为 Arduino 硬币分拣机制作结构
步骤 1:取一张纸板并标记不同的硬币尺寸,如下图所示。然后小心地切割标记的部分。这些部分的切割必须准确;否则,该项目可能无法完美运行。
第 2 步:按照下图所示,将上述装置放置在斜坡结构中。布置好后,通过在斜坡上插入不同的硬币来检查它,以确保布置完美无缺。如果硬币没有正确插入,则根据硬币稍微增加孔的大小并重新检查直到成功操作。
第 3 步:将 IR 传感器放置在单个硬币的输出路径附近。正确放置传感器并使用电位计校准它们非常重要。然后再次插入硬币以检查传感器操作。在此处了解有关IR 传感器电路的更多信息。
电路原理图
下面是Arduino计数机的电路图:
在这里,红外传感器被放置在硬币分拣机的不同输出路径上以感应硬币。当硬币插入这个 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 的硬币分拣机的完整设置如下所示:
对 Arduino 进行编程
硬件连接成功后,现在是时候对 Arduino 进行编程了。Arduino 的完整代码在本教程的底部给出。代码的逐步解释如下:
在程序中要做的第一件事是包含所有必需的库。在我的例子中,我包含了用于使用 LCD 的 I2C 接口的“LiquidCrystal_I2C.h”库和用于在 Arduino 上使用 I2C 功能的“Wire.h ”。
#include
在setup() 中,编写了 LCD 命令用于在 LCD 上显示欢迎消息。
液晶显示器(); 液晶背光(); lcd.setCu
在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 上检查各个硬币的计数。
#include
这里还没有内容,您有什么问题吗?
电子电路资源推荐
- Altium Designer通用元件库20.rar
来源:下载中心
- 六层DSP ARM原理图、PCB
来源:下载中心
- 放大器稳定性系列教程
来源:大学堂
- 选择正确的示波器探头
来源:大学堂
- PCB板基础知识讲解
来源:电路图
- PCB板基础知识讲解
来源:电路图
推荐帖子 最新更新时间:2024-11-13 09:12
- 嗨,那个谁:ARM已经成苹果座上宾了
- 北京时间5月26日消息,科技博客9to5mac援引法国网站MacBidouille的消息称,苹果目前正在测试基于ARM架构芯片的新款Mac电脑,并为iMac配备了一个整合更大Magic trackpad触摸板的键盘。而且,苹果还将为ARM架构电脑开发新版OS X系统。 消息称,苹
- azhiking单片机
- 温度传感器
- SmartNode WTS01无线温度传感器 SmartNode WTS01无线温度传感器基于SmartNode无线通信网络,具有低功耗,传输距离远,支持路由组网等优点。可设置采样周期(50ms-60min),上报周期(1-65535s),同时具备上下限温度报警、温
- seany123331RF/无线
- 分享LM2576电路的几个问题
- 一,LM2576hv-15参照手册中负压输出电路有问题 问题: 实际电路参照此手册中的电路进行设计,已经确定器件没有问题,没有连接错误,PCB正确,外部供电电压为24V直流,上电后,输出不正常,不是负压而是一个正6V的值,且外部输入24V被拉低到4V左右,芯片发热。确定
- qwqwqw2088模拟与混合信号
- 七行代码实现一个超声波测距仪(Oled屏显示)
- 一、前言 shineblink core 开发板(简称Core)的库函数支持US-015超声波测距传感器,所以只需要调用两个API,即可实现超声波测距功能。 PS:Core 仅用五、六行代码即可实现Wifi/Ble/NB/Lora/ThreadMesh/RFID/Eth/
- wadewade单片机
- 一周好资源(PCB类)——五月第一周
- FPM_0.080封装生成器 35个经典模拟电路仿真 精彩贴片集成电路的焊接图文教程 CADENCE高速电路板设计与仿真(原理图与PCB设计-第4版) 常用PCB封装库.rar 手把手教你开关电源PCB排版+19页+0.2M.pdf TOP系列编程器软件 (支持TOP
- okhxyyoPCB设计
- DSPF28335开发板,互补对称的PWM波
- 请问大家一个问题,我用DSPF28335开发板,如果要产生两路互补对称的PWM波,是用图中1脚和2脚吗? DSPF28335开发板,互补对称的PWM波 你这样问问题不对,每个板子的设计和名称不一样,一样的是28335的管脚。ePWMxA跟ePWMxB是同一个epwm模块的输出引
- 韬沉哈哈DSP 与 ARM 处理器
- zynq 配置100M以太网后实际吞吐为什么不超过10Mbps?
- IAR 7.51A无法识别cc2430
- 射频基础之射频PCB设计规则
- 430和液晶控制器t6963c 电平兼容的问题
- 关于新型超声波MCU的MSP430FR6047个人看法
- 两本ZLG LM3S8000 的书,市面上买不到哦!
- 请教2个关于计算机组成的练习问题!!
- 【Follow me第二季第1期】基础任务三 :板载LED展示,检测到入侵时,发起声音报警
- 【Follow me第二季第1期】 入门任务:板载LED点亮以及跑马灯效果
- 出一块全新BeagleBone Black TI AM3358 开发板( C版) 开发板 [
- Σ-Δ ADC数字滤波器类型
- 深度揭秘信号孔旁边到底需要几个地过孔
- [follow me 第二季第一期]配置开发环境,入门,点灯
- 【美资“上海”和“成都”两地急招】DSP 工程师 (audio芯片)
- 请教一个ARM RTC提前跳转的问题
- CPU的主频 == 性能么?
- 收到了大讲堂的礼物
- 三极管工作在饱和区怎么实现集电结正偏????
- MSP430F15X/16X 系列DMA的寄存器
- 5款ALTERA FPGA开发板原理图合集
- TouchEsp
- LT8570EMS8E-1 1.2MHz 升压转换器的典型应用从 9V-16V 输入产生 48V
- AM1D-4809D-RZ ±9V 1 瓦 DC/DC 转换器的典型应用
- MIC2755 的典型应用:电池系统监控器
- stm32 czq system1
- FRDM-K32L2B3: 面向K32 L2B MCU的恩智浦Freedom开发平台
- 驱动三个白光 LED ADM8843 白光 LED 背光驱动器的典型应用
- LT6656BIDC-2.048、2.048V 2 端子电压基准电流源的典型应用
- SIP79L24AC 三端小电流负电压稳压器典型应用
- SY10EP16U,SY10/100EP16U 评估板,2.5V/3.3V/5V 精密 ECL 差分接收器/驱动器