矩阵键盘 4*4 arduino
Posted
技术标签:
【中文标题】矩阵键盘 4*4 arduino【英文标题】:Matrix keyboard 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 针有问题。它们用于通信,但我不知道我不能将它用于按钮。谢谢你:)
【参考方案1】:
Arduino UNO 上的引脚 0 和 1 配置为串行通信,如果您使用 Serial
库。尝试将这些引脚更改为其他一些数字引脚。
纯属推测,在此状态下尝试使用digitalRead()
或类似的引脚读取yield a LOW,因此Keypad
库永远不会认为该列处于活动状态,因此驻留在这些列上的按钮将永远无法工作.
【讨论】:
以上是关于矩阵键盘 4*4 arduino的主要内容,如果未能解决你的问题,请参考以下文章
Proteus仿真Arduino UNO +74C922键盘解码驱动4X4矩阵键盘