使用Arduino在LCD屏幕上显示键盘输入

使用Arduino在LCD屏幕上显示键盘输入,arduino,lcd,keypad,Arduino,Lcd,Keypad,我想要一个Arduino代码在LCD显示器上以如下格式给出输出 如果用户从键盘上单击“A”、1、2、3,LCD应显示Hi:1、2、3 这是我尝试过的,但我无法找到构建代码的方法,因为我是arduino的初学者 #include <Keypad.h> #include <LiquidCrystal.h> const byte numRows= 4; const byte numCols= 4; char keymap[numRows][numCols]= {

我想要一个Arduino代码在LCD显示器上以如下格式给出输出

如果用户从键盘上单击“A”、1、2、3,LCD应显示Hi:1、2、3

这是我尝试过的,但我无法找到构建代码的方法,因为我是arduino的初学者

#include <Keypad.h>
#include <LiquidCrystal.h>


const byte numRows= 4;
const byte numCols= 4;

char keymap[numRows][numCols]= {
    {'1', '2', '3', 'A'},
    {'4', '5', '6', 'B'},
    {'7', '8', '9', 'C'},
    {'*', '0', '#', 'D'}
};

byte rowPins[numRows] = {9,8,7,6};      // Pin Assign
byte colPins[numCols] = {5,4,3,2};      // Pin Assign

Keypad myKeypad= Keypad(makeKeymap(keymap), rowPins, colPins, numRows, numCols);

// LCD
//                RS E  D4 D5 D6 D7
LiquidCrystal lcd(A0,A1,A2,A3,A4,A5);   // Pin Assign


void setup()
{   
    lcd.begin(16, 2);       
    lcd.clear();
    lcd.print("PUSH ANY KEY! ");
    lcd.cursor();
    lcd.blink();
}


void loop(){
    char keypressed = myKeypad.getKey();
    if (keypressed != NO_KEY){
        lcd.clear();
        lcd.setCursor(0, 0);
        lcd.print(keypressed);
        lcd.print(':');
        lcd.setCursor(3, 0);

    }

}
#包括
#包括
常量字节numRows=4;
常量字节numCols=4;
char keymap[numRows][numCols]={
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*'、'0'、'#'、'D'}
};
字节行pins[numRows]={9,8,7,6};//Pin分配
字节colPins[numCols]={5,4,3,2};//Pin分配
小键盘myKeypad=小键盘(makeyMap(keymap)、行pin、列pin、numrow、numCols);
//液晶显示器
//RS E D4 D5 D6 D7
液晶显示器(A0、A1、A2、A3、A4、A5);//Pin分配
无效设置()
{   
lcd.begin(16,2);
lcd.clear();
打印(“按任意键!”);
lcd.cursor();
lcd.blink();
}
void循环(){
char keypressed=myKeypad.getKey();
如果(按下键!=无键){
lcd.clear();
lcd.setCursor(0,0);
lcd.打印(按键);
lcd.print(“:”);
lcd.setCursor(3,0);
}
}

您可能需要创建一个状态机,当您收到
'a'
字符时,状态会发生变化。因此,当您没有收到
'A'
字符时,您的状态机会一直处于繁忙等待状态(
while(按键!='A')

收到
'A'
后,您将检查接下来收到的3个字符,并验证它们是否符合您的预期(
'1'
'2'
'3'

如果您以任何不同的顺序接收它,那么循环将中断,并且验证将在语句
If(i==4)
处失败。换句话说,一旦您收到一个您不期望的数字,循环就会中断,验证就会失败

以下是您可以在
循环()中添加的内容
代码:

void循环(){
字符应为[3]={1',2',3'};
int i=0;
char keypressed=myKeypad.getKey();
while(按下键!=“A”)
;
而(i<4){
对于(i=0;i<4;i++){
如果(按下键!=应为[i])
打破
}
如果(i==4)
液晶显示打印(“Hi:1,2,3”);
}