Go Down

Topic: Resuelto: digital print valor máximo (Read 208 times) previous topic - next topic

DiegoGiacomoni

Sep 10, 2016, 07:38 pm Last Edit: Sep 10, 2016, 11:00 pm by DiegoGiacomoni
Hola,

Quiero mostrar en el Lcd valor máximo leído por la celda de carga( Mayo peso colocado sobre la celda).
Hace unos días que estoy dándole vueltas al tema y no puedo encontrarle solución... no se ya para donde apuntar. Por el momento solo muestro el valor actual.


Arduino Mega2560
HX711
Celda 500 Kg.
Libreria HX711.h



Code: [Select]
#include <LiquidCrystal_I2C.h>
#include <HX711.h>
#define DOUT  A1
#define CLK  A0

HX711 balanza(DOUT, CLK);
LiquidCrystal_I2C lcd(0x27,20,4);

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

lcd.init();// Inicializar el LCD  
lcd.backlight();//Encender la luz de fondo.
delay( 1000);
lcd.clear();
lcd.setCursor(5, 1);
lcd.print("CALIBRANDO");  
delay(500);
lcd.setCursor(6, 2);
lcd.print("AGUARDE");  
  
Serial.println(balanza.read());
  
balanza.set_scale(12011);
balanza.tare(100);  
 
lcd.setCursor(0, 20);
lcd.setCursor(6, 3);
lcd.print(".");
delay(100);
lcd.print(".");
delay(100);
lcd.print(".");
delay(100);
lcd.print(".");
delay(100);
lcd.print(".");
delay(100);
lcd.print(".");
delay(100);
lcd.print(".");
delay(500);
  
lcd.clear();

lcd.setCursor(5, 1);
lcd.print("TERMINADO");
delay(1000);
lcd.clear();
lcd.setCursor(3, 0);
lcd.print("LECTURA ACTUAL");
lcd.setCursor(0, 1);
lcd.print("KG");
}
void loop()
{
if (balanza.get_units(2)>0.05)
{
lcd.setCursor(6, 1);
lcd.print(balanza.get_units(3),1.00);  // (X) cantidad de lecturas para promediar. , 2.00 cantidad de decimales
}
else {
lcd.setCursor(6, 1);
lcd.print("0.00");
}
 
}



Muchas gracias !!

DiegoGiacomoni

Perdon postié en el lugar incorrecto...  :-*

surbyte

El código que vale la pena es el que está en el loop
tu tienes esto

Code: [Select]
void loop() {
if (balanza.get_units(2)>0.05){
   lcd.setCursor(6, 1);
   lcd.print(balanza.get_units(3),1.00);  // (X) cantidad de lecturas para promediar. , 2.00 cantidad de decimales
}
else {
    lcd.setCursor(6, 1);
    lcd.print("0.00");
}


tu ´código no almacena nada
debes tener una variable que lo guarde como 
float valorMax = 0.0;
Code: [Select]
void loop() {
    float valorMax = 0.0;
    float peso;
    peso = balanza.get_units(2);
   if (peso > valorMax){ // guardo el máximo
       valorMax = peso;
       lcd.setCursor(6, 1);
       lcd.print(valorMax); 
   }
   if (peso > 0.05) {
      lcd.setCursor(10, 1); // por ejemplo a partir de columna 10
      lcd.print(peso); 
   ]
}



DiegoGiacomoni

Sos un genio !! muchas gracias ya casi ... le di vueltas a eso de ValMax y no puede... ahora si..

Go Up