Membuat Kalkulator Sederhana Dengan Arduino LCD 16x2

Barintek
0

 


Bentuk Rangkaian


Program:

#include <Adafruit_LiquidCrystal.h>

Adafruit_LiquidCrystal lcd(0); // I2C address 0 (sesuai Tinkercad)

String input = "";
int a, b, hasil;

void setup() {
  Serial.begin(9600);

  lcd.begin(16, 2);
  lcd.setBacklight(1);

  lcd.setCursor(0, 0);
  lcd.print(" Kalkulator LCD ");
  lcd.setCursor(0, 1);
  lcd.print("Masuk di Serial");

  Serial.println("=== Kalkulator Arduino + LCD ===");
  Serial.println("Contoh: 12+5 atau 9*3");
  Serial.println("================================");
}

void loop() {
  if (Serial.available() > 0) {
    input = Serial.readStringUntil('\n');

    int tambah = input.indexOf('+');
    int kurang = input.indexOf('-');
    int kali   = input.indexOf('*');
    int bagi   = input.indexOf('/');

    bool valid = true;

    if (tambah > 0) {
      a = input.substring(0, tambah).toFloat();
      b = input.substring(tambah + 1).toFloat();
      hasil = a + b;
    }
    else if (kurang > 0) {
      a = input.substring(0, kurang).toFloat();
      b = input.substring(kurang + 1).toFloat();
      hasil = a - b;
    }
    else if (kali > 0) {
      a = input.substring(0, kali).toFloat();
      b = input.substring(kali + 1).toFloat();
      hasil = a * b;
    }
    else if (bagi > 0) {
      a = input.substring(0, bagi).toFloat();
      b = input.substring(bagi + 1).toFloat();
      if (b != 0) {
        hasil = a / b;
      } else {
        Serial.println("Error: bagi 0!");
        lcd.clear();
        lcd.setCursor(0, 0);
        lcd.print("Error: Bagi 0!");
        valid = false;
      }
    }
    else {
      Serial.println("Format salah! Gunakan contoh: 12+5");
      lcd.clear();
      lcd.setCursor(0, 0);
      lcd.print("Format Salah!");
      valid = false;
    }

    if (valid) {
      // tampilkan di Serial
      Serial.print(input);
      Serial.print(" = ");
      Serial.println(hasil);

      // tampilkan di LCD
      lcd.clear();
      lcd.print(input);
      lcd.print(" = ");
      lcd.print(hasil);
    }
  }
}






Posting Komentar

0Komentar

Posting Komentar (0)