我想打印从4x3矩阵键盘按下的数字到我的20x4液晶显示器,但结果我得到了一个w和箭头。 The error looks like this. 这是我的代码。
#include <LiquidCrystal.h>
#include <Keypad.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);//RS,EN,D4,D5,D6,D7
const byte Rows= 4; //number of rows on the keypad i.e. 4
const byte Cols= 3; //number of columns on the keypad i,e, 3
//we will definne the key map as on the key pad:
char keymap[Rows][Cols]={
{'1', '2', '3'},
{'4', '5', '6'},
{'7', '8', '9'},
{'*', '0', '#'}
};
byte rPins[Rows]= {9, 8, 7, 6}; //Rows 0 to 3
byte cPins[Cols]= {5, 4, 3}; //Columns 0 to 2
Keypad kpd= Keypad(makeKeymap(keymap), rPins, cPins, Rows, Cols);
void setup() {
lcd.begin(20, 4);//initializing LCD
}
void loop() {
char keypressed = kpd.getKey();
if (keypressed != NO_KEY) {
lcd.print(keypressed);
}
}
请帮帮我。感谢。
答案 0 :(得分:1)
你的两个模块共享一些相同的引脚,这就是问题的根源:
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);//RS,EN,D4,D5,D6,D7
byte cPins[Cols]= {5, 4, 3}; //Columns 0 to 2
从这些声明中,引脚5,4和3似乎是共享的。当外围设备之间共享引脚时,会发生各种奇怪的事情。然后,当你说每个设备似乎自己运行良好,没有其他设备......好吧,我会说重叠的针脚是你的罪魁祸首。
看看是否有办法重新映射一个或其他设备,以便没有共享引脚。