#include <Arduino.h>
#define COM_PIN 2
const uint8_t CONTROL_PINS[] = {3, 4, 5, 6};
const int LED_PIN = A0;
char readButton(int channel)
{
for (int i = 0; i < 4; i++)
{
digitalWrite(CONTROL_PINS[i], (channel >> i) & 1);
}
delay(10);
int buttonState = digitalRead(COM_PIN);
char buttonChar = 'A' + channel;
return buttonState == HIGH ? buttonChar : '\0';
}
void setup()
{
Serial.begin(9600);
pinMode(COM_PIN, INPUT);
for (int i = 0; i < 4; ++i)
{
pinMode(CONTROL_PINS[i], OUTPUT);
}
pinMode(LED_PIN, OUTPUT);
}
void loop()
{
for (int i = 0; i < 16; ++i)
{
char buttonPressed = readButton(i);
if (buttonPressed != '\0')
{
Serial.println(buttonPressed);
digitalWrite(LED_PIN, HIGH); // Turn on LED when a button is pressed
delay(100);
}
digitalWrite(LED_PIN, LOW); // Turn off LED after delay
}
}
nano:12
nano:11
nano:10
nano:9
nano:8
nano:7
nano:6
nano:5
nano:4
nano:3
nano:2
nano:GND.2
nano:RESET.2
nano:0
nano:1
nano:13
nano:3.3V
nano:AREF
nano:A0
nano:A1
nano:A2
nano:A3
nano:A4
nano:A5
nano:A6
nano:A7
nano:5V
nano:RESET
nano:GND.1
nano:VIN
nano:12.2
nano:5V.2
nano:13.2
nano:11.2
nano:RESET.3
nano:GND.3
Loading
cd74hc4067
cd74hc4067
btn1:1.l
btn1:2.l
btn1:1.r
btn1:2.r
btn2:1.l
btn2:2.l
btn2:1.r
btn2:2.r
btn3:1.l
btn3:2.l
btn3:1.r
btn3:2.r
btn4:1.l
btn4:2.l
btn4:1.r
btn4:2.r
btn5:1.l
btn5:2.l
btn5:1.r
btn5:2.r
btn6:1.l
btn6:2.l
btn6:1.r
btn6:2.r
btn7:1.l
btn7:2.l
btn7:1.r
btn7:2.r
btn8:1.l
btn8:2.l
btn8:1.r
btn8:2.r
btn9:1.l
btn9:2.l
btn9:1.r
btn9:2.r
btn10:1.l
btn10:2.l
btn10:1.r
btn10:2.r
btn11:1.l
btn11:2.l
btn11:1.r
btn11:2.r
btn12:1.l
btn12:2.l
btn12:1.r
btn12:2.r
btn13:1.l
btn13:2.l
btn13:1.r
btn13:2.r
btn14:1.l
btn14:2.l
btn14:1.r
btn14:2.r
btn15:1.l
btn15:2.l
btn15:1.r
btn15:2.r
btn16:1.l
btn16:2.l
btn16:1.r
btn16:2.r
vcc1:VCC
r1:1
r1:2
vcc2:VCC
vcc3:VCC
led1:A
led1:C