Hola amigos. Tengo ya varios días en un proyecto en resumen son 2 cajas y una balanza que detecta el peso cuando se abre una se suma o resta el peso según sea el caso ( si se agregan artículos debe sumar si se restan debe restar ).
Realizando todo a través de una aplicación que desarrolle en C# .NET funciona excelente detecta hasta un cabello.
Pero como el caso no es tener la PC siempre conectada, estoy intentado hacer que todo el trabajo lo haga el Arduino (Tengo un UNO y un MEGA 2560)
int VALOR[] = {0, 0, 0, 0};
int VALORGUARDADO[] = {0, 0, 0, 0};
int A = 0;
int B = 0;
int C = 0;
void setup()
{
Serial.begin(9600);
pinMode(2, INPUT);
pinMode(3, INPUT);
}
void loop() {
int VALORCASILLA = 0;
A = ( scale.getGram() / 1.625 );
Serial.println();
Serial.println("---------------------------------");
Serial.print("VALOR A = ");
Serial.println(A);
C = (A - B) ;
//delay(500);
B = A;
Serial.print("VALOR B= ");
Serial.println(B);
VALORCASILLA = C;
Serial.print("VALORCASILLA= ");
Serial.println(C);
for (int pin = 2; pin <= 3; pin++)
{
if(digitalRead(pin) == HIGH)
{
VALOR[pin] = ( VALOR[pin] + VALORCASILLA );
VALORGUARDADO[pin] = ( VALOR[pin] );
Serial.print("PIN ACTIVO = ");
Serial.print(pin);
Serial.println();
}
Serial.print("VALORCASILLA ");
Serial.print(pin);
Serial.print(" = ");
Serial.print(VALORGUARDADO[pin]);
Serial.println();
}
** delay(2000); **
}
Detecta y muestra la diferencia de cambios en la variable VALORCASILLA osea si se agrego 20 gr muestra 20 y si se quitaron 20 gr muestra -20 todo perfecto. si una caja esta abierta va sumando o restando segun sea el caso.
PROBLEMA:
Se salta la operación en ciertos momentos y constantemente, no realiza la suma o la resta. y me descuadra el peso guardado.
No estoy seguro si es por el DELAY que crea algún problema? o algún otro factor que no logro ver.
Si me pudieran ayudar por favor. he probado con ambas tarjetas arduino a ver si era un fallo de alguna. pero pasa lo mismo.
Gracias