LCD上显示特殊字符而不是数字 - Arduino

时间:2017-07-31 09:13:06

标签: arduino electronics

我想打印从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);
  }
}

请帮帮我。感谢。

1 个答案:

答案 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似乎是共享的。当外围设备之间共享引脚时,会发生各种奇怪的事情。然后,当你说每个设备似乎自己运行良好,没有其他设备......好吧,我会说重叠的针脚是你的罪魁祸首。

看看是否有办法重新映射一个或其他设备,以便没有共享引脚。