Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/arduino/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
LCD上显示的是特殊字符而不是数字-Arduino_Arduino - Fatal编程技术网

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

LCD上显示的是特殊字符而不是数字-Arduino,arduino,Arduino,我想将4x3矩阵键盘上按下的数字打印到我的20x4 lcd上,但结果我得到了一个w和箭头。 这是我的密码 #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;

我想将4x3矩阵键盘上按下的数字打印到我的20x4 lcd上,但结果我得到了一个w和箭头。 这是我的密码

#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);
  }
}
#包括
#包括
液晶显示器(12,11,5,4,3,2)//RS、EN、D4、D5、D6、D7
常量字节行=4//键盘上的行数,即4
常量字节Cols=3//键盘上的列数,即3
//我们将在键盘上定义关键地图:
char键映射[行][列]={
{'1', '2', '3'},
{'4', '5', '6'},
{'7', '8', '9'},
{'*', '0', '#'}
};
字节rPins[行]={9,8,7,6}//第0至3行
字节cPins[Cols]={5,4,3}//第0列到第2列
键盘kpd=键盘(makeKeymap(键盘映射)、RPIN、CPIN、行、列);
无效设置(){
lcd.begin(20,4);//初始化lcd
}
void循环(){
char keypressed=kpd.getKey();
如果(按下键!=无键){
lcd.打印(按键);
}
}

请帮助我。

您的两个模块共享一些相同的引脚,这是问题的根源:

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似乎是共享的。当外围设备之间共享管脚时,会发生各种奇怪的事情。然后,当你说每台设备似乎都能独立工作,而没有其他设备时。。。嗯,我得说重叠的针是你的罪魁祸首


查看是否有方法重新映射一个或其他设备,以避免共享PIN。

如果
lcd.print(“Hello World”);您需要调试它并找出问题所在起作用,您知道问题不在LCD中。如果
Serial.println(按键)为您提供正确的结果,您知道问题不在键盘上。我猜你的设置中是否有错误的pin码。我尝试过使用相同的连接分别调试lcd和键盘,结果是正确的。但当我一起尝试时,它总是显示“w”和箭头符号。我打赌你没有尝试我建议的同时配置两个!您正在尝试将引脚3、4和5用于键盘和LCD。。