0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取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步:顯示命令

重要信息:在此顯示中,僅在其上放置一個字符串是不夠的。您需要發(fā)送控制字符。 PDF包含您具有該顯示手冊的站點的鏈接。但是,如果您有其他品牌的串行顯示器,則最好查看它們與此有關的控制代碼。例如,在此模型中,當我們發(fā)送某個控件(例如有關此顯示的信息)時,我們需要發(fā)送一個前綴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),這與速度有關。在我們的情況下,這足以發(fā)送一個字節(jié)。之后,需要等待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:循環(huán)

,我們創(chuàng)建一個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)

{

/。../

}

}

循環(huán)開關第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;

循環(huán)開關第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

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯系本站處理。 舉報投訴
  • lcd
    lcd
    +關注

    關注

    34

    文章

    4437

    瀏覽量

    167961
  • 鍵盤
    +關注

    關注

    4

    文章

    859

    瀏覽量

    39775
  • Arduino
    +關注

    關注

    188

    文章

    6474

    瀏覽量

    187444
收藏 人收藏

    評論

    相關推薦

    自己設計的Arduino UNO R3主控原理圖+PCB源文件(可直接打樣)

    一年前做的Arduino UNO r3,開源精神,把自己這塊板子奉獻給大家,板子沒有什么問題,可以直接打樣制作,原理圖文件都表明了型號。不用謝~ Arduino
    發(fā)表于 12-10 10:14

    2.0寸單色LCD液晶顯示屏,12864圖形點陣

    顯示屏串口
    乾思迪電子科技
    發(fā)布于 :2024年11月19日 16:45:32

    oled是什么顯示屏 OLED與LCD的區(qū)別

    OLED是什么顯示屏 OLED(Organic Light-Emitting Diode),即有機發(fā)光二極管,是一種電流型的有機發(fā)光器件。其工作原理是通過載流子的注入和復合而致發(fā)光,發(fā)光強度與注入
    的頭像 發(fā)表于 10-21 16:40 ?1999次閱讀

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

    液晶顯示屏(Liquid Crystal Display,簡稱LCD)是一種廣泛使用的顯示技術,它利用液晶材料的光學特性來控制光線的通過,從而實現圖像的顯示。液晶
    的頭像 發(fā)表于 10-12 10:41 ?1251次閱讀

    液晶顯示屏與led顯示屏的區(qū)別

    在現代電子設備中,顯示屏是人機交互的重要界面。隨著科技的發(fā)展,顯示屏技術也在不斷進步,其中液晶顯示屏LCD)和LED顯示屏是兩種主流的
    的頭像 發(fā)表于 10-12 10:39 ?1576次閱讀

    lcd和led顯示屏有什么區(qū)別

    LCD(液晶顯示器)和LED(發(fā)光二極管)顯示屏是兩種常見的顯示技術,它們在許多方面都有顯著的不同。以下是對這兩種技術的比較: 1. 基本工作原理
    的頭像 發(fā)表于 10-10 14:18 ?1401次閱讀

    使用 TPS1HC100-Q1 高效驅動汽車儀表板負載應用說明

    電子發(fā)燒友網站提供《使用 TPS1HC100-Q1 高效驅動汽車儀表板負載應用說明.pdf》資料免費下載
    發(fā)表于 09-12 10:41 ?0次下載
    使用 TPS1HC100-Q1 高效驅動汽車<b class='flag-5'>儀表板</b>負載應用說明

    vr顯示屏用電視還是led

    直接影響到視覺體驗、舒適度和沉浸感。當前市場上,電視和LED是兩種常見的顯示屏類型,它們各自具有優(yōu)缺點。 一、顯示屏技術原理 電視顯示屏 電視顯示
    的頭像 發(fā)表于 07-08 10:36 ?755次閱讀

    Omdia:預計到2025年,Mini LED背光LCD顯示屏的出貨量將超過OLED顯示屏

    背光單元的LCD 電視顯示屏出貨量將在2024年達到620萬臺。 同年,三星顯示和LG 顯示預計將生產680萬臺OLED電視顯示屏,包括WO
    的頭像 發(fā)表于 06-26 17:12 ?779次閱讀
    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
    發(fā)布于 :2024年06月13日 07:24:59

    LED顯示屏設計方案

    1、LED顯示屏基礎知識2、LED顯示屏設計要素3、LED顯示屏驅動方案4、LED顯示屏控制系統(tǒng)5、LED顯示屏應用案例分析6、LED
    發(fā)表于 04-03 17:21 ?12次下載

    勛瑞光電:如何購買5寸LCD顯示屏?從價格、特點、及優(yōu)勢方面進行解析

    當涉及到5寸LCD顯示屏時,以下是一些常見的價格、特點和優(yōu)勢的全面解析:
    的頭像 發(fā)表于 03-27 09:44 ?441次閱讀

    細分市場突破:國內首顆車規(guī)級LCD顯示屏PMIC芯片

    PMIC領域,本土廠商產品存在空白,主要是由于汽車領域的車規(guī)認證門檻較高,汽車供應鏈的導入周期過長等因素。但最近,有一家國產芯片公司推出了國內首款車規(guī)級LCD顯示屏PMIC產品。 ? 國內首顆車規(guī)級LCD
    的頭像 發(fā)表于 03-06 00:16 ?3625次閱讀
    細分市場突破:國內首顆車規(guī)級<b class='flag-5'>LCD</b><b class='flag-5'>顯示屏</b>PMIC芯片

    國產車載LCD顯示屏電源管理芯片EPA9900實現突破

     奕斯偉計算,一家中國領先的公司,成功研發(fā)出國內首顆車載LCD顯示屏電源管理芯片——EPA9900,結束了國內車規(guī)級顯示屏PMIC芯片市場長期依賴進口的局面。
    的頭像 發(fā)表于 03-04 16:01 ?2774次閱讀

    如何使用Arduino UNO和電位器控制伺服電機

    在本Arduino伺服電機教程中,您將學習如何使用Arduino UNO和電位器控制伺服電機。
    的頭像 發(fā)表于 02-11 10:11 ?2908次閱讀
    如何使用<b class='flag-5'>Arduino</b> <b class='flag-5'>UNO</b><b class='flag-5'>板</b>和電位器控制伺服電機