void setup() {
Serial.begin(9600);
timbangan.set_scale(2280.0); // Tukar dengan faktor penyekala Anda
timbangan.tare(100);
lcd.begin(); // Inisialisasi LCD
}
void loop() {
cekKeyPad();
if (sbreak == false) {
goExe();
}
}
void cekKeyPad() {
char keypressed = myKeypad.getKey();
if (keypressed) {
Serial.print(keypressed);
if (keypressed == 'A') {
sbreak = true;
setmin = "";
setMin();
smin = true;
}
else if (keypressed == 'B') {
sbreak = true;
setmax = "";
setMax();
smax = true;
}
else if (keypressed == 'C') {
cekset();
sbreak = true;
}
else if (keypressed == 'D') {
sbreak = true;
setrecal = "";
setRecal();
srecal = true;
}
else if (keypressed == '*') {
lcd.clear();
smin = false;
smax= false;
srecal = false;
setrecal=String(targetrecal);
setmax=String(targetmax);
setmin=String(targetmin);
thx("Kembali ke Defult");
sbreak = false;
}
else if (keypressed == '#') {
if (smin == true) {
targetmin = setmin.toInt();
smin = false;
thx("Sukses SET MIN");
}
else if (smax == true) {
targetmax = setmax.toInt();
smax = false;
thx("Sukses SET MAX");
}
else if (srecal == true) {
targetrecal = setrecal.toInt();
srecal = false;
thx("Sukses SET RECAL");
}
}
if (smin == true) {
if (keypressed == '0' || keypressed == '1' || keypressed == '2' || keypressed == '3' || keypressed == '4' || keypressed == '5' || keypressed == '6' || keypressed == '7' || keypressed == '8' || keypressed == '9') {
setmin = setmin + keypressed;
setLiveMin();
}
}
else if (smax == true) {
if (keypressed == '0' || keypressed == '1' || keypressed == '2' || keypressed == '3' || keypressed == '4' || keypressed == '5' || keypressed == '6' || keypressed == '7' || keypressed == '8' || keypressed == '9') {
setmax = setmax + keypressed;
setLiveMax();
}
}
else if (srecal == true) {
if (keypressed == '0' || keypressed == '1' || keypressed == '2' || keypressed == '3' || keypressed == '4' || keypressed == '5' || keypressed == '6' || keypressed == '7' || keypressed == '8' || keypressed == '9') {
setrecal = setrecal + keypressed;
setLiveRecal();
}
}
}
}
void goExe() {
float berat = timbangan.get_units();
Serial.println(berat, 1);
Serial.print("recal :");
Serial.println(targetrecal);
Serial.print("hasil :");
Serial.println(hasil);
lcd.setCursor(0, 0);
lcd.print("berat= ");
lcd.print(berat);
lcd.print(" ");
lcd.setCursor(0, 2);
lcd.print(" ");
hasil = berat - targetrecal;
if (hasil > targetmax) {
lcd.setCursor(0, 3);
lcd.print("berat lebih");
} else if (hasil < targetmin) {
lcd.setCursor(0, 3);
lcd.print("berat kurang");
}
else {
lcd.setCursor(0, 3);
lcd.print(" ");
}
delay(500);
}
void setMax() {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("MASUKAN DATA :");
lcd.setCursor(0, 1);
lcd.print("max :");
lcd.print(" ");
delay(300);
}
void setMin() {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("MASUKAN DATA :");
lcd.setCursor(0, 1);
lcd.print("min :");
lcd.print(" ");
delay(300);
}
void setRecal() {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("MASUKAN DATA :");
lcd.setCursor(0, 1);
lcd.print("reacli :");
lcd.print(" ");
delay(300);
}
void setLiveMin() {
Serial.print("MASUKAN DATA :");
Serial.println("min :" + setmin);
lcd.setCursor(0, 0);
lcd.print("MASUKAN DATA :");
lcd.setCursor(0, 1);
lcd.print("min :");
lcd.print(setmin);
lcd.print(" ");
delay(300);
}
void setLiveMax() {
lcd.setCursor(0, 0);
lcd.print("MASUKAN DATA :");
lcd.setCursor(0, 1);
lcd.print("max :");
lcd.print(setmax);
lcd.print(" ");
Serial.print("MASUKAN DATA :");
Serial.println("max :" + setmax);
delay(300);
}
void setLiveRecal() {
lcd.setCursor(0, 0);
lcd.print("MASUKAN DATA :");
lcd.setCursor(0, 1);
lcd.print("recali :");
lcd.print(setrecal);
lcd.print(" ");
Serial.print("MASUKAN DATA :");
Serial.println("recal :" + setrecal);
delay(300);
}
void cekset() {
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("cek setingan");
lcd.setCursor(0, 1);
lcd.print("min :");
lcd.print(setmin);
lcd.setCursor(0, 2);
lcd.print("max :");
lcd.print(setmax);
lcd.setCursor(0, 3);
lcd.print("recal :");
lcd.print(setrecal);
delay(300);
}
void thx(String pesan) {
lcd.setCursor(0, 0);
lcd.print("Sukses Eksekusi");
lcd.setCursor(0, 1);
lcd.print(pesan);
lcd.print(" ");
Serial.println(pesan);
Serial.println("THX");
delay(300);
}
Tidak ada komentar:
Posting Komentar