Hallo zusammen,
ich habe mich die letzten 2 wochen damit beschäftigt eine Waage zu Basteln mit ensprechendem Code aber irgendwie funktioniert mein Tara Button nicht villeicht kann sich einer von euch das mal ansehen und mir verraten wo der Fehler liegt.
#include <LiquidCrystal_I2C.h>
#include <HX711_ADC.h>
#if defined(ESP8266)|| defined(ESP32) || defined(AVR)
#include <EEPROM.h>
#endif
LiquidCrystal_I2C lcd(0x27,16,2);
//pins:
const int HX711_dout = 4; //mcu > HX711 dout pin
const int HX711_sck = 5; //mcu > HX711 sck pin
//HX711 constructor:
HX711_ADC LoadCell(HX711_dout, HX711_sck);
const int calVal_eepromAdress = 0;
unsigned long t = 0;
const int buttonPin = 8; // Button Pin
int buttonState = 0; // Variable zum Auslesen des Tasterstatus
void setup()
{
lcd.init();
lcd.backlight();
Serial.begin(57600); delay(10);
Serial.println();
Serial.println("Starting...");
LoadCell.begin();
float calibrationValue;
calibrationValue = 696.0;
#if defined(ESP8266)|| defined(ESP32)
EEPROM.begin(512);
#endif
EEPROM.get(calVal_eepromAdress, calibrationValue);
unsigned long stabilizingtime = 2000;
boolean _tare = true;
LoadCell.start(stabilizingtime, _tare);
if (LoadCell.getTareTimeoutFlag()) {
Serial.println("Timeout, check MCU>HX711 wiring and pin designations");
while (1);
}
else {
LoadCell.setCalFactor(calibrationValue);
Serial.println("Startup is complete");
}
}
void loop() {
static boolean newDataReady = false;
const int serialPrintInterval = 0;
if (LoadCell.update()) {
newDataReady = true;
}
buttonState = digitalRead(buttonPin);
if (buttonState == HIGH) {
LoadCell.tareNoDelay();
}
if (newDataReady) {
if (millis() > t + serialPrintInterval) {
float i = LoadCell.getData();
Serial.print("Load_cell output val: ");
Serial.println(i);
// LCD Print
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("test");
lcd.setCursor(0, 1);
lcd.print("Weight(g): " + String(int(i)));
newDataReady = false;
delay(500);
t = millis();
}
}
}
Vielen Dank