资料介绍
描述
介绍
通过反射检测物体的功能有多种应用,主要是在自动化领域,例如远程控制命令。
通过可以检测物体存在的传感器辅助自动化,可以通过数字打印、灯的自动激活、可以根据不同表面反射到达的光的方式分配不同功能的系统来开发系统。 .
因此,这些应用之一存在于物体检测中,例如在使用 TCRT5000 传感器和 LCD 显示器的教学保险箱中,如下图 1 所示。
为了开发这个保险箱的教学案例,您将学习使用 Arduino 组装基本电路和编程。
实施的教学保险箱结构简单,包含 LCD(液晶显示器)显示器、TCRT5000 反射式物体传感器和按钮。
当硬币通过特定孔插入保险箱时,传感器会检测到它的存在并使用开发程序中的内部条件计算硬币的总量。
硬币的检测是由反射传感器TCRT5000进行的,它使用LED发光,当光被反射时光电晶体管被激活,从而进行计数。
在本文中,您将学习如何编程和使用 TCRT5000 反射式传感器,以及了解其物理结构,因为该传感器使用反射作为工作原理。
因此,通过本文,您将了解到:
- 了解带晶体管输出的 TCRT5000 反射式光学传感器的结构;
- 了解带晶体管输出的 TCRT5000 反射式光学传感器的操作;
- 在具有晶体管输出的 TCRT5000 反射式光学传感器和 Arduino UNO R3 之间执行通信;
- 将带晶体管输出的 TCRT5000 反射式光学传感器的结构展示给 SILICIOS LAB 开发的教学案例。
- 为钱柜构建您的 PCBGOGO 印刷电路板。
现在,我们将开始全面介绍使用 LCD 和 TCRT5000 反射式传感器的教学安全的开发。
项目开发方法论
该项目包括展示一个使用 TCRT5000 反射式光学传感器和 Arduino UNO 开发板的保险箱教学模型。
该项目由光学传感器组成,负责通过发射红外光来检测物体的存在,并在检测到物体反射的光时激活光电晶体管。
Arduino UNO开发板将负责接收传感器发送的逻辑电平并提供电源使传感器工作,最后处理传感器接收到的信号。如图 2 所示。
反射式传感器的红外光LED发出的信号发射出去,这样光就检测到硬币了,很快,光在几个方向上反射,一部分被反射式传感器的光电晶体管捕捉到如图 3 所示。
TCRT5000反射式传感器基本由一个红外发光LED、负责进行光切换的光电晶体管和用于耦合上述两个器件的结构构成。
红外 LED 向多个方向发射光,当光照射到硬币表面时,它反射光,光电晶体管捕获光。
通过这种方式,传感器向 Arduino 的数字引脚发送一个低逻辑电平,另一方面,当传感器没有检测到任何物体时,它发送一个高逻辑电平。
教学保险箱的所有通信都将通过液晶显示屏完成,液晶显示屏将向用户发送指示性消息。
按钮将用于向 Arduino 的数字引脚 7 发送低逻辑电平,从而完成程序中实现的硬币计数器的归零。
为此,将使用一个 10 kΩ 的上拉电阻来确保引脚具有高逻辑电平,使其在激活按钮时达到低逻辑电平,从而避免溢出。
要设置实验,首先,确保您的 Arduino 已通过从 USB 电缆上断开来关闭。
现在,将组件连接起来,如下图 5 所示。
根据图5所示的接线图,实验由反射式传感器电路、Arduino UNO电路、Push Button电路和LCD显示电路组成。
TCRT5000 传感器有 4 个引脚(两个引脚用于 LED,两个用于光电晶体管),有两个电源引脚 (Vdc),光电晶体管的电源引脚连接到 10kΩ 电阻器,该电阻器将连接到 Arduino 的 5 伏Uno 通过原型板,它还将连接到 Arduino 的数字引脚 6 以发送信号,同时为 LED 供电的引脚将连接到 220 Ω 电阻器,该电阻器将连接到 5 伏总线原型板。
剩下的两个引脚,LED 和光电晶体管都将连接到原型板的参考总线,原型板将连接到 arduino 的 GND 引脚。
Arduino uno 将负责对整个电路的信号进行处理,并提供电源和参考。使用的按钮将连接到参考和上拉电阻,以确保只要未按下按钮,arduino 的数字引脚 6 上的逻辑电平就很高。
LCD 显示电路将是标准的使用 4 位连接(D4、D5、D6 和 D7)以及负责对比度的 10 kΩ 电位器和连接到阳极引脚的 330 Ω 电阻器。
教学保险箱的所有编程逻辑都是按照以下程序的注释开发的:
/*
Conexões do display LCD ao arduino uno:
* LCD RS pino para o digital pino 12
* LCD Enable pin para o digital pino 11
* LCD D4 pino para o digital pino 5
* LCD D5 pino para o digital pino 4
* LCD D6 pino para o digital pino 3
* LCD D7 pino para o digital pino 2
* LCD R/W pino para o ground
* LCD VSS pino para o ground
* LCD VDD pino para o 5V
* LCD V0 pino para o potenciômetro
*/
#include //importando a biblioteca das funçoes do LCD
//pinos de interface da biblioteca
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
//********************INICIO-SENSOR TCRT5000***********************
int Objeto = 0;//variável utilizada para as informações do sensor
int Sensor = 6;// o pino de dados do sensor será conectado ao pino digital 6 do arduino
int moedas = 0;//variavel responsavel por contar as moedas
int botao_zerar_contagem = 7;//variavel responsável pelo botao que ira reiniciar a contagem das moedas.
int estado_botao;//variável utilizada para verificar o estada do botão.
//********************FIM-SENSOR TCRT5000***********************
void setup() { //função responsável por definir os pinos de entrada e saida do arduino
//********************INICIO-SENSOR TCRT5000***********************
pinMode(Sensor,INPUT);//define o pino Sensor como entrada de dados
pinMode(botao_zerar_contagem,INPUT);//define o pino do botao como entrada de dados
//********************FIM-SENSOR TCRT5000***********************
// Número de linhas e colunas do LCD utilizado
lcd.begin(16, 2);
// Função responsável por retornar a mensagem no LCD
lcd.setCursor(2,0);//setando o cursor do LCD na coluna 2 linha 0
lcd.print("SILICIOS LAB");//mensagem enviada para o LCD
lcd.setCursor(2,1);//setando o cursor do LCD na coluna 2 linha 1
lcd.print("Cofre 1 real");//mensagem enviada para o LCD
delay(4000);//aguarda 4 segundos para iniciar
lcd.clear();//apaga os caracteres no LCD
}
void loop() {
estado_botao = digitalRead(botao_zerar_contagem);//lendo o estado do botão.
if(estado_botao==LOW)//se o estada do botão for LOW, a contagem será reiniciada
{
lcd.setCursor(0,0);//desloca o cursor para a posição específica do texto da contagem
lcd.clear();//limpa a contagem anterior
moedas=0;//zera a contagem das moedas e reinicia a contagem.
}
else//se o estado do botão for contrário a LOW, ou seja, HIGH, o programa ira continuar o seu fluxo normalmente
{
}
Objeto = digitalRead(Sensor);//analise o sinal enviado pelo pino de dados do sensor
if(Objeto==0)//caso o sinal do sensor seja nível lógico 0, o sensor terá detectado um objeto
{
Serial.println("Moeda Recebida");//mensagem no monitor Serial
// inicia o curso do LCD na coluna 0, linha 1
lcd.clear();//apaga os caracteres no LCD
lcd.setCursor(0, 1);//setando o cursor do LCD na coluna 0 linha 1
// print the number of seconds since reset:
lcd.print("Moeda Recebida");
moedas=moedas+1;//a cada passagem por esta linha, o contador é incrementado com o valor 1.
lcd.setCursor(0, 0);// inicia o curso do LCD na coluna 0, linha 0
// print the number of seconds since reset:
lcd.print("Moedas = ");//mensagem enviada para o LCD
lcd.print(moedas);//mostra o valor da variável "moedas" no LCD
int aux=Objeto;//variável utilizada para armazenar a leitura atual do sensor
while(aux==LOW){//loop responsável por impedir o sensor de conte mais de uma vez a moeda enquanto ela está sendo colocada no cofre.
moedas=moedas;//enquanto o loop durar, o valor da variável será o mesmo.
lcd.setCursor(0,0);
lcd.print("Moedas = ");
lcd.print(moedas);
aux=digitalRead(Sensor);
}
}
else //caso o valor seja nível lógico 1, o sensor não estará detectando a presença de nenhum objeto
{
lcd.setCursor(0, 0);// inicia o curso do LCD na coluna 0, linha 1
lcd.clear();
// print the number of seconds since reset:
lcd.print("Moedas = ");
lcd.print(moedas);
Serial.println("Objeto nao detectado");
// inicia o curso do LCD na coluna 0, linha 1
lcd.setCursor(0, 1);
// print the number of seconds since reset:
lcd.print("Esperando Moedas");
}
if(botao_zerar_contagem==0)
{
lcd.setCursor(0,0);//desloca o cursor para a posição específica do texto da contagem
lcd.clear();//limpa a contagem anterior
moedas=0;//zera a contagem das moedas e reinicia a contagem.
moedas=0;
}
}
对于这个项目,开发了一个合适的案例,它将接收 TCRT5000 反射式光学传感器、LCD 显示器和按钮,只留下 Arduino Uno 引脚连接,以便可以以教学方式使用,如图所示在图 6 中。
从电路的组装和 Arduino Uno 的编程来看,可以将 LCD 显示器固定在教学箱的前面,也可以通过小支架将反射传感器安装在盖子的上部区域。硬币的入口。
按钮固定在 LCD 下方,因此,在放置硬币后,可以通过教学保险箱后面的小门将它们取出,如图 7 所示。
与后部区域有一个用于从反射传感器引出电线的孔相同的方式,侧面区域也有一个用于从 LCD 显示器和按钮引出电线的孔。
教学保险箱的说明性图像有一些透明区域,以便更好地了解箱子的内部结构。
接下来,我们将展示用于现金保险箱的PCBGOGO 印刷电路板。
PCBGOGO印刷电路板
印刷电路板的开发是为了控制现金保险箱的设计。下图以 3D 形式显示了印刷电路板。
此PCBGOGO 印刷电路板是通过以下电子原理图开发的。
您可以下载印刷电路板文件并在 PCBGOGO 使用此链接中的 50 美元折扣券购买。
结论
因此,通过本项目的开发,除了通过开发的程序分析与Arduino Uno的通信外,还可以了解具有晶体管输出的TCRT5000反射式光学传感器的结构并了解其操作。
由于传感器通过 LED 发射红外光,然后反射光激活光电晶体管,因此分析对象(在本例中为 1 枚真币)必须位于距离物体 5 毫米至 10 毫米的位置。传感器,为了保证它的检测,并以这种方式,教学保险箱的主要组件适应了教学案例。
致谢
感谢PCBGOGO 印刷电路板对本项目开发的支持。
我们还要感谢巴西的Robô Lúdico学校。
- 使用Android和Arduino创建物联网
- 创建Arduino字时钟
- LCD电子密码保险箱设计 3次下载
- 基于Arduino并由纸板制成的保险箱
- 如何使用Android和Arduino创建物联网
- 使用Arduino创建库
- Arduino RFID伺服箱
- 使用C51单片机和Proteus仿真设计密码保险箱的应用实例资料免费下载 3次下载
- Arduino板是什么如何使用IDE软件创建和上传Arduino程序到Arduino板
- DIY机器人开二手保险箱 8次下载
- R7F0C004在LCD电子密码保险箱的应用方法 13次下载
- 基于WiFi的51单片机双层密码保险箱的设计与实现_曾维鹏 6次下载
- PLC可编程控制器之状态图(保险箱) 2次下载
- IC 卡保险箱
- ISN-SM振动探测器使用指南
- 海凌科五款指纹模块介绍 4525次阅读
- 如何创建基于DCO的音频合成器 814次阅读
- 什么是电子保险丝 4727次阅读
- 如何创建 Docker 镜像的能力 1023次阅读
- 如何从网页控制arduino? 3836次阅读
- 如何利用Arduino创建一个电机滑动门 1614次阅读
- 利用树莓派完成双重身份验证的保险箱 1403次阅读
- 如何使用Arduino创建停车门禁控制系统? 5060次阅读
- 科裕智能科技房门锁918-K介绍 1120次阅读
- 保险电阻怎么测好坏_保险电阻的功能 1w次阅读
- 智能钥匙开锁的简易保险箱设计 3099次阅读
- 保险电阻和保险丝的区别 详解保险电阻和保险丝的不同 2.3w次阅读
- 简单逻辑电路在生活中的应用 2.2w次阅读
- arduino是什么以及arduino能干什么 4.4w次阅读
- 配电箱与配电柜、控制箱的区别 7052次阅读
下载排行
本周
- 1山景DSP芯片AP8248A2数据手册
- 1.06 MB | 532次下载 | 免费
- 2RK3399完整板原理图(支持平板,盒子VR)
- 3.28 MB | 339次下载 | 免费
- 3TC358743XBG评估板参考手册
- 1.36 MB | 330次下载 | 免费
- 4DFM软件使用教程
- 0.84 MB | 295次下载 | 免费
- 5元宇宙深度解析—未来的未来-风口还是泡沫
- 6.40 MB | 227次下载 | 免费
- 6迪文DGUS开发指南
- 31.67 MB | 194次下载 | 免费
- 7元宇宙底层硬件系列报告
- 13.42 MB | 182次下载 | 免费
- 8FP5207XR-G1中文应用手册
- 1.09 MB | 178次下载 | 免费
本月
- 1OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 2555集成电路应用800例(新编版)
- 0.00 MB | 33566次下载 | 免费
- 3接口电路图大全
- 未知 | 30323次下载 | 免费
- 4开关电源设计实例指南
- 未知 | 21549次下载 | 免费
- 5电气工程师手册免费下载(新编第二版pdf电子书)
- 0.00 MB | 15349次下载 | 免费
- 6数字电路基础pdf(下载)
- 未知 | 13750次下载 | 免费
- 7电子制作实例集锦 下载
- 未知 | 8113次下载 | 免费
- 8《LED驱动电路设计》 温德尔著
- 0.00 MB | 6656次下载 | 免费
总榜
- 1matlab软件下载入口
- 未知 | 935054次下载 | 免费
- 2protel99se软件下载(可英文版转中文版)
- 78.1 MB | 537798次下载 | 免费
- 3MATLAB 7.1 下载 (含软件介绍)
- 未知 | 420027次下载 | 免费
- 4OrCAD10.5下载OrCAD10.5中文版软件
- 0.00 MB | 234315次下载 | 免费
- 5Altium DXP2002下载入口
- 未知 | 233046次下载 | 免费
- 6电路仿真软件multisim 10.0免费下载
- 340992 | 191187次下载 | 免费
- 7十天学会AVR单片机与C语言视频教程 下载
- 158M | 183279次下载 | 免费
- 8proe5.0野火版下载(中文版免费下载)
- 未知 | 138040次下载 | 免费
评论
查看更多