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

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

3天内不再提示

带LCD显示屏和Arduino Uno的仪表板键盘的制作

454398 来源:网络整理 作者:网络整理 2019-11-11 11:46 次阅读

步骤1:串行显示

这是与UART,它是带有TXRX的RS。它也存在于I2C版本中,但其他型号将保留用于即将到来的组装。在这种情况下,该显示由UART通过RS工作。

步骤2:矩阵键盘

矩阵示例我们使用的键盘是照片的键盘,它在右侧。我们有一个显示其工作原理的图表。它实际上只有4x4线。因此,它使用的导线数量最少。每行和每列一根导线,因此总共有八根导线。

它不需要电源,因为它的工作方式如下:按下7时,键盘拿起7并连接

请记住,点矩阵的任何4x4键盘都可以在该程序集中使用。

步骤3:组装

在一般方案中,由于键盘没有电源,我们将八根电线直接连接到Arduino端口。在显示屏上,我们有一个RS 232信号以及正负电源。背光仍然存在,并且已经连接(由BKL标识)。

步骤4:源代码

在该项目的源代码中,则必须包括串行和键盘。它具有串行软件必需的设置RX_PIN和TX_PIN,以及INVERTED1。它位于下面,用于放大使用反相逻辑输入的信号。

//biblioteca responsável pela comunicação com o display LCD

#include

//biblioteca responsável por capturar a tecla que foi pressionada no teclado

#include

// pino invalido apenas usado no contrutor do SoftwareSerial

#define RX_PIN 255

// pino TX da nossa ligação Arduino x Display LCD

#define TX_PIN 3

// inverte a lógica dos pinos Rx e Tx, tratando LOW como HIGH e vice-versa

#define INVERTED 1

第5步:显示命令

重要信息:在此显示中,仅在其上放置一个字符串是不够的。您需要发送控制字符。 PDF包含您具有该显示手册的站点的链接。但是,如果您有其他品牌的串行显示器,则最好查看它们与此有关的控制代码。例如,在此模型中,当我们发送某个控件(例如有关此显示的信息)时,我们需要发送一个前缀254,以启用通信

因此我们设置了一个方便事物的数组,它是使用数字索引访问的变量的集合。

//comando para limpar toda a tela do display

const char limparTela[ ] = {

254,1};

//comandos de configuração inicial

/*

254,254 --》 acende o backlight

254,1 --》 limpa a tela

254,253,1 --》 configura o contraste em nível alto

254,13 --》 liga o cursor paraficar piscando

*/

const char configInicial[ ] = {

254,254, 254,1, 254,253,1, 254,13};

步骤6:键盘操作

键盘如何工作?首先,它安装一个数组。该数组具有将实际显示在其中的字符。因此,如果我放了一个X,当我按下顶部的第一个左按钮时,它就会显示出来。这就是键盘的内容,它就是命令的内容。

在此键盘的阵列中,我们要定义的其他内容是行号4和列号4。我们仍然有线路的引脚,即Arduino引脚和列的引脚。我们仍然有一个带有符号,引脚,行和列参数的customKeypad键盘构建器。

const byte LINHAS = 4; //número de linhas do teclado

const byte COLUNAS = 4; //número de colunas do teclado

//define uma matriz com os símbolos que deseja ser lido do teclado

char SIMBOLOS[LINHAS][COLUNAS] = {

{‘A’,‘1’,‘2’,‘3’},

{‘B’,‘4’,‘5’,‘6’},

{‘C’,‘7’,‘8’,‘9’},

{‘D’,‘c’,‘0’,‘e’}

};

byte PINOS_LINHA[LINHAS] = {8, 9, 10, 11}; //pinos que indicam as linhas do teclado

byte PINOS_COLUNA[COLUNAS] = {4, 5, 6, 7}; //pinos que indicam as colunas do teclado

//instancia de Keypad, responsável por capturar a tecla pressionada

Keypad customKeypad = Keypad( makeKeymap(SIMBOLOS), PINOS_LINHA, PINOS_COLUNA, LINHAS, COLUNAS);

步骤7:密码设置

在这一部分中,我们定义密码,然后我们需要输入一个密码,它是一个空字符串。

//variáveis resposnsáveis por armazenar as senhas

const String SENHA_ESPERADA = “1234ABCD”;

String SENHA_DIGITADA = “”;

//instancia de SoftwareSerial para nos comunicar com o Display via serial

