Une LED qui mesure l'éclairement et qui éclaire !

Bon, j'ai trouvé où ça bloque : c'est au "while (digitalRead (pinB) != 0)" qui reste à 1.

Pour le branchement de la led, elle est en série avec une resistance de 100 ohms et l'anode est sur Digital 2 et la cathode sur Digital 3.

Voici le programme :

int pinA = 2; // + Anode de la LED
int pinB = 3; // - Cathode de la LED
int val = 0; // valeur de l'éclairement

void setup()
{
Serial.begin(9600); // connect to the serial port
// désactivation des résistances pull-up
//_SFR_IO8(0x30) |= 4;
// Les deux broches connectées à la LED en sorties
pinMode(pinA, OUTPUT);
pinMode(pinB, OUTPUT);
// On allume la LED
digitalWrite(pinA, HIGH);
digitalWrite(pinB, LOW);
}

void loop()
{
// RAZ valeur d'éclairement
val = 0;
// phase a - led allumée durant 80 ms
digitalWrite(pinA, HIGH);
digitalWrite(pinB, LOW);
delay (80);
// phase b - mise a niveau
digitalWrite(pinA, LOW);
digitalWrite(pinB, HIGH);

// phase c - décharge & mesure
pinMode(pinB, INPUT);
while (digitalRead (pinB) != 0)
{
Serial.print("valeur de PinB en entrée =");
Serial.println(digitalRead (pinB),DEC);
}
val++;
pinMode(pinB, OUTPUT); // on repasse la sortie B en sortie

// on réallume la LED le temps de la transmisssion plus bouclage, mais rien d'obligatoire
Serial.println("réallumage");
digitalWrite(pinA, HIGH);
digitalWrite(pinB, LOW);

// transmission valeur
Serial.print("Valeur lue = ");
Serial.println(val,DEC);
}

Merci pour ton aide