// mettre toutes les broches de win1 a l'état haut
Wire.beginTransmission(win1);
Wire.send(val);
Wire.endTransmission();
A cet endroit que vaut val???? Je serais étonné que val contienne 255. D'ailleurs ce groupe de lignes est répété un peu plus loin avec le même effet.
if (a!=0 || b!=0)
aïe, aïe aïe, b n'est pas initialisé dans cette partie de la fonction.