SoftwareSerial displaySerial = SoftwareSerial(RX_PIN, TX_PIN, INVERTED);

步骤8:设置

至于设置,这里是displaySerial。开始(2,400),这与速度有关。在我们的情况下,这足以发送一个字节。之后,需要等待700毫秒。我们将初始配置中的displaySerial.print(initialConfig)包含进来,新延迟为10毫秒,然后转到启动函数。在启动函数中,我们将displaySerial.print(“ password:”)放入。

void setup(){

Serial.begin(2400);

//inicializando a serial de comunicação com o display

//importante o baud rate ser de 2400

displaySerial.begin(2400);

//tempo de espera pela inicialização do display

delay(700);

//seta a configuração inicial do display

displaySerial.print(configInicial);

delay(10);

inicio();

}

//função responsável por imprimir na tela a mensagem para digitar a senha

//é chamada toda vez q a senha foi digitada e comparada, também quando

//a tecla limpar display foi pressionada.

void inicio(){

displaySerial.print(“Senha:”);

}

步骤9:循环

,我们创建一个customKey = customKeypad.getKey(),然后按顺序输入一个Switch命令。

//captura a tecla pressionada do teclado

char customKey = customKeypad.getKey();

//caso alguma tecla foi pressionada

if (customKey){

Serial.println(customKey);

switch(customKey)

{

/。../

}

}

循环开关第1部分

在Switch命令内部:如果按下该键,它将显示可打印键的可能性列表,并增加密码:使用customKey并连接输入的密码。接下来,displaySerial.print(customKey)显示键的内容。

switch(customKey)

