#include <TinyWireM.h>
#include <Tiny4kOLED.h>
#include <HX711.h>
HX711 loadcell;
int running = false;
void intro() {
oled.clear();
oled.on();
oled.setFont(FONT8X16);
oled.setCursor(0, 0);
oled.print("Neraca Digital");
oled.setCursor(0,2);
oled.print("Oleh: Kim Bely");
delay(1000);
oled.clear();
}
void setup() {
pinMode(4, INPUT_PULLUP);
oled.begin();
oled.clear();
loadcell.begin(3, 1);
loadcell.set_scale(0.42);
loadcell.tare();
loadcell.power_down();
start();
}
void start() {
running = true;
intro();
loadcell.power_up();
delay(300);
loadcell.tare();
}
int lm = 0;
bool btnon = false;
int laston = 0;
int pressed = 0;
void loop() {
if (running) {
if (lm > 20) {
oled.setCursor(0,0);
oled.print("Neraca coba-coba");
oled.setCursor(0,2);
oled.print("Kim");
oled.setCursor(0, 4);
int d = loadcell.get_units(10);
oled.print(d);
oled.print(" g ");
lm = 0;
}
lm++;
if (!btnon && !digitalRead(4)) {
btnon = true;
loadcell.tare();
lm = 21;
pressed = millis();
}
if (btnon && digitalRead(4)) {
btnon = false;
loadcell.tare();
lm = 21;
return;
}
if (btnon && (millis() - pressed) > 4000) {
oled.off();
loadcell.power_down();
running = false;
btnon = false;
delay(1000);
}
delay(10);
} else {
if (!digitalRead(4)) {
start();
} else {
}
}
}