Go Down

Topic: Resuelto: digital print valor máximo (Read 52 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
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy