//konfigurasi pin kolom
int k1=7; //pin kolom 1 (silakan sesuaikan dengan projek kalian ganti x dengan pin)
int k2=6; //pin kolom 2 (silakan sesuaikan dengan projek kalian ganti x dengan pin)
int k3=5; //pin kolom 3 (silakan sesuaikan dengan projek kalian ganti x dengan pin)
int k4=4;
//konfigurasi pin baris
int b1=11; //pin baris 1 (silakan sesuaikan dengan projek kalian ganti x dengan pin)
int b2=10; //pin baris 1 (silakan sesuaikan dengan projek kalian ganti x dengan pin)
int b3=9; //pin baris 1 (silakan sesuaikan dengan projek kalian ganti x dengan pin)
int b4=8; //pin baris 1 (silakan sesuaikan dengan projek kalian ganti x dengan pin)
int xxx=500;
void setup() {
// set semua kolom menjadi output
pinMode(k1,OUTPUT);
pinMode(k2,OUTPUT);
pinMode(k3,OUTPUT);
pinMode(k4,OUTPUT);
// set semua baris menjadi input
pinMode(b1,INPUT);
pinMode(b2,INPUT);
pinMode(b3,INPUT);
pinMode(b4,INPUT);
Serial.begin(9600);
}
void bacakolom1(){
// scan Kolom 1, set kolom 1 menjadi LOW
digitalWrite(k1, LOW);
digitalWrite(k2, HIGH);
digitalWrite(k3, HIGH);
digitalWrite(k4, HIGH);
delayMicroseconds(1);
//Baca Baris 1
if (digitalRead(b1)==LOW) //Jika Tombol 1 (kolom 1 baris 1) ditekan
{
//Tuliskan aksi yang terjadi bila tombol 1 ditekan disini
Serial.println("Tombol 1");
delay(xxx);
return;
}
//baca baris 2
else if (digitalRead(b2)==LOW) //Jika Tombol 4 (kolom 1 baris 2) ditekan
{
//Tuliskan aksi yang terjadi bila tombol 4 ditekan disini
Serial.println("Tombol 4");
delay(xxx);
return;
}
//baca baris 3
else if (digitalRead(b3)==LOW) //Jika Tombol 7 (kolom 1 baris 3) ditekan
{
//Tuliskan aksi yang terjadi bila tombol 7 ditekan disini
Serial.println("Tombol 7");
delay(xxx);
return;
}
//baca baris 4
else if (digitalRead(b4)==LOW) //Jika Tombol * (kolom 1 baris 4) ditekan
{
//Tuliskan aksi yang terjadi bila tombol * ditekan disini
Serial.println("Tombol *");
delay(xxx);
return;
}
}
void bacakolom2(){
// scan kolom 2, set kolom 2 menjadi LOW
digitalWrite(k1, HIGH);
digitalWrite(k2, LOW);
digitalWrite(k3, HIGH);
digitalWrite(k4, HIGH);
delayMicroseconds(1);
//baca baris 1 sampai 4
if (digitalRead(b1)==LOW) //Jika Tombol 2 (kolom 2 baris 1) ditekan
{
//Tuliskan aksi yang terjadi bila tombol 2 ditekan disini
Serial.println("Tombol 2");
delay(xxx);
return;
}
else if (digitalRead(b2)==LOW) //Jika Tombol 5 (kolom 2 baris 2) ditekan
{
//Tuliskan aksi yang terjadi bila tombol 5 ditekan disini
Serial.println("Tombol 5");
delay(xxx);
return;
}
else if (digitalRead(b3)==LOW) //Jika Tombol 8 (kolom 2 baris 3) ditekan
{
//Tuliskan aksi yang terjadi bila tombol 8 ditekan disini
Serial.println("Tombol 8");
delay(xxx);
return;
}
else if (digitalRead(b4)==LOW) //Jika Tombol 0 (kolom 2 baris 4) ditekan
{
//Tuliskan aksi yang terjadi bila tombol 0 ditekan disini
Serial.println("Tombol 0");
delay(xxx);
return;
}
}
void bacakolom3(){
// scan kolom 3, set kolom 3 menjadi LOW
digitalWrite(k1, HIGH);
digitalWrite(k2, HIGH);
digitalWrite(k3, LOW);
digitalWrite(k4, HIGH);
delayMicroseconds(1);
//baca baris 1 - 4
if (digitalRead(b1)==LOW) //Jika Tombol 3 (kolom 3 baris 1) ditekan
{
//Tuliskan aksi yang terjadi bila tombol 3 ditekan disini
Serial.println("Tombol 3");
delay(xxx);
return;
}
else if (digitalRead(b2)==LOW) //Jika Tombol 6 (kolom 3 baris 2) ditekan
{
//Tuliskan aksi yang terjadi bila tombol 6 ditekan disini
Serial.println("Tombol 6");
delay(xxx);
return;
}
else if (digitalRead(b3)==LOW) //Jika Tombol 9 (kolom 3 baris 3) ditekan
{
//Tuliskan aksi yang terjadi bila tombol 9 ditekan disini
Serial.println("Tombol 9");
delay(xxx);
return;
}
else if (digitalRead(b4)==LOW) //Jika Tombol # (kolom 3 baris 4) ditekan
{
//Tuliskan aksi yang terjadi bila tombol # ditekan disini
Serial.println("Tombol #");
delay(xxx);
return;
}
}
void bacakolom4(){
// scan kolom 4, set kolom 4 menjadi LOW
digitalWrite(k1, HIGH);
digitalWrite(k2, HIGH);
digitalWrite(k3, HIGH);
digitalWrite(k4, LOW);
delayMicroseconds(1);
//baca baris 1 sampai 4
if (digitalRead(b1)==LOW) //Jika Tombol A (kolom 4 baris 1) ditekan
{
//Tuliskan aksi yang terjadi bila tombol A ditekan disini
Serial.println("Tombol A");
delay(xxx);
return;
}
else if (digitalRead(b2)==LOW) //Jika Tombol B (kolom 4 baris 2) ditekan
{
//Tuliskan aksi yang terjadi bila tombol B ditekan disini
Serial.println("Tombol B");
delay(xxx);
return;
}
else if (digitalRead(b3)==LOW) //Jika Tombol C (kolom 3 baris 3) ditekan
{
//Tuliskan aksi yang terjadi bila tombol C ditekan disini
Serial.println("Tombol C");
delay(xxx);
return;
}
else if (digitalRead(b4)==LOW) //Jika Tombol D (kolom 4 baris 4) ditekan
{
//Tuliskan aksi yang terjadi bila tombol D ditekan disini
Serial.println("Tombol D");
delay(xxx);
return;
}
}
void loop() {
// set semua kolom menjadi HIGH
digitalWrite(k1, HIGH);
digitalWrite(k2, HIGH);
digitalWrite(k3, HIGH);
digitalWrite(k4, HIGH);
// set semua baris menjadi HIGH
digitalWrite(b1, HIGH);
digitalWrite(b2, HIGH);
digitalWrite(b3, HIGH);
digitalWrite(b4, HIGH);
//baca keypad perbaris
bacakolom1();
bacakolom2();
bacakolom3();
bacakolom4();
}