Compañeros disculpen la demora, bueno estube haciendo todas las mediciones correspondiente y exacto como lo dijo surbyte los voltajes no eran parejos para todos los arduino, ademas que estaba usando un fuente switching. Pese a todo eso, me puse manos a la obra y rearme todos mis circuitos q estaban hecho un caos porque los tengo armados en protoboard, ademas que reemplaze la fuente que tenia, por una fuente lineal que esta un poco viejita y empolvada pero esta ok ya que tiene un execelnte trafo.
Monte el circuito y sigue igual con el mismo problema, volvi a rearmar todo alimentado un arduino independientemente y aun asi seguia el mismo problema.
:
Estube pensando un poco y queria descartar un trozo de codigo , no sin antes consutarles a ustedes como reemplazar un trozo de codigo sin usar goto(podria ser que me este dando problemas), la idea esta en que si se cumple la condicion unos led deben encender y si no se cumple la condicion aumenta un contador y avanza el codigo repitiendose consecutivamente( si tienen otra idea de como reemplazar mi codigo, sin usar el goto, pues quiero descartar todo, quizas el problema sea mi codigo.
///ESCLAVO 1 ////
slave1:
if(conta ==1){
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){
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){
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){
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++;
}
}
/////////ESCLAVO5/////
slave5:
if(conta ==5){
Wire.requestFrom(12,8); // Pedimos 8 bytes al esclavo 12(balanza 1)
pesoBal1();
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(12,8); // Pedimos 8 bytes al esclavo 12(balanza 1)
pesoBal1();
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(12,8); // Pedimos 8 bytes al esclavo 12(balanza 1)
pesoBal1();
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(12,8); // Pedimos 8 bytes al esclavo 12(balanza 1)
pesoBal1();
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(12,8); // Pedimos 8 bytes al esclavo 12(balanza 1)
pesoBal1();
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(12,8); // Pedimos 8 bytes al esclavo 12(balanza 1)
pesoBal1();
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(12,8); // Pedimos 8 bytes al esclavo 12(balanza 1)
pesoBal1();
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++;
hasta el contador 55..luego vuelve a contador uno y se repite el proceso
}