Tugas 6 Algoritma dan Perograman Kasus Teknik Elektro - Switch Case

TUGAS VCLASS M6
ALGORTIMA DAN PEMGROGRAMAN KASUS TEKNIK ELEKTRO 

https://rekreartive.com/wp-content/uploads/2018/10/Logo-Gunadarma-Universitas-Gunadarma-Original-PNG.png

Detail Tugas:

Nama            : Fatahillah Furqon Abdulaziz
Kelas            : 3IB03
NPM             : 10420475
Mata Kuliah : Algoritma & Pemrograman Kasus Teknik Elektro
Dosen           : Dr. Antonius Irianto Sukowati,ST,. MT
Nama Tugas : Tugas Switch Case

Soal :

Buatlah sebuah project mikrokontroller yang menerapkan algoritma Switch Case. Tema project bebas namun harus menggunakan komponen keypad dan LCD. Tuangkan bahasan mengenai project tersebut beserta penjelasan algoritmanya pada sebuah blog dan hubungkan blog tersebut dengan student portofolio anda. Tuliskan link blog tersebut pada jawaban


Kalkulator dengan menggunakan statement "Switch Case"

    Pada kesempatan kali ini akan menampilkan kode program yang menggunakan statement "Switch Case" untuk membuat sebuah kalkulator sederhana menggunakan arduino sebagai mikrokontroller tersebut. Berikut adalah kode program yang digunakan
#include <Keypad.h>
const byte ROWS = 4;
const byte COLS = 4;
char keys [ROWS] [COLS] = {
{'7', '8', '9', '/'},
{'4', '5', '6', '*'},
{'1', '2', '3', '-'},
{'C', '0', '=', '+'}
};
byte rowPins[ROWS] = {A5, A4, A3, A2}; 
byte colPins[COLS] = {11, 10, 9, 8}; 
Keypad myKeypad = Keypad(makeKeymap(keys), rowPins, colPins, ROWS, COLS );
#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 6, 5, 4, 3, 2);

char step;
enum {inAngkaPertama, inAngkaKedua, outHasil};
String strAngkaPertama = "", strAngkaKedua="";
int angkaPertama, angkaKedua;
float hasil;
char operasi;

void setup()
{
lcd.begin(16,2);
lcd.setCursor(5,0); lcd.print("Algo");
lcd.setCursor(3,1);
lcd.print("Calculator");delay(1000);
lcd.clear();
}
void loop() {
char customKey = myKeypad.getKey();
  switch(step){
    case inAngkaPertama:
      if(customKey){
        if(customKey == '/'){
          lcd.setCursor(15, 0);
            lcd.print('/');
            
            operasi = '/';
          
            step = inAngkaKedua;
        }
        else if(customKey == '*'){
          lcd.setCursor(15, 0);
            lcd.print('*');
          
            operasi = '*';
          
            step = inAngkaKedua;
        }
        else if(customKey == '-'){
          lcd.setCursor(15, 0);
            lcd.print('-');
          
            operasi = '-';
          
            step = inAngkaKedua;
        }
        else if(customKey == '+'){
          lcd.setCursor(15, 0);
            lcd.print('+');
          
            operasi = '+';
          
            step = inAngkaKedua;
        }
        else{
            strAngkaPertama+= customKey;
            lcd.setCursor(0,0);
            lcd.print(strAngkaPertama);
        }
      }
    break;
    
    case inAngkaKedua:
      if(customKey){
        if(customKey == '='){
          step = outHasil;
        }
        else{
          strAngkaKedua+=customKey;
          lcd.setCursor(0,1);
          lcd.print(strAngkaKedua);
        }
      }
    break;
    
    case outHasil:
        angkaPertama = strAngkaPertama.toInt();
        angkaKedua = strAngkaKedua.toInt();
      
      if (operasi == '+'){
        hasil = angkaPertama + angkaKedua;
      }
      else if (operasi == '-'){
        hasil = angkaPertama - angkaKedua;
      }
      else if(operasi == '*'){
        hasil = angkaPertama * angkaKedua;
      }
      else if (operasi == '/'){
        hasil = angkaPertama/angkaKedua;
      }
    
      lcd.setCursor(8, 1);
      lcd.print(hasil);
    
    if(customKey){
      if(customKey == '*'){
        strAngkaPertama = "";
        strAngkaKedua = "";
        lcd.clear();
        step = inAngkaPertama;
      }
    }
    break;
  }
}

Dikutip langsung dari : https://www.robotikindonesia.com/2021/10/membuat-kalkulator-sederhana-arduino.html
Berikut adalah rangkaian sederhana dari kalkulator tersebut menggunakan program proteus

Komponen yang digunakan adalah :
  • Arduino Uno -> Syed Zain Nasir (https://www.theengineeringprojects.com/2021/03/arduino-uno-library-for-proteus-v2.html)
  • Keypad 4x4
  • LCD 16x2
Library yang digunakan adalah sebagai berikut :
  • Keypad.h -> Jimmybyrum
  • LiquidCrystal.h -> Arduino LLC
Pin yang digunakan adalah
  • Pin A1 - A4 Untuk bagian baris pada keypad
  • Pin 11 - 8 Untuk bagian kolom pada keypad
  • Pin 7 - 2 Untuk menghubungkan Arduino kepada LCD
  • PIn RW pada LCD dihubungkan kepada ground
Penjelasan
    Ketika program pertama kali dijalankan maka LCD akan menyalah dan menampilkan tulisan singkat yaitu "Algo Calculator" selama satu detik. Setelah itu layar LCD akan dibersihkan dan akan memulai program calculatornya. Ketika program calculator sudah berjalan maka pengguna dapat menginputkan angka-angka yang ingin dihitung pada rangkaian tersebut. Setelah kalkulator tersebut selesai berhitung maka program akan menyangkut dan membutuhkan reset sehingga program tidaklah berjalan dengan sempurna. Namun program dapat berjalan sesuai dengan fungsinya untuk sekali penggunaan.

Referensi :
  1. https://www.robotikindonesia.com/2021/10/membuat-kalkulator-sederhana-arduino.html
  2. https://www.arduino.cc/reference/tr/language/structure/control-structure/switchcase/

Comments

Popular posts from this blog

Birthday Party 5: Malzy dan Mira (Indonesia)

Tugas 14 Algoritma dan Pemrograman Kasus Teknik Elektro - Project Smart Trash Bin

Pengangguran dan Inflasi