Keypad 4x4 Dengan I2C Interface Arduino ESP8266

Asya Syarif
3 min readMay 1, 2018

--

Pin pada module ESP8266 sangat terbatas,
dengan menggunakan Komunikasi I2C, kita bisa menghemat sampai 6 Pin.
Disini gw coba test dengan beberapa board : Arduino UNO , Wemos D1 Mini & NodeMCU, semua berjalan dengan baik, Seharunya dengan ESP32 tidak ada masalah.

demo video

Hardware yang di butuhkan :

  1. Arduino Board / ESP8266 Board
  2. Kabel Jumper + Breadboard
  3. Keypad 4x4
  4. IC PCF8574
  5. Resistor 10K 2pcs

Wiring.

Arduiono Uno:

  • Analog Input Pin 4 = SDA
  • Analog Input Pin 5 = SCL

Atau bisa juga seperti digambar :

Dengan Menggunakan Arduino, terdapat kesalahan pada gambar, yaitu letak GND (kabel hitam). Seharusnya kolom yang atas.

Wemos D1 Mini :

PIN D1 = SDA
PIN D2 = SCL

terdapat kesalahan pada gambar, yaitu letak GND (kabel hitam). Seharusnya kolom yang atas.

dan temen-temen juga bisa memakai module IO Expander yang udah jadi, cukup mudah, simple dann tidak membutuhkan banyak kabel jumper :D

cukup tancapkan seperti ini , (pin INT tidak di pakai)

Datasheet IC PCF8574

Bisa di lihat Pin (16) VCC dan (8) GND.

Pin untuk berkomuniasi (15) SDA , (14) SCL,

dalam project ini pin INT tidak dipakai.

PIN A0 — A1 adalah untuk mengatur alamat pada IC tersebut,
dan Pin P0 — P7 adalah Pin Input/Output.

Source Code :
Download terlebih dahulu library Keypad_i2c dan Keypad.

Pemasangan Library Keypad_I2C
#include <Keypad_I2C.h>
#include <Keypad.h>
#include <Wire.h>
const byte ROWS = 4; // empat rows
const byte COLS = 4; // empat columns
char keys[ROWS][COLS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
byte rowPins[ROWS] = {0, 1, 2, 3};
byte colPins[COLS] = {4, 5, 6, 7};
int i2caddress = 0x20; // alamat PCF8574, semua pin A0 - A2 ke Ground.Keypad_I2C kpd = Keypad_I2C( makeKeymap(keys), rowPins, colPins, ROWS, COLS, i2caddress );void setup(){
Serial.begin(115200);
kpd.begin();
}

void loop(){
char key = kpd.getKey();

if (key){
Serial.println(key); //debug.
}
}

Upload Sketch lalu buka Serial Monitor. :D

Terima Kasih,
Semoga Bermanfaat.

--

--