Outils pour utilisateurs

Outils du site


de_mblock_a_arduino

De MBlock à Arduino

Activité de Mblock à Arduino

Site vittascience

Corrigé

Feu avec gestion piéton

Animation Wokwi

Lien vers TinkerCad

Lien vers la classe TinkerCad

// C++ code
//
#define BOUTON_PIETON 3
#define FEU_ROUGE 5
#define FEU_VERT 6
#define FEU_ORANGE 7
#define FEU_PIETON 8
 
int appel_pieton;
 
void eteindre_feux() {
  digitalWrite(FEU_ROUGE, LOW);
  digitalWrite(FEU_VERT, LOW);
  digitalWrite(FEU_ORANGE, LOW);
  digitalWrite(FEU_PIETON, LOW);
}
 
void gerer_pieton() {
  appel_pieton = 1;
}
 
void gerer_feu(int pin, int temps_s) {
  eteindre_feux();
  if (pin == FEU_ROUGE and appel_pieton == 1) {
    digitalWrite(FEU_ROUGE, HIGH);
    digitalWrite(FEU_PIETON, HIGH);
    delay(2000);
    digitalWrite(FEU_PIETON, LOW); 
    appel_pieton = 0;
    temps_s -=2;
  } else {
     digitalWrite(pin, HIGH);
  }
  delay((temps_s * 1000));
}
 
void setup() {
  pinMode(BOUTON_PIETON, INPUT_PULLUP);
  attachInterrupt(digitalPinToInterrupt(BOUTON_PIETON), gerer_pieton, FALLING);
  pinMode(FEU_ROUGE, OUTPUT);
  pinMode(FEU_VERT, OUTPUT);
  pinMode(FEU_ORANGE, OUTPUT);
  pinMode(FEU_PIETON, OUTPUT);
}
 
void loop() {
  gerer_feu(FEU_ROUGE, 5);
  gerer_feu(FEU_VERT, 5);
  gerer_feu(FEU_ORANGE, 1);
}
de_mblock_a_arduino.txt · Dernière modification : 2024/09/26 18:17 de mistert