const int jmlBaris=4;
const int jmlKolom=3;
const int bouncing=20; //timer 20ms
const char keymap[jmlBaris][jmlKolom] = {
{'1','2','3'},
{'4','5','6'},
{'7','8','9'},
{'*','0','#'} };
const int pinBaris[jmlBaris]={5,4,3,2};
const int pinKolom[jmlKolom]={6,7,8};
void setup() {
// put your setup code here, to run once:
Serial.begin(9600);
Serial.println("PERCOBAAN KEYPAD");
for(int baris=0;baris<jmlBaris;baris++)
{
pinMode(pinBaris[baris],INPUT);
digitalWrite(pinBaris[baris],HIGH);
}
for(int kolom=0;kolom<jmlKolom;kolom++)
{
pinMode(pinKolom[kolom],OUTPUT);
digitalWrite(pinKolom[kolom],HIGH);
}
}
void loop() {
char key = getKey();
if (key !=0)
{
Serial.print("tombol yang ditekan : ");
Serial.println(key);
}
}
char getKey() {
char key=0; //tidakk ada yang ditekan
for(int kolom=0;kolom<jmlKolom;kolom++)
{
digitalWrite(pinKolom[kolom],LOW);
for(int baris=0;baris<jmlBaris;baris++)
{
if(digitalRead(pinBaris[baris])==LOW)
{
delay(bouncing);
while(digitalRead(pinBaris[baris])==LOW)
key = keymap[baris][kolom];
}
}
digitalWrite(pinKolom[kolom],HIGH);
}
return key;
}