Arduino实验四:矩阵键盘实验
来自丢石头百科
实验现象
- 串口输出按下按键的键值
电路连接
主要程序
for (int i = 0; i < 4; i++) { digitalWrite(C[i], LOW); } if (!digitalRead(R[0]) || !digitalRead(R[1]) || !digitalRead(R[2])|| !digitalRead(R[3])) { delay(10); if (!digitalRead(R[0]) || !digitalRead(R[1]) || !digitalRead(R[2])|| !digitalRead(R[3])) { digitalWrite(C[0], LOW);//扫描第一列 digitalWrite(C[1], HIGH); digitalWrite(C[2], HIGH); digitalWrite(C[3], HIGH); for (int j = 0; j < 4; j++) { if (!digitalRead(R[j])) { Serial.print("S"); Serial.print(j * 4 + 1);//在串口监视器中输出键盘编号 Serial.println(" has been pressed"); while (!digitalRead(R[j])); Serial.println("The button has been loosened"); } } ....................
注意事项
- 需将按键连接引脚配置为输入上拉模式,这样该引脚在没有外接信号输入的情况可下保持高电位,则写为:pinMode(9, INPUT_PULLUP);
- 若单纯写为:pinMode(9, INPUT),则该引脚的状态会不稳定。出现0和1无规律变化,从而影响程序判断。