Compañeros solucione el problema de porque se colgaba el sistema, bueno en realidad no se colgaba solo se ponía lento, explico la solución para que alguien en el futuro le pueda servir.
La falla era que no borraba el dato de peso de las balanzas patrón hasta que terminaran las combinaciones, La solución fue consultar el peso de la balanza patrón (esclavo 12 o esclavo 11), a cada momento que se hacia la suma con los esclavos, pues yo solo preguntaba el peso de la balanza madre una sola vez al inicio de las combinaciones y no borraba el dato hasta que terminara toda la lista de combinaciones, así que encendían los led y así sacara el peso de la balanza madre, el sistema creía que todavía había peso en la balanza madre pues no borraba el dato, y el sistema no podía cambiar ala otra balanza madre( esclavo 12).
Ahora pegunto el peso por cada comparación. adjunto:
///ESCLAVO 1 ////
slave1:
if(conta ==1){ //Aumento el contador y pregunto peso a la balanza patron.
Wire.requestFrom(12,8); // Pedimos 8 bytes al esclavo 12(balanza 1)
pesoBal1();
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){ //Aumento el contador y pregunto peso a la balanza patron.
Wire.requestFrom(12,8); // Pedimos 8 bytes al esclavo 12(balanza 1)
pesoBal1();
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){ //Aumento el contador y pregunto peso a la balanza patron.
Wire.requestFrom(12,8); // Pedimos 8 bytes al esclavo 12(balanza 1)
pesoBal1();
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){ //Aumento el contador y pregunto peso a la balanza patron.
Wire.requestFrom(12,8); // Pedimos 8 bytes al esclavo 12(balanza 1)
pesoBal1();
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++;
}
}
//HASTA EL CONTADOR 55 LUEGO PASA ALA SEGUNDA BALANZA PATRON