char key[4][4]={{'1','2','3','A'},{'4','5','6','B'},{'7','8','9','C'},{'*','0','#','D'}};
#define pin1 5
#define pin2 6
#define pin3 7
#define pin4 8
#define pin5 9
#define pin6 10
#define pin7 12
#define pin8 13
char pinBushed;
int input_pins[4]={8,7,6,5};
int output_pins[4]={13,12,10,9};
// פונקציה
char mykey(void)
{
int r,c;
for(r=0;r<4;r++)
{
digitalWrite(output_pins[r],LOW);
for(int c=0;c<4;c++)
{
if((digitalRead(input_pins[c])==LOW))
return key[r][c];
}
digitalWrite(output_pins[r],HIGH);
}
return '$';
}
void setup()
{
Serial.begin(9600);
pinMode(pin1,INPUT_PULLUP);
pinMode(pin2,INPUT_PULLUP);
pinMode(pin3,INPUT_PULLUP);
pinMode(pin4,INPUT_PULLUP);
pinMode(pin5,OUTPUT);
pinMode(pin6,OUTPUT);
pinMode(pin7,OUTPUT);
pinMode(pin8,OUTPUT);
digitalWrite(pin5,HIGH);
digitalWrite(pin6,HIGH);
digitalWrite(pin7,HIGH);
digitalWrite(pin8,HIGH);
}
void loop()
{
pinBushed=mykey();
char key;
if(pinBushed=='$')
{
;
}
else
{
Serial.println(pinBushed);
}
delay(500);
}