Besoin d'aide pour un programme

Bonjour a tous, je suis nouveau sur ce forum et nouveau en général dans la programmation, je bloque dans mon programme car je ne comprends pas les directives qu'on me donne, je vous explique :

int D;

void setup() {
pinMode(13,OUTPUT);
}

void loop() {

if (D == 1) digitalWrite(13, HIGH);
else (D == 0) ;digitalWrite(13,LOW);

delay(1000);
}

On me demande de lire la variable, si c'est égale a 1 je dois allumer une led, sinon je dois la laisser éteinte, mais je ne comprends pas comment faire pour lire la variable, car normalement l'information doit venir de mon collègue, mais je dois faire comme si j'avais déjà cette information.
Si je n'explique pas bien dites le moi j'essaierai de mieux m'expliquer, merci beaucoup d'avance :slight_smile:

Lis la syntaxe de if tu verras déjà une erreur.
Ensuite, il faut savoir comment ton collègue t'envoie la valeur de la variable : par courrier, pigeon voyageur, signaux de fumée, ou autre méthode ?

bonjour,
comment veux tu que l'on aide si toi tu ne sais pas ce que tu dois recevoir ni comment?
D correspond à quoi?

Après avoir trifouillé, je suis arrivé à ca

int D;

void setup() {
pinMode(13,OUTPUT);
}

void loop() {

if (2) == 1 D=1;
if (3) == 1 D=2;
if (4) == 1 D=3;

switch (D){
  
case 1:
 
break; 
 
case 2:
 
break;
 
case 3:
 
break;

}

 
}

delay(1000);
}

Est ce que ca à plus de sens ? car enfaite j'aimerais faire 3 cas de situation, par exemple si D = 1, allumer la led pendant 2 secondes... etc
Car on m'a dit que je devais simuler les valeurs pour l'instant car mon collègue ne peut pas encore m'envoyer les infos, mais il le fera via une module nrf24

avant de se prendre le choux, vous êtes à deux a bosser.
donc si lui ne te donne pas la facon dont il envoie les données, comment veux tu que l'on aide et toi faire un code.

code faux et ne correspond à rien

if (2) == 1 D=1;
if (3) == 1 D=2;
if (4) == 1 D=3;

J'ai corrigé :

int D;

void setup() {
pinMode(13,OUTPUT);
}

void loop() {

if (digitalRead(2) == HIGH) D=1;
if (digitalRead(3) == HIGH) D=2;
if (digitalRead(4) == HIGH) D=3;

switch (D){
  
case 1:
 
break; 
 
case 2:
 
break;
 
case 3:
 
break;

}

 
}

delay(1000);
}

C'est bon comme ca ?

Je sais que mon collègue me donnera les infos via un module nrf, mais je ne sais pas comment faire exactement, donc pour l'instant on m'a dit de simuler ces infos, pour déjà faire la suite de mon code

Une parenthèse de trop avant le delay.
Le compilateur sert aussi à trouver les erreurs.

@+

Pour allumer une led en fonction des infos que je recois est ce ce programme est bon ? Sachant que par la suite je recevrai mes infos via le module nrf

int D;

void setup() {
pinMode(13,OUTPUT);
}

void loop() {

if (digitalRead(2) == HIGH) D=1;
if (digitalRead(3) == HIGH) D=2;
if (digitalRead(4) == HIGH) D=3;

switch (D){

case 1:
digitalWrite(13,HIGH);
delay(2000);
digitalWrite(13,LOW);
delay(2000);
break;

case 2:
digitalWrite(13,HIGH);
delay(5000);
digitalWrite(13,LOW);
delay(2000);
break;

case 3:
digitalWrite(13,HIGH);
delay(7000);
digitalWrite(13,LOW);
delay(2000);
break;

}

delay(1000);
}

code entre balise code

déjà est ce que tu sais à quoi correspondent ces lignes et ce quelles veulent dire?

if (digitalRead(2) == HIGH) D=1;
if (digitalRead(3) == HIGH) D=2;
if (digitalRead(4) == HIGH) D=3;