Kalkulator Arduino

Indobot Academy

Pada tutorial sebelumnya telah dibahas tentang bagaimana cara menampilkan nilai keypad pada serial monitor di Arduino IDE dan LCD I2C 16×2. Setelah berhasil melakukan pemrograman dasar Arduino dengan keypad, pada tutorial ini akan dibahas tentang membuat kalkulator dengan Arduino. Kalkulator merupakan alat hitung yang sering digunakan oleh orang pada umunya, yang terdiri dari tombol angka 1 hingga 9 dan operator perhitungan seperti operator penjumlahan, pengurangan, perkalian, dan pembagian. Pada postingan sebelumnya telah di bahas tentang cara menampilkan nilai keypad pada serial monitor dan LCD I2C 16×2. Jika belum mencoba dapat menekan tombol berikut.

.[membership level=”0,1,2,4″]

1. Skema Rangkaian

Gambar berikut Skematik Rangkaian Keypad Arduino

2. Wiring Koneksi
  • Pin 1 dari kanan (keypad) -> Pin D3 Arduino
  • Pin 2 dari kanan (keypad)-> Pin D4 Arduino
  • Pin 3 dari kanan (keypad)-> Pin D5 Arduino
  • Pin 4 dari kanan (keypad)-> Pin D6 Arduino
  • Pin 5 dari kanan (keypad)-> Pin D7 Arduino
  • Pin 6 dari kanan (keypad)-> Pin D8 Arduino
  • Pin 7 dari kanan (keypad)-> Pin D9 Arduino
  • Pin 8 dari kanan (keypad)-> Pin D10 Arduino
  • Pin SDA (LCD I2C)-> Pin A4(SDA) Arduino
  • Pin SCL (LCD I2C)-> Pin A5(SCL) Arduino
  • Pin Vcc (LCD I2C)-> Pin 5v Arduino
  • Pin Gnd (LCD I2C)-> Pin Gnd Arduino
3. Alat / Bahan
  • Arduino uno : 1 buah
  • Keypad 4×4 : 1 buah
  • LCD 16×2 : 1 buah
  • Modul I2C LCD : 1 buah
  • Kabel jumper : 12 buah
  • Papan breadboard: 1 buah (optional)

[/membership]

4. Langkah Kerja
  1. Siapkan alat dan juga bahan yang akan digunakan
  2. kedua Lakukan proses wiring dengan menggunakan Gambar skematik rangkaian diatas
  3. ketiga Buka software Arduino IDE yang telah terinstal pada laptop/komputer
  4. kemudian Unduh  dan masukkan file libray keypad.zip dan LiquidCrystal_I2C.zip, dengan cara buka Arduino IDE pilih Sketch->Include Library->Add.Zip Library 
  5. Ketikkan sketch program  pada halaman Arduino IDE
  6. kemudian Lakukan proses uploading program
  7. terakhir Amati tampilan pada LCD I2C 16×2
5. Sketch Program

Dapatkan puluhan ebook gratis dengan registrasi melalui tombol di bawah!

/*

 Program Calculator Arduino

 */

#include <LiquidCrystal_I2C.h>

#include <Keypad.h>

LiquidCrystal_I2C lcd(0x27, 16, 2);

const byte ROWS = 4; // Four rows

const byte COLS = 4; // Three columns

// Define the Keymap

char hexaKeys[ROWS][COLS] = {


  {'1', '2', '3', 'A'},

  {'4', '5', '6', 'B'},

  {'7', '8', '9', 'C'},

  {'*', '0', '#', 'D'}

};

byte rowPins[ROWS] = {10, 9, 8, 7};

byte colPins[COLS] = {6, 5, 4, 3};

Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS ); //  Create the Keypad

 long Num1,Num2,angka;

 char key,action;

 boolean hasil = false;

