Arduino实验四:矩阵键盘实验
来自丢石头百科
Yousimaier17(讨论 | 贡献)2023年2月4日 (六) 15:20的版本 (创建页面,内容为“=== 实验现象 === *串口输出按下按键的键值 === 电路连接 === * === 主要程序 === <pre> for (int i = 0; i < 4; i++) { digitalWrite(C[i],…”)
实验现象
- 串口输出按下按键的键值
电路连接
主要程序
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无规律变化,从而影响程序判断。