Compañeros tengo un problema con este trozo de codigo, lo que hace es preguntar peso a los esclavos y cuando este dentro del rango de peso encender unos led, y funciona bien si saco el peso rapidamente, pero asi no es el procedimiento sino que tengo que sacar el peso de las balanzas que me señalan los led y ponerlo en la balanza patron, y aqui es el problema pues cuando saco el peso de las balanzas y lo pongo en la balanza patron, se cuelga el circuito y se demora en estabilizar.
ejemplo: tengo 100 gramos en la balanza patron numero 1( esclavo11), y tengo 200 gramos en el esclavo 4 y 7; entonces si sumamos tenemos 500gramos en las 3 balanzas yencienden los led del esclavo 1 ,4 y 7 ( asta alli va bien), pero cuando saco el peso del esclavo 4 y 7 y lo pongo en el esclavo 1( lo saco porque la balanza 1 contiene un deposito para poner el resto de peso), el sistema se cuelga y aunque saque el peso los led quedan encendidos y se demora en estabilizar para que entre a funcionar la segunda balanza patron, que tambien contiene peso( esclavo12).
Mi consulta seria, como hacer para que el sistema no trabaje hasta que retire todo el peso).Espero una ayuda
adjunto un trozo de codigo mas.
///ESCLAVO 1 ////
slave1:
if(conta ==1){
Wire.requestFrom(1,8); // Pedimos 8 bytes al esclavo 1
CompararDatos();
if((result >= 0.495) && (result < 0.510)){ //Comparamos si el resultado esta dentro del rango
digitalWrite(ledMaestro, HIGH); //encendemos led maestro
digitalWrite(ledEsclavo1, HIGH); //encendemos led para el esclavo 1
goto slave1;
}
else{
apagarLeds(); //apagamos todos lo leds
conta++;
}
}
///ESCLAVO 2 ////
slave2:
if(conta ==2){
Wire.requestFrom(2,8); // Pedimos 8 bytes al esclavo 2
CompararDatos();
if((result >= 0.495) && (result < 0.510)){ //Comparamos si el resultado esta dentro del rango
digitalWrite(ledMaestro, HIGH); //encendemos led maestro
digitalWrite(ledEsclavo2, HIGH); //encendemos led para el esclavo 2
goto slave2;
}
else{
apagarLeds();//apagamos todos lo leds
conta++; //aumento el contador
}
}
///ESCLAVO 3 ////
slave3:
if(conta ==3){
Wire.requestFrom(3,8); // Pedimos 8 bytes al esclavo 3
CompararDatos(); // comparo los datos
if((result >= 0.495) && (result < 0.510)){ //Comparamos si el resultado esta dentro del rango
digitalWrite(ledMaestro, HIGH); //encendemos led maestro
digitalWrite(ledEsclavo3, HIGH); //encendemos led para el esclavo 3
goto slave3;
}
else{
apagarLeds();
conta++;
}
}
///ESCLAVO 4 ////
slave4:
if(conta ==4){
Wire.requestFrom(4,8); // Pedimos 8 bytes al esclavo 4
CompararDatos();
if((result >= 0.495) && (result < 0.510)){ //Comparamos si el resultado esta dentro del rango
digitalWrite(ledMaestro, HIGH); //encendemos led maestro
digitalWrite(ledEsclavo4, HIGH); //encendemos led para el esclavo 4
goto slave4;
}
else{
apagarLeds();
conta++;
}
}
/////////ESCLAVO5/////
slave5:
if(conta ==5){
Wire.requestFrom(5,8); // Pedimos 8 bytes al esclavo 5
CompararDatos();
if((result >= 0.495) && (result < 0.510)){ //Comparamos si el resultado esta dentro del rango
digitalWrite(ledMaestro, HIGH); //encendemos led maestro
digitalWrite(ledEsclavo5, HIGH); //encendemos led para el esclavo 5
goto slave5;
}
else{
apagarLeds();
conta++;
}
}
/////////ESCLAVO6/////
slave6:
if(conta ==6){
Wire.requestFrom(6,8); // Pedimos 8 bytes al esclavo 6
CompararDatos();
if((result >= 0.495) && (result < 0.510)){ //Comparamos si el resultado esta dentro del rango
digitalWrite(ledMaestro, HIGH); //encendemos led maestro
digitalWrite(ledEsclavo6, HIGH); //encendemos led para el esclavo 6
goto slave6;
}
else{
apagarLeds();
conta++;
}
}
//////////ESCLAVO7/////
slave7:
if(conta ==7){
Wire.requestFrom(7,8); // Pedimos 8 bytes al esclavo 7
CompararDatos();
if((result >= 0.495) && (result < 0.510)){ //Comparamos si el resultado esta dentro del rango
digitalWrite(ledMaestro, HIGH); //encendemos led maestro
digitalWrite(ledEsclavo7, HIGH); //encendemos led para el esclavo 7
goto slave7;
}
else{
apagarLeds();
conta++;
}
}
/////////ESCLAVO 8/////
slave8:
if(conta ==8){
Wire.requestFrom(8,8); // Pedimos 8 bytes al esclavo 8
CompararDatos();
if((result >= 0.495) && (result < 0.510)){ //Comparamos si el resultado esta dentro del rango
digitalWrite(ledMaestro, HIGH); //encendemos led maestro
digitalWrite(ledEsclavo8, HIGH); //encendemos led para el esclavo 8
goto slave8;
}
else{
apagarLeds();
conta++;
}
}
/////////ESCLAVO 9/////
slave9:
if(conta ==9){
Wire.requestFrom(9,8); // Pedimos 8 bytes al esclavo 9
CompararDatos();
if((result >= 0.495) && (result < 0.510)){ //Comparamos si el resultado esta dentro del rango
digitalWrite(ledMaestro, HIGH); //encendemos led maestro
digitalWrite(ledEsclavo9, HIGH); //encendemos led para el esclavo 9
goto slave9;
}
else{
apagarLeds();
conta++;
}
}
/////////ESCLAVO 10/////
slave10:
if(conta ==10){
Wire.requestFrom(10,8); // Pedimos 8 bytes al esclavo 10
CompararDatos();
if((result >= 0.495) && (result < 0.510)){ //Comparamos si el resultado esta dentro del rango
digitalWrite(ledMaestro, HIGH); //encendemos led maestro
digitalWrite(ledEsclavo10, HIGH); //encendemos led para el esclavo 10
goto slave10;
}
else{
apagarLeds();
conta++;
}
}
///ESCLAVO 1 Y 2 ////(CONTADOR= 11)
slave11:
if(conta ==11){
Wire.requestFrom(1,8); // Pedimos 8 bytes al esclavo 1
CompararDatos2();
Wire.requestFrom(2,8); // Pedimos 8 bytes al esclavo 2
CompararDatos3();
if((result3 >= 0.495) && (result3 < 0.510)){ //Comparamos si el resultado esta dentro del rango
digitalWrite(ledMaestro, HIGH); //encendemos led maestro
digitalWrite(ledEsclavo2, HIGH); //encendemos led para el esclavo 2 y 1
digitalWrite(ledEsclavo1, HIGH);
goto slave11;
}
else{
apagarLeds();
conta++;
}
}
///ESCLAVO 1 Y 3////CONTADOR =12
slave12:
if(conta ==12){
Wire.requestFrom(1,8); // Pedimos 8 bytes al esclavo 1
CompararDatos2();
Wire.requestFrom(3,8); // Pedimos 8 bytes al esclavo 3
CompararDatos3();
if((result3 >= 0.495) && (result3 < 0.510)){ //Comparamos si el resultado esta dentro del rango
digitalWrite(ledMaestro, HIGH); //encendemos led maestro y esclavo 1 y 3
digitalWrite(ledEsclavo1, HIGH);
digitalWrite(ledEsclavo3, HIGH);
goto slave12;
}
else{
apagarLeds();
conta++;
}
}
///ESCLAVO 1 Y 4////CONTADOR =13
slave13:
if(conta ==13){
Wire.requestFrom(1,8); // Pedimos 8 bytes al esclavo 1
CompararDatos2();
Wire.requestFrom(4,8); // Pedimos 8 bytes al esclavo 4
CompararDatos3();
if((result3 >= 0.495) && (result3 < 0.510)){ //Comparamos si el resultado esta dentro del rango
digitalWrite(ledMaestro, HIGH); //encendemos led maestro y esclavo1 y 4
digitalWrite(ledEsclavo1, HIGH);
digitalWrite(ledEsclavo4, HIGH);
goto slave13;
}
else{
apagarLeds();
conta++;
}
}