const int colPins[5] = {7,8,9,10,11}; // 行引脚
const int rowPins[5] = {2, 3, 4, 5, 6}; // 列引脚
void setup() {
for (int i = 0; i < 5; i++) {
pinMode(colPins[i], OUTPUT);
digitalWrite(colPins[i], HIGH);
}
for (int i = 0; i < 5; i++) {
pinMode(rowPins[i], INPUT_PULLUP);
}
Serial.begin(9600);
}
void loop() {
for (int lie = 0; lie < 5; lie++) {
digitalWrite(colPins[lie], LOW); // 激活当前行
for (int hang = 0; hang < 5; hang++) {
if (digitalRead(rowPins[hang]) == LOW) {// 检测到按下
delay(50); // 添加延时以防止开关抖动
if (digitalRead(rowPins[hang]) == LOW) {
Serial.print("Switch at lie ");
Serial.print(lie);
Serial.print(" hang ");
Serial.println(hang);
}
}
}
digitalWrite(colPins[lie], HIGH); // 恢复当前行
}
}