使用Arduino在LCD屏幕上显示键盘输入
我想要一个Arduino代码在LCD显示器上以如下格式给出输出 如果用户从键盘上单击“A”、1、2、3,LCD应显示Hi:1、2、3 这是我尝试过的,但我无法找到构建代码的方法,因为我是arduino的初学者使用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]= {
#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”);
}