Kalkulator Arduino Menggunakan Keypad 4×4 dan LCD 16×2

Pendahuluan

Di era teknologi digital saat ini, pemahaman dasar tentang sistem embedded dan mikrokontroler menjadi keterampilan yang sangat penting, terutama bagi pelajar SMK, mahasiswa, dan penghobi elektronika. Salah satu proyek dasar namun sangat edukatif adalah pembuatan kalkulator digital berbasis Arduino.

Kalkulator merupakan perangkat yang sering digunakan dalam kehidupan sehari-hari. Dengan membuat kalkulator sendiri menggunakan Arduino, kita dapat mempelajari konsep input digital (keypad), pemrosesan data logika, serta output tampilan menggunakan LCD. Proyek ini juga melatih logika pemrograman dan pengelolaan data input secara berurutan.

Pada proyek ini, dibuat sebuah kalkulator sederhana yang mampu melakukan operasi penjumlahan dan pengurangan. Input dilakukan menggunakan keypad 4×4, sedangkan hasil perhitungan ditampilkan pada LCD 16×2 mode paralel. Proyek ini sangat cocok sebagai media pembelajaran dasar mikrokontroler dan sistem kendali sederhana.


Komponen yang Digunakan

Arduino Uno sebagai mikrokontroler utama sistem.

LCD 16×2 (mode paralel) sebagai media tampilan angka dan hasil perhitungan.

Keypad matriks 4×4 sebagai input angka dan operator.

Kabel jumper secukupnya untuk pengkabelan.

Breadboard sebagai media perakitan rangkaian.


Skema Rangkaian

Secara umum, rangkaian terdiri dari dua bagian utama:

  1. LCD 16×2 dihubungkan ke Arduino menggunakan mode paralel (RS, E, D4–D7).
  2. Keypad 4×4 dihubungkan ke pin digital dan analog Arduino untuk membaca input tombol.

Arduino bertugas membaca input dari keypad, memproses operasi matematika, dan menampilkan hasil ke LCD.


Koneksi Rangkaian

Koneksi LCD 16×2 ke Arduino

Pin LCDPin Arduino
RS8
E9
D410
D511
D612
D713
VCC5V
GNDGND

Koneksi Keypad 4×4 ke Arduino

Pin KeypadPin Arduino
R15
R24
R33
R42
C1A3
C2A2
C3A1
C4A0

Library yang Digunakan

Sebelum melakukan pemrograman, pastikan library berikut sudah terpasang di Arduino IDE:

🔗 LiquidCrystal
https://www.arduino.cc/reference/en/libraries/liquidcrystal/

🔗 Keypad
https://playground.arduino.cc/Code/Keypad/


Kode Program Lengkap

#include <LiquidCrystal.h>
#include <Keypad.h>

// Inisialisasi objek LCD dan Keypad
LiquidCrystal lcd(8, 9, 10, 11, 12, 13);

const int ROW_NUM = 4;
const int COLUMN_NUM = 4;

char keys[ROW_NUM][COLUMN_NUM] = {
  {'1','2','3','C'},
  {'4','5','6','+'},
  {'7','8','9','-'},
  {' ','0',' ','='}
};

byte pin_rows[ROW_NUM] = {5, 4, 3, 2};
byte pin_column[COLUMN_NUM] = {A3, A2, A1, A0};

Keypad keypad = Keypad(makeKeymap(keys), pin_rows, pin_column, ROW_NUM, COLUMN_NUM);

// Variabel kalkulator
String operand1 = "";
String operand2 = "";
char oper = ' ';
bool newCalculation = true;

void setup() {
  lcd.begin(16, 2);
  lcd.print("Kalkulator");
  delay(1000);
  lcd.clear();
}

void loop() {
  char key = keypad.getKey();
  if (key != NO_KEY) {
    handleCalculator(key);
  }
}

void clearCalculator() {
  operand1 = "";
  operand2 = "";
  oper = ' ';
  lcd.clear();
  lcd.print("Cleared");
  delay(500);
  lcd.clear();
}

void setOperator(char op) {
  if (newCalculation) {
    lcd.clear();
    newCalculation = false;
  }
  if (operand1 != "") {
    oper = op;
    lcd.print(op);
  }
}

void appendOperand(char digit) {
  if (newCalculation) {
    lcd.clear();
    newCalculation = false;
  }
  if (oper == ' ') {
    operand1 += digit;
  } else {
    operand2 += digit;
  }
  lcd.print(digit);
}

void performCalculation() {
  if (operand1 != "" && operand2 != "" && oper != ' ') {
    int num1 = operand1.toInt();
    int num2 = operand2.toInt();
    int result = 0;

    if (oper == '+') result = num1 + num2;
    else if (oper == '-') result = num1 - num2;

    lcd.clear();
    lcd.print("= ");
    lcd.setCursor(2, 0);
    lcd.print(result);

    newCalculation = true;
    operand1 = String(result);
    operand2 = "";
    oper = ' ';
  }
}

void handleCalculator(char key) {
  if (key == 'C') {
    clearCalculator();
  } else if (key == '=') {
    performCalculation();
  } else if (key == '+' || key == '-') {
    setOperator(key);
  } else {
    appendOperand(key);
  }
}

Penjelasan Singkat Program

Program bekerja dengan membaca tombol dari keypad 4×4. Angka pertama disimpan sebagai operand1, kemudian operator (+ atau -) disimpan, dan angka kedua sebagai operand2. Saat tombol = ditekan, Arduino melakukan perhitungan dan menampilkan hasil pada LCD 16×2.

Tombol C digunakan untuk menghapus data dan mengulang perhitungan dari awal. Sistem ini dirancang sederhana agar mudah dipahami dan dikembangkan lebih lanjut.


Kesimpulan

Kalkulator Arduino berbasis keypad dan LCD ini merupakan proyek dasar yang sangat efektif untuk memahami input-output mikrokontroler, pemrograman logika, dan antarmuka manusia-mesin (HMI). Proyek ini cocok untuk pembelajaran di SMK, praktikum kuliah, maupun latihan mandiri.

Pengembangan lanjutan dapat dilakukan dengan menambahkan operasi perkalian dan pembagian, penggunaan LCD I2C, atau bahkan integrasi dengan touchscreen.


Ayo Belajari Otomasi Industri Bersama MANFAHBOT, Kami menyediakan layanan:

  • Pelatihan Otomasi & PLC
  • Pengembangan Sistem Simulasi
  • Jasa Rancang Bangun Sistem Otomatisasi
  • Pembuatan sistem kontrol berbasis robotik
  • Pendampingan proyek akhir atau PKL SMK/D4/S1

🌐 manfahbot.cc
📧 info@manfahbot.cc
📞 WhatsApp: +62 859-5646-3532

manfah.industri@gmail.com
manfah.industri@gmail.com
Articles: 30

Leave a Reply

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *