Rotary encoder - piloter 2 LEDs ou relais

Bonjour à tous,

À mes débuts avec Arduino, je tente de contrôler 2 LED via un encodeur rotatif, j'ai fait un petit bout de code mais les LEDs restent toujours allumées, quand je tourne gauche ou droite je vois la led en question éteindre selon le délai demander, mais j'aimerais faire le contraire.
Que les LEDs soient toujours OFF et quand je tourne au coté ou l'autre la LED en question allume pour le délai demandé, voici mon code.

J'ai bidouillé pas mal avec les "digitalwrite" y'à surement moyen d'épurer !

Merci de votre aide,
Benoit

 int val; 
 int encoder0PinA = 3;
 int encoder0PinB = 4;
 int encoder0Pos = 0;
 int encoder0PinALast = LOW;
 int n = LOW;
 const int ledpin6 = 6;      // the number of the LED pin
 const int ledpin7 = 7;      // the number of the LED pin
 int ledState = LOW; 

 void setup() { 
   pinMode (encoder0PinA,INPUT);
   pinMode (encoder0PinB,INPUT);
   pinMode (ledpin6, OUTPUT);
   pinMode (ledpin7, OUTPUT);
   digitalWrite(ledpin6, ledState);      // set initial LED state
   digitalWrite(ledpin7, ledState);      // set initial LED state
   Serial.begin (9600);
 } 

 void loop() { 

   n = digitalRead(encoder0PinA);
   if ((encoder0PinALast == LOW) && (n == HIGH)) {
     if (digitalRead(encoder0PinB) == LOW) {
       digitalWrite(ledpin6, ledState);
       digitalWrite(6, HIGH);
       digitalWrite(7, LOW);
       delay(1000);
       digitalWrite(6, LOW);
       encoder0Pos--;
     } else {
       digitalWrite(ledpin7, ledState);
       digitalWrite(6, LOW);
       digitalWrite(7, HIGH);
       delay(1000);
       digitalWrite(7, LOW);
       encoder0Pos++;
     }
     Serial.print (encoder0Pos);
     Serial.print ("/");
   } 
   encoder0PinALast = n;
   digitalWrite(ledpin6, ledState);
   digitalWrite(ledpin7, ledState);
   
 }

Bonjour

Si tu peut envoyer ton câblage ca serait bien.. on ne peut pas savoir quel sont les états au "repos" ou au "travail"

si les led s’allume "à l'envers" il suffit soit de changer low vers hight ou de modifier le câblage des leds si ca n'a pas 'd'importance..

il y a des choses pas logique

par exemple "digitalWrite(ledpin6, ledState);
digitalWrite(6, HIGH);"

tu écrit sur la sortie ledpin6 (sortie n°6)un etat a priori LOW
puis aussitôt tu écrit sur la sortie 6 un etat Hight c'est bizarre..

idem un peut plus bas avec la sortie n°7 avec un "digitalwrite(6,LOW);" intercalé

Le plus simple c'est de faire du "pas à pas" du programme (mentalement car on ne peut pas le faire dans arduino du moins je ne crois pas) éventuellement avec un papier d’écrire au démarrage la sortie n°6 et 7 sont dans quel etat? puis de se faire une loop du programme de voir ce qui devrait se passer puis de voir si on agit sur l'encodeur se qu'il devrait se passer dans le programme... et voir se qui se passe sur les sortie..

attention au delay durant lequel le arduino ne fait rien d'autre...

christophe