Demande d'aide : rolling code-switch case

bonjours a tous, pour un projet j'ai besoins de faire un rolling code mais je n'ai absolument aucune idée pour sa configuration, tout se que je sais se que je peut utiliser un "switch case" pour en créer un, je vous met une version actuel de mon code.
Pour situer le contexte je doit reproduire une trame de commande pour ouvrir un volet :slight_smile:

#define Em 4
const int Seg[3]={0x01,0x98,0x04};
//*************************************************************************
void setup()
{
Serial.begin(9600);
pinMode (Em, OUTPUT);
}
//*************************************************************************
void loop ()
{
int i;
int n;
int j;
j=0;j<3;j++;

digitalWrite(Em,LOW);
delay(24);
{for (i=0;i<3;i++) ecriture(Seg*);}*
{for (n=2;i<2;i++) ecriture(Seg[n]);

  • switch(n)*
  • case j=1:*
  • {ecriture(0xFF);break;}*
  • case j=2:*
  • {ecriture(0x01);break;}*
    }
    digitalWrite(Em,LOW);
  • delay(240);*
  • Serial.println();*
    }
    //*************************************************************************
    //*************************************************************************
    void ecriture(int octet)
    {
  • int mask=0x080;*
    int i;
    for(i=0;i<8;i++)
    { if ((octet&mask)==0)bas();
    else haut() ;
  • mask=mask>>1;}*
  • }*
    //*************************************************************************
    void haut()
    {Serial.print('1');
  • digitalWrite(Em,LOW);*
    delayMicroseconds(4000);
    digitalWrite(Em,HIGH);
    delayMicroseconds(8000);}
    //*************************************************************************
    void bas()
    {Serial.print('0');
  • digitalWrite(Em,LOW);*
    delayMicroseconds(8000);
    digitalWrite(Em, HIGH);
    delayMicroseconds(4000);}
    Rolling_Code2.ino (1.3 KB)

C'est un code que tu as récupéré et que tu as charcuté ?
Il est farci de non-sens.
Si tu débutes en langage C, ce n'est pas la bonne méthode, il faut investir un peu dans la compréhension du langage.

non je l'ai créée moi même et oui je debute mais personne ne peut m'aider et je tourne en rond, c'est pour sa que je demande de l'aide

et bien relis attentivement on code et demande toi ce que fais chaque ligne.

j=0;j<3;j++;

Ca fait quoi ça ?

 {for (i=0;i<3;i++) ecriture(Seg);}

Qu'est-ce que tu passe comme argument à la fonction ecriture() ? Que dit le compilateur ? Et pourquoi les { }, ça fait quoi ?

for (n=2;i<2;i++) ecriture(Seg[n]);

Y'a pas un problème là ?

  switch(n)

Il manque une {

case j=1:

C'est quoi j ? on doit écrire case 1. Et tu n'as pas compris la différence entre = et ==

Enfin bref, je cherche à t'aider, et mon 1er conseil est : apprend le langage C.

ce que tu as cité précédement se sont des idées en cours au moment ou j'ai poster cette partie de code, et c'est justement en faisant que on apprend non?

TheChantilly:
c'est justement en faisant que on apprend non?

Oui bien sûr, mais ça ne suffit pas (ou alors c'est très très long).
Il faut aussi consulter des ouvrages ou des sites qui présentent le langage C, et surtout étudier et bien comprendre des exemples.

Bonjour,
peut être bon pour toi rolling code sous arduino - Français - Arduino Forum
Cordialement.