Faire une authentification de type android avec led et joystick

Bonjour,
Je dois programmer un Joystick - verrouillage/déverrouillage par schéma comme sur les tél. Androids.
En résumé, la sortie est constituée de 9 leds pour le schéma et de deux leds pour le signalement du bon ou du mauvais code. On mémorise un tableau de 9 éléments constituant le bon code et on compare le tableau entré grace au joystick avec le bon code.
Le mouvement s'affiche visuellement sur les 9 leds et on garde en mémoire les états précédents des leds comme sur une saisie sur Android.
Voilà mon problème : je ne parviens pas à réaliser la tâche suivante : 3 tentatives infructueuses bloquerons la saisie de tout nouveau schéma pendant 10 secs. minimum.
==> Pour cela, j'ai essayé de créer une nouvelle variable que j'incrémente après chaque tentative râtée et lorsque celle-ci arrive à la valeur 3, j'ai mis un delay de 10000.
Cela ne marchant pas, toute aide ou conseil est apprécié.

// include the TinkerKit library
#include "TinkerKit.h"
// LED joystick - numéros des broches sur la carte
int LEDHAUTGAUCHE=9;
int LEDHAUTCENTRE=8;
int LEDHAUTDROITE=7;
int LEDCENTREGAUCHE=4;
int LEDCENTRECENTRE=5;
int LEDCENTREDROITE=6;
int LEDBASGAUCHE=12;
int LEDBASCENTRE=2;
int LEDBASDROITE=3;
TKJoystick joystick(I0, I1); // calcul de coordonnées x et y
TKLed xLed(O0), yLed(O1); //LED de signalement bon ou mauvais code (00)=Ledverte et (01)=ledrouge
TKButton button(I2);
int coordx = 0; //initialisation coordonnées axe x et y
int coordy = 0;
int code[9]={
1,5,7,6,3,2,8,9,4};
int entree[9];
int currentLed=0;
void setup()
{
pinMode(LEDHAUTGAUCHE,OUTPUT);
pinMode(LEDHAUTCENTRE,OUTPUT);
pinMode(LEDHAUTDROITE,OUTPUT);
pinMode(LEDCENTREGAUCHE,OUTPUT);
pinMode(LEDCENTRECENTRE,OUTPUT);
pinMode(LEDCENTREDROITE,OUTPUT);
pinMode(LEDBASGAUCHE,OUTPUT);
pinMode(LEDBASCENTRE,OUTPUT);
pinMode(LEDBASDROITE,OUTPUT);
while (button.get() == LOW) { // if it is, the button.state() is HIGH
digitalWrite(LEDHAUTGAUCHE,LOW);
digitalWrite(LEDHAUTCENTRE,LOW);
digitalWrite(LEDHAUTDROITE,LOW);
digitalWrite(LEDCENTREGAUCHE,LOW);
digitalWrite(LEDCENTRECENTRE,LOW);
digitalWrite(LEDCENTREDROITE,LOW);
digitalWrite(LEDBASGAUCHE,LOW);
digitalWrite(LEDBASCENTRE,LOW);
digitalWrite(LEDBASDROITE,LOW);
}
Serial.begin(9600);
}
void loop()
{
coordx = joystick.getXAxis();
coordy = joystick.getYAxis();
delay(100);
int i=0;
int v=0;
if(coordy > 750 && coordy < 1200 && coordx > 0 && coordx < 150 && digitalRead(LEDBASGAUCHE) == LOW) {
digitalWrite(LEDBASGAUCHE,HIGH);
entree[currentLed] = 1;
currentLed++;
}
if(coordy > 300 && coordy < 750 && coordx > 0 && coordx < 150 && digitalRead(LEDBASCENTRE) == LOW) {
digitalWrite(LEDBASCENTRE,HIGH);
entree[currentLed] = 2;
currentLed++;
}
if(coordy > 0 && coordy < 150 && coordx > 0 && coordx < 150 && digitalRead(LEDBASDROITE) == LOW) {
digitalWrite(LEDBASDROITE,HIGH);
entree[currentLed] = 3;
currentLed++;
}
if(coordy > 750 && coordy < 1200 && coordx > 300 && coordx < 750 && digitalRead(LEDCENTREGAUCHE) == LOW) {
digitalWrite(LEDCENTREGAUCHE,HIGH);
entree[currentLed] = 4;
currentLed++;
}
if(coordy > 300 && coordy < 750 && coordx > 300 && coordx < 750 && digitalRead(LEDCENTRECENTRE) == LOW) {
digitalWrite(LEDCENTRECENTRE,HIGH);
entree[currentLed] = 5;
currentLed++;
}
if(coordy > 0 && coordy < 150 && coordx > 300 && coordx < 750 && digitalRead(LEDCENTREDROITE) == LOW) {
digitalWrite(LEDCENTREDROITE,HIGH);
entree[currentLed] = 6;
currentLed++;
}
if(coordy > 0 && coordy < 150 && coordx > 750 && coordx < 1200 && digitalRead(LEDHAUTDROITE) == LOW) {
digitalWrite(LEDHAUTDROITE,HIGH);
entree[currentLed] = 7;
currentLed++;
}
if(coordy > 300 && coordy < 750 && coordx > 750 && coordx < 1200 && digitalRead(LEDHAUTCENTRE) == LOW) {
digitalWrite(LEDHAUTCENTRE,HIGH);
entree[currentLed] = 8;
currentLed++;
}
if(coordy > 750 && coordy < 1200 && coordx > 750 && coordx < 1200 && digitalRead(LEDHAUTGAUCHE) == LOW) {
digitalWrite(LEDHAUTGAUCHE,HIGH);
entree[currentLed] = 9;
currentLed++;
}
Serial.print(" x= ");
Serial.print(coordx);
Serial.print(" y= ");
Serial.println(coordy);
for (i=0;i<=8;i++)
Serial.print(entree[i]);
for (i=0;i<=8;i++) {
if (digitalRead(LEDHAUTGAUCHE)==HIGH && digitalRead(LEDHAUTCENTRE)==HIGH && digitalRead(LEDHAUTDROITE)==HIGH && digitalRead(LEDCENTREDROITE)==HIGH && digitalRead(LEDCENTRECENTRE)==HIGH && digitalRead(LEDCENTREGAUCHE)==HIGH && digitalRead(LEDBASGAUCHE)==HIGH && digitalRead(LEDBASCENTRE)==HIGH && digitalRead(LEDBASDROITE)==HIGH && (code [i] == entree [i]))
xLed.on();
else if (digitalRead(LEDHAUTGAUCHE)==HIGH && digitalRead(LEDHAUTCENTRE)==HIGH && digitalRead(LEDHAUTDROITE)==HIGH && digitalRead(LEDCENTREDROITE)==HIGH && digitalRead(LEDCENTRECENTRE)==HIGH && digitalRead(LEDCENTREGAUCHE)==HIGH && digitalRead(LEDBASGAUCHE)==HIGH && digitalRead(LEDBASCENTRE)==HIGH && digitalRead(LEDBASDROITE)==HIGH && (code [i] != entree [i]))
(yLed.on(),xLed.off()
);
}
}