资料介绍
描述
介绍
在地铁系统中,有一个设备可以控制用户进出通道,反之亦然。在这些设备中,有一个传感器可以检测旋转栅门用户的接近程度。
当用户靠近闸机时,需要他通过您的卡才能进入地铁系统。
但是在这些系统中,很多时候用户并不知道存在一个传感器,当用户靠近旋转门时允许访问。
因此,在本文中,您将学习如何实现人机界面,以更好地与地铁用户交互信息。
该项目的开发得益于PCBWay 公司为我们的项目生产印刷电路板的支持。
项目的发展
要开发此项目,请参见图 1,您将了解电路是如何开发的。可以看出,电路非常简单。连接在数字管脚 8 中的按钮用于模拟机器中的传感器,连接在数字管脚 9 中的另一个按钮用于模拟卡的通过过程。
#include
LiquidCrystal lcd(2,3,4,5,6,7); //LiqyuidCrystal lcd(RS, EN, DB4, DB5, DB6, DB7)
#define PinoSensor 9
#define PinoCartao 8
bool sensor = 0, cartao = 0, controle = 0, EstadoSensor = 0, EstadoCartao = 0;
void setup()
{
for(byte pinos = 2; pinos < 8; pinos++)//Configuracao dos pinos do LCD como saida
{
pinMode(pinos, OUTPUT);
}
lcd.begin(16,2); //Inicializa o display de LCD 16 x 2
lcd.clear();//Limpa a tela do LCD
}
void loop()
{
// put your main code here, to run repeatedly:
sensor = digitalRead(PinoSensor);
cartao = digitalRead(PinoCartao);
delay(50);
if((sensor != EstadoSensor)||(cartao != EstadoCartao))
{
controle = 0;
}
if(sensor == 0 && cartao == 0 && controle == 0)
{
lcd.clear();
lcd.setCursor(1,0);
lcd.print("Metro-Silicios");
lcd.setCursor(6,1);
controle = 1;
}
if(sensor == 1 && cartao == 0 && controle == 0)
{
lcd.clear();
lcd.setCursor(2,0);
lcd.print("Insira o seu");
lcd.setCursor(4,1);
lcd.print("Cartao!");
controle = 1;
}
if(sensor == 0 && cartao == 1 && controle == 0)
{
lcd.clear();
lcd.setCursor(1,0);
lcd.print("Aproxime-se da");
lcd.setCursor(4,1);
lcd.print("Catraca");
controle = 1;
}
if(sensor == 1 && cartao == 1 && controle == 0)
{
lcd.clear();
lcd.setCursor(5,0);
lcd.print("Catraca");
lcd.setCursor(4,1);
lcd.print("Liberada");
controle = 1;
}
EstadoSensor = sensor;
EstadoCartao = cartao;
}
在代码的开头,代表用户的接近传感器和检测卡通过的传感器的两个按钮的状态被读取,如下面的代码所示。
sensor = digitalRead(PinoSensor);
cartao = digitalRead(PinoCartao);
delay(50);
“delay(50)”用于通过代码去抖动。在此之后,我们有一个条件来验证传感器或卡的状态是否发生变化。为此,条件将使用卡和传感器的先前状态。
如果传感器的实际状态或卡的实际状态与之前的状态不同,则变量“控制”它将为零。
这个使用变量状态“Controle”的概念用于允许流代码在每个条件下仅输入一次,以在LCD 16 x 2上显示消息。
下面,您可以看到显示命令的代码部分。
if((sensor != EstadoSensor)||(cartao != EstadoCartao))
{
controle = 0;
}
将检测到卡或传感器状态的任何变化,并更改“控制”变量的值。
为方便起见,我们使用16 x 2 LCD来改善用户与系统之间的通信。这将使用户更容易使用机器。
为了改善沟通,我们创建了用户在接近和使用棘轮时可能发生的 4 个条件。这4个条件是:
- LCD 上的信息未被使用;
当条件发生时,命令块由系统执行。
if(sensor == 0 && cartao == 0 && controle == 0)
{
lcd.clear();
lcd.setCursor(1,0);
lcd.print("Metro-Silicios");
lcd.setCursor(6,1);
controle = 1;
}
并且“Subway - Silicios”信息将显示在LCD 16 x 2上。
- 当用户接近闸机但未通过卡时,液晶显示屏上的消息;
当条件发生时,命令块被执行。
if(sensor == 1 && cartao == 0 && controle == 0)
{
lcd.clear();
lcd.setCursor(2,0);
lcd.print("Insira o seu");
lcd.setCursor(4,1);
lcd.print("Cartao!");
controle = 1;
}
- 用户通过卡但未靠近闸机时液晶显示屏上的信息;
当条件发生时,将执行下面的命令块。
if(sensor == 0 && cartao == 1 && controle == 0)
{
lcd.clear();
lcd.setCursor(1,0);
lcd.print("Aproxime-se da");
lcd.setCursor(4,1);
lcd.print("Catraca");
controle = 1;
}
- 当用户通过卡片并靠近旋转栅门时,液晶显示屏上会显示消息。
当条件发生时,将执行下面的命令块。
if(sensor == 1 && cartao == 1 && controle == 0)
{
lcd.clear();
lcd.setCursor(5,0);
lcd.print("Catraca");
lcd.setCursor(4,1);
lcd.print("Liberada");
controle = 1;
}
致谢
感谢PCBWay支持我们的 YouTube 频道并生产和组装质量更好的 PCB。
- Arduino人机界面及接口技术入门 0次下载
- 串口人机界面和普通显示屏的区别及优势 5次下载
- MSP430飞机空调车人机界面的设计与研究 5次下载
- 人机界面的基础指南 1次下载
- 基于NA系列的人机界面操作手册 0次下载
- 基于INO TOUCH的人机界面操作指南 1次下载
- led照明提高人机界面质量 8次下载
- 使用STM32设计人机界面 (HMI) 0次下载
- 基于STM32的便携式人机界面系统 20次下载
- 人机界面在低压断路器智能测控系统中的应用
- MP系列人机界面操作手册
- 人机界面的开发与应用
- 交换机人机界面代码自动生成软件的设计
- 发电企业DCS 系统人机界面设计原则研究
- 基于VxWorks的无线接收器的人机界面设计与实现
- 人机界面与组态软件的区别 546次阅读
- 人机界面与工控机的区别 705次阅读
- 如何编写人机界面 862次阅读
- 人机界面报警信息的设置方法 8485次阅读
- 基于Android操作系统实现车载人机界面应用程序的设计 2780次阅读
- 人机界面未来的发展趋势 3521次阅读
- 常见的人机界面和PLC通讯故障,及解决方案介绍 1w次阅读
- 人机界面简单编程实例介绍 2.2w次阅读
- 人机界面HMI的8大知识点汇总 5.7w次阅读
- 人机界面设计案例分析 3.2w次阅读
- 详细介绍人机界面的10大常识 7864次阅读
- 人机界面的发展历程和组成结构及工作原理,人机界面如何控制plc? 6906次阅读
- 人机界面设计在工业设计中的应用 2484次阅读
- 人机界面技术大盘点 1833次阅读
- 基于Android车载虚拟仪表人机界面设计 1804次阅读
下载排行
本周
- 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次下载 | 免费
评论
查看更多