{

//caso alguma das teclas imprimíveis foi pressionada

case ‘A’:

case ‘B’:

case ‘C’:

case ‘D’:

case ‘0’:

case ‘1’:

case ‘2’:

case ‘3’:

case ‘4’:

case ‘5’:

case ‘6’:

case ‘7’:

case ‘8’:

case ‘9’:

//concatena o novo símbolo a senha que estamos digitando

SENHA_DIGITADA+=customKey;

Serial.println(SENHA_DIGITADA);

//imrpime na tela o símbolo pressionado

displaySerial.print(customKey);

break;

循环开关第2部分

在此代码中,我们显示了一个场景,用于了解CLEAR键是否被按下。如果您键入字母C并清除包含您所输入密码的变量,则它将调用命令以清除屏幕并重新启动。

//caso a tecla CLEAR tenha sido pressionada

case ‘c’:

//limpa a variável que guarda a senha que está sendo digitada

SENHA_DIGITADA = “”;

//chama o comando para limpar a tela

displaySerial.print(limparTela);

//configura a mensagem para digitar a senha

inicio();

break;

回路开关第3部分

另一种可能性是如果键入字母E。在这种情况下,如果输入的密码正确或不正确,屏幕将被清理并分析。接下来,我们将给出2秒的新延迟,清除屏幕,重置密码变量,然后返回到开头。

//caso a tecla ENTER seja pressionada, devemos comparar as senhas

case ‘e’:

//limpa a tela

displaySerial.print(limparTela);

//se a senha digitada foi igual a ESPERADA

if(SENHA_ESPERADA==SENHA_DIGITADA)

{

Serial.println(“Senha Correta!”);

//imprime mensagem de senha correta

displaySerial.print(“Senha Correta!!!”);

}

//caso senha esteja errada

else{

Serial.println(“Senha Incorreta!”);

//imprime mensagem de senha incorreta

displaySerial.print(“Senha Incorreta!”);

}

//aguarda 2 segundos para limpar a tela novamente e esperar uma nova senha ser digitada

delay(2000);

displaySerial.print(limparTela);
责任编辑:wv

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

    关注

    34

    文章

    4408

    浏览量

    166995
  • 键盘
    +关注

    关注

    4

    文章

    858

    浏览量

    39564
  • Arduino
    +关注

    关注

    187

    文章

    6461

    浏览量

    186570
收藏 人收藏

    评论

    相关推荐

    oled是什么显示屏 OLED与LCD的区别

    OLED是什么显示屏 OLED(Organic Light-Emitting Diode),即有机发光二极管,是一种电流型的有机发光器件。其工作原理是通过载流子的注入和复合而致发光,发光强度与注入
    的头像 发表于 10-21 16:40 533次阅读

    液晶显示屏是什么材料做的

    液晶显示屏(Liquid Crystal Display,简称LCD)是一种广泛使用的显示技术,它利用液晶材料的光学特性来控制光线的通过,从而实现图像的显示。液晶
    的头像 发表于 10-12 10:41 579次阅读

    液晶显示屏与led显示屏的区别

    在现代电子设备中,显示屏是人机交互的重要界面。随着科技的发展,显示屏技术也在不断进步,其中液晶显示屏LCD)和LED显示屏是两种主流的
    的头像 发表于 10-12 10:39 776次阅读

    lcd和led显示屏有什么区别

    LCD(液晶显示器)和LED(发光二极管)显示屏是两种常见的显示技术,它们在许多方面都有显著的不同。以下是对这两种技术的比较: 1. 基本工作原理
    的头像 发表于 10-10 14:18 519次阅读

    使用 TPS1HC100-Q1 高效驱动汽车仪表板负载应用说明

    电子发烧友网站提供《使用 TPS1HC100-Q1 高效驱动汽车仪表板负载应用说明.pdf》资料免费下载
    发表于 09-12 10:41 0次下载
    使用 TPS1HC100-Q1 高效驱动汽车<b class='flag-5'>仪表板</b>负载应用说明

    vr显示屏用电视还是led

    直接影响到视觉体验、舒适度和沉浸感。当前市场上,电视和LED是两种常见的显示屏类型,它们各自具有优缺点。 一、显示屏技术原理 电视显示屏 电视显示
    的头像 发表于 07-08 10:36 590次阅读

    Omdia:预计到2025年,Mini LED背光LCD显示屏的出货量将超过OLED显示屏

    背光单元的LCD 电视显示屏出货量将在2024年达到620万台。 同年,三星显示和LG 显示预计将生产680万台OLED电视显示屏,包括WO
    的头像 发表于 06-26 17:12 660次阅读
    Omdia:预计到2025年,Mini LED背光<b class='flag-5'>LCD</b><b class='flag-5'>显示屏</b>的出货量将超过OLED<b class='flag-5'>显示屏</b>

    全彩LED显示屏/天幕哪家好?#LED显示屏 #天幕# 多媒体宣传展示

    LED显示屏
    jf_50082260
    发布于 :2024年06月13日 07:24:59

    LED显示屏设计方案

    1、LED显示屏基础知识2、LED显示屏设计要素3、LED显示屏驱动方案4、LED显示屏控制系统5、LED显示屏应用案例分析6、LED
    发表于 04-03 17:21 9次下载

    细分市场突破:国内首颗车规级LCD显示屏PMIC芯片

    PMIC领域,本土厂商产品存在空白,主要是由于汽车领域的车规认证门槛较高,汽车供应链的导入周期过长等因素。但最近,有一家国产芯片公司推出了国内首款车规级LCD显示屏PMIC产品。   国内首颗车规级LCD
    的头像 发表于 03-06 00:16 3396次阅读
    细分市场突破:国内首颗车规级<b class='flag-5'>LCD</b><b class='flag-5'>显示屏</b>PMIC芯片

    国产车载LCD显示屏电源管理芯片EPA9900实现突破

     奕斯伟计算,一家中国领先的公司,成功研发出国内首颗车载LCD显示屏电源管理芯片——EPA9900,结束了国内车规级显示屏PMIC芯片市场长期依赖进口的局面。
    的头像 发表于 03-04 16:01 2498次阅读

    如何使用Arduino UNO和电位器控制伺服电机

    在本Arduino伺服电机教程中,您将学习如何使用Arduino UNO和电位器控制伺服电机。
    的头像 发表于 02-11 10:11 2535次阅读
    如何使用<b class='flag-5'>Arduino</b> <b class='flag-5'>UNO</b><b class='flag-5'>板</b>和电位器控制伺服电机

    商场外墙户外P5LED显示屏# P5LED显示屏# 商场LED显示屏# 广场LED显示屏# 小区LED显示屏

    LED显示屏
    LED显示屏生产厂家
    发布于 :2024年01月16日 20:24:01

    酒店会议室LED显示屏P2#酒店LED显示屏# P2LED显示屏# 会议室LED显示屏

    LED显示屏
    LED显示屏生产厂家
    发布于 :2024年01月16日 20:19:32

    LCD显示屏、LED显示屏、OLED显示屏有什么区别?

    LCD显示屏、LED显示屏、OLED显示屏有什么区别? LCD显示屏、LED
    的头像 发表于 12-11 14:29 1.3w次阅读