Remplacer un "bouton rotatif infini mecanique" par un Arduino

Et se méfier des codes qui mettent des {} un peu n'importe où en particulier :slight_smile:

Si il va se passer quelque chose puisque il y a des impulsions. Ca va compter, mais on ne sait pas dans quel sens.
Comme je te l'ai déjà dit, les accolades sont ma placées. Voir la remarque de @hbachetti sur l'indentation.

Oui mais malheureusement étant totalement débutant avec Arduino , je fais avec ce que je trouve .
mais aussi avec votre aide :slight_smile:
codant un peu en php certaines fonction sont un peu pareil .

c'est le début , on apprends de ses conneries et parfois de celle des autres :smiley:

Bonsoir à tous ,
alors pu tester sur une vrai carte mais pas encore pu le voir sur oscillo ca sera demain .

après avoir regardé 5/6 vidéos pour débuter
j'ai repris le code au dessus pour avoir comme mon boitier

repos => S1 = 5V & S2 = 0V sur mon bouton rotatif
j'ai les signaux quand on tourne (normal) puis retour au repos 5v et 0v

j'ai reussi avec ce code a "presque" reproduire la meme chose

const int DISCMOINS = 2 ;
const int DISCPLUS = 3 ;
const int COMMANDEA = 4 ;
const int COMMANDEB = 5 ;


void setup()
{
  pinMode(DISCMOINS, INPUT_PULLUP);
  pinMode(DISCPLUS, INPUT_PULLUP);
  pinMode(COMMANDEA, OUTPUT);
  pinMode(COMMANDEB, OUTPUT);
  digitalWrite(COMMANDEA, LOW);
  digitalWrite(COMMANDEB, HIGH);
}

void loop() {
  {
    if ( digitalRead(DISCMOINS) == LOW )    {
      digitalWrite(COMMANDEA, LOW);
      delay(20);
      digitalWrite(COMMANDEB, LOW);
      delay(20);
      digitalWrite(COMMANDEA, HIGH);
      delay(20);
      digitalWrite(COMMANDEB, HIGH);
      delay(80);
    } else {
        digitalWrite(COMMANDEA, LOW);
    } 
  }

  {
    if ( digitalRead(DISCPLUS) == LOW )    {
      digitalWrite(COMMANDEB, LOW);
      delay(20);
      digitalWrite(COMMANDEA, LOW);
      delay(20);
      digitalWrite(COMMANDEB, HIGH);
      delay(20);
      digitalWrite(COMMANDEA, HIGH);
      delay(80);
    } else {
        digitalWrite(COMMANDEB, HIGH);
    } 
  }
}

a l'execution de l'arduino j'ai bien 5v sur une des sorties et 0v sur la seconde , c'est la possition repos .
je genere bien les 2 signaux carré quand j'appuie sur l'un ou l'autre bouton
puis retour aux parametres par defaut en repos .

demain je vais controler sur un oscillo les 2 signaux pour voir si cela va ou pas

restera a ajouter une protection pour si on appuie en meme temps sur les bouton
(peut etre une fonctione qui desactive le second bouton le temps que le premier est appuyé)

certains verront le } else { façon php :slight_smile: reflexe lol

Amicalement PAscal

Ca sert à quoi ces else??

C'est pourtant simple, je t'ai donné la solution au post #13

@kamill
Oui votre code marche mais j'avais pas le 5v et 0v par defaut sur mes 2 sorties
une fois le bouton relaché je genere plus de signaux carrés je repasse en "position" de repos comme mon vrai boitier , une broche en 5V et la seconde en 0V

bonsoir à tous ,
comme j'ai eu un peur de me louper et griller le boitier (300€)
j'ai opté pour un autre systeme :slight_smile:

je clos le post merci de votre aide