void setup() {

  // put your setup code here, to run once:

  Serial.begin(9600);

lcd.init();                      // initialize the lcd

lcd.init();

// Print a message to the LCD.

lcd.backlight();

lcd.print("Calculator Ard"); //Display a intro message

lcd.setCursor(0, 1);   // set the cursor to column 0, line 1

lcd.print("By: Indobot "); //Display a intro message

delay(2000); //Wait for display to show info

lcd.clear(); //Then clean it

}

void loop() {

  // put your main code here, to run repeatedly:

key = customKeypad.getKey(); //storing pressed key value in a char

if (key!=NO_KEY)

DetectButtons();

if (hasil==true)

Calculatehasil();

Displayhasil();  

}

void DetectButtons()

{

     lcd.clear();

    if (key=='*')

    {Serial.println ("Button Cancel"); angka=Num1=Num2=0; hasil=false;}

     if (key == '1')

    {Serial.println ("Button 1");

    if (angka==0)

    angka=1;

    else

    angka = (angka*10) + 1;

    }

     if (key == '4')

    {Serial.println ("Button 4");

    if (angka==0)

    angka=4;

    else

    angka = (angka*10) + 4;

    }

     if (key == '7')

    {Serial.println ("Button 7");

    if (angka==0)

    angka=7;

    else

    angka = (angka*10) + 7;

    }

    if (key == '0')

    {Serial.println ("Button 0");

    if (angka==0)

    angka=0;

    else

    angka = (angka*10) + 0;

    }

     if (key == '2')

    {Serial.println ("Button 2");

     if (angka==0)

    angka=2;

    else

    angka = (angka*10) + 2;

    }

     if (key == '5')

    {Serial.println ("Button 5");

     if (angka==0)

    angka=5;

    else

    angka = (angka*10) + 5;

    }

     if (key == '8')

    {Serial.println ("Button 8");

     if (angka==0)

    angka=8;

    else

    angka = (angka*10) + 8;

    }  

    if (key == '#')

    {Serial.println ("Button Equal");

    Num2=angka;

    hasil = true;

    }

   

     if (key == '3')

    {Serial.println ("Button 3");

     if (angka==0)

    angka=3;

    else

    angka = (angka*10) + 3;

    }

     if (key == '6')

    {Serial.println ("Button 6");

    if (angka==0)

    angka=6;

    else

    angka = (angka*10) + 6;

    }

     if (key == '9')

    {Serial.println ("Button 9");

    if (angka==0)

    angka=9;

    else

    angka = (angka*10) + 9;

    } 


      if (key == 'A' || key == 'B' || key == 'C' || key == 'D') //Detecting Buttons on Column 4

  {

    Num1 = angka;   

    angka =0;

    if (key == 'A')

    {Serial.println ("Addition"); action = '+';}

     if (key == 'B')

    {Serial.println ("Subtraction"); action = '-'; }

     if (key == 'C')

    {Serial.println ("Multiplication"); action = '*';}

     if (key == 'D')

    {Serial.println ("Devesion"); action = '/';} 

    delay(100);

  }

}

void Calculatehasil()

{

  if (action=='+')

    angka = Num1+Num2;




  if (action=='-')

    angka = Num1-Num2;

  if (action=='*')

    angka = Num1*Num2;

  if (action=='/')

    angka = Num1/Num2;

}

void Displayhasil()

{

  lcd.setCursor(0, 0);  

  lcd.print(Num1); lcd.print(action); lcd.print(Num2);

  if (hasil==true)

  {lcd.print(" ="); lcd.print(angka);}

  lcd.setCursor(0, 1);  

  lcd.print(angka);

}


Kesimpulan :

Program ini akan melakukan proses perhitungan dasar kalkulator dengam operator penjumlahan,pengurangan, perkalian dan pembagian.

Mau belajar elektronika dasar? Arduino? atau Internet of Things? Ikuti kursus online Indobot Academy!

 

 

Ingin Tahu Program Kami Lebih Lanjut?

Silahkan isi Formulir Dibawah Ini untuk Diskusi dengan Tim Indobot Academy.

Baca Juga

Bagikan:

Tinggalkan komentar

whatsapp whatsapp