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
#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)