【问题标题】:Matrix keyboard 4*4 arduino矩阵键盘 4*4 arduino
【发布时间】:2016-09-15 12:43:38
【问题描述】:

我的键盘连接到 4*4 矩阵时出现问题。我只使用了 14 个按钮。问题是所有按钮都适用于 Arduino Mega。在 Uno 上仅适用于 3,4 - 5,6 - B,C。我不明白为什么它不起作用。有人可以帮助我吗?提前谢谢你。

这是我的代码

    #include <Keypad.h>

const byte ROWS = 4;
const byte COLS = 4;

char keys[ROWS][COLS] = {
  {'1' , '2' , '3' , '4'},
  {'5' , '6' , '7' , '8'},
  {'9' , 'A' , 'B' , 'C'},
  {'D' , 'E' , 'F' , 'G'}
  };


byte rowPins[ROWS] = {13,12,11,10};
byte colPins[COLS] = {0,1,2,3};

Keypad keypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS);
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
}

void loop() {
  // put your main code here, to run repeatedly:
  char key = keypad.getKey();
  if(key != NO_KEY){
    Serial.println(key);
  }
}

【问题讨论】:

  • 您确定您的连接正确吗?例如,UNO 上的引脚 0 和 1 默认配置为串行通信,如果我没记错的话,虽然有人会怀疑 Keypad 构造函数会处理这个问题。
  • 太好了,0,1 针有问题。它们用于通信,但我不知道我不能将它用于按钮。谢谢你:)

标签: c matrix arduino keypad


【解决方案1】:

Arduino UNO 上的引脚 01 配置为串行通信,如果您使用 Serial 库。尝试将这些引脚更改为其他一些数字引脚。

纯属推测,在此状态下尝试使用digitalRead() 或类似的引脚读取yield a LOW,因此Keypad 库永远不会认为该列处于活动状态,因此驻留在这些列上的按钮将永远无法工作.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-05-22
    • 2022-01-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-31
    • 1970-01-01
    相关资源
    最近更新 更多