ENIB 2023 : Chauffe qui peut ! : Différence entre versions

De Les Fabriques du Ponant
Aller à : navigation, rechercher
(photo de l'équipe)
(Liste des composants)
 
(4 révisions intermédiaires par le même utilisateur non affichées)
Ligne 4 : Ligne 4 :
  
 
==Que fait ce projet ? ==
 
==Que fait ce projet ? ==
 +
Le but est d'éteindre le feu sur un bateau.
 +
Il faut résoudre 3 énigmes pour passer de rouge à vert les 3 led représentant les 3 zones en flammes du bateau.
  
 
==Liste des composants==
 
==Liste des composants==
Ligne 10 : Ligne 12 :
 
* composant 2
 
* composant 2
 
* ...
 
* ...
 +
[[Fichier:carte1.jpg|600px]]
 +
[[Fichier:cartes.jpg|600px]]
 +
[[Fichier:Montage.jpg|600px]]
  
 
==Code==
 
==Code==
 
<pre>
 
<pre>
ici je pose mon code documenté !
+
// the setup function runs once when you press reset or power the board
 +
const int led0=D0;
 +
const int led2=D3;
 +
const int led3=D4;
 +
const int led_epreuve=D5;
 +
const int haut=D6;
 +
const int bas=D7;
 +
const int reset=D2;
 +
int x=1;
 +
 
 +
bool etape1=false;
 +
bool etape2=false;
 +
bool etape3=false;
 +
 
 +
 
 +
int nbr_haut=0;
 +
int nbr_bas=0;
 +
int nbr_reset=0;
 +
 
 +
 
 +
void setup() {
 +
  Serial.begin(9600);
 +
 
 +
  pinMode(haut, INPUT);
 +
  pinMode(bas, INPUT);
 +
  pinMode(reset,INPUT);
 +
  pinMode(led0,OUTPUT);
 +
  pinMode(led2,OUTPUT);
 +
  pinMode(led3,OUTPUT);
 +
  pinMode(led_epreuve,OUTPUT);
 +
 
 +
}
 +
 
 +
void etape(int a)
 +
{
 +
 
 +
  if (a==1)
 +
  {
 +
    if (nbr_haut==8 && nbr_bas==2)
 +
    {
 +
 
 +
      etape1=true;
 +
      digitalWrite(led0,HIGH);
 +
      nbr_haut=0;
 +
      nbr_bas=0;
 +
    }
 +
    else
 +
    {
 +
      digitalWrite(led0,LOW);
 +
      digitalWrite(led2,LOW);
 +
      digitalWrite(led3,LOW);
 +
      digitalWrite(led_epreuve,LOW);
 +
    }
 +
  }
 +
 
 +
  else if (a==2)
 +
  {
 +
    if (nbr_haut==3 && nbr_bas==7)
 +
    {
 +
      etape2=true;
 +
      digitalWrite(led2,HIGH);
 +
      nbr_haut=0;
 +
      nbr_bas=0;
 +
    }
 +
  }
 +
 
 +
  else if (a==3)
 +
  {
 +
    if (nbr_haut==2 && nbr_bas==3)
 +
    {
 +
      etape3=true;
 +
      digitalWrite(led3,HIGH);
 +
      delay(5000);
 +
 
 +
      nbr_haut=0;
 +
      nbr_bas=0;
 +
      bool etape1=false;
 +
      bool etape2=false;
 +
      bool etape3=false;
 +
 
 +
    }
 +
    else
 +
    {
 +
     
 +
      unsigned long currentTime=millis();
 +
     
 +
      Serial.println(currentTime);
 +
      if (currentTime >(x*4000))
 +
      {
 +
        digitalWrite(led_epreuve,HIGH);
 +
 +
        if(currentTime>(x*8000))
 +
        {
 +
        digitalWrite(led_epreuve,LOW);
 +
          if (currentTime>(x*10000))
 +
          {
 +
              digitalWrite(led_epreuve,HIGH);
 +
              if(currentTime>(x*14000))
 +
              {
 +
                digitalWrite(led_epreuve,LOW);
 +
                if (currentTime>(x*16000))
 +
                {
 +
                  digitalWrite(led_epreuve,HIGH);
 +
                  if(currentTime>(x*18000))
 +
                  {
 +
                    digitalWrite(led_epreuve,LOW);
 +
                    if (currentTime>(x*20000))
 +
                    {
 +
                      digitalWrite(led_epreuve,HIGH);
 +
                      if(currentTime>(x*22000))
 +
                      {
 +
                        digitalWrite(led_epreuve,LOW);
 +
                        if (currentTime>(x*24000))
 +
                        {
 +
                          digitalWrite(led_epreuve,HIGH);
 +
                          if (currentTime>(x*28000))
 +
                          {
 +
                            digitalWrite(led_epreuve,LOW);
 +
                            if(currentTime>(x*40000))
 +
                            {
 +
                              x+=100;
 +
                            }
 +
                          }
 +
                        }
 +
                      }
 +
                    }
 +
                  }
 +
                }
 +
              }
 +
          }
 +
        }
 +
      }
 +
 
 +
    }
 +
 
 +
  }
 +
 
 +
}
 +
 
 +
 
 +
 
 +
void loop() {
 +
 
 +
  if (etape1==false && etape2==false && etape3==false )
 +
  {
 +
    etape(1);
 +
    Serial.println(nbr_bas);
 +
    Serial.println(nbr_haut);
 +
    //Serial.println(nbr_reset);
 +
 
 +
 
 +
  }
 +
  else if (etape1==true && etape2==false && etape3==false )
 +
  {
 +
    etape(2);
 +
    Serial.println(nbr_bas);
 +
    Serial.println(nbr_haut);
 +
 
 +
  }
 +
  else if (etape1==true && etape2==true && etape3==false)
 +
  {
 +
    etape(3);
 +
    Serial.println(nbr_bas);
 +
    Serial.println(nbr_haut);
 +
 
 +
  }
 +
 
 +
 
 +
  if(digitalRead(haut)==LOW)
 +
  {
 +
    nbr_haut+=1;
 +
    //Serial.println("jeanlouis");
 +
    pinMode(haut,OUTPUT);
 +
    delay(500);
 +
 
 +
    digitalWrite(haut,HIGH);
 +
 
 +
    pinMode(haut,INPUT);
 +
 
 +
 
 +
  }
 +
 
 +
  else if(digitalRead(bas)==LOW)
 +
  {
 +
    nbr_bas+=1;
 +
    //Serial.println("jeanlouis");
 +
    pinMode(bas,OUTPUT);
 +
    delay(500);
 +
 
 +
    digitalWrite(bas,HIGH);
 +
 
 +
    pinMode(bas,INPUT);
 +
  }
 +
 +
  else if(digitalRead(reset)==HIGH)
 +
  {
 +
    Serial.println(nbr_reset);
 +
    nbr_bas=0;
 +
    nbr_haut=0;
 +
    nbr_reset+=1;
 +
 
 +
    pinMode(reset,OUTPUT);
 +
    delay(100);
 +
 
 +
    digitalWrite(reset,LOW);
 +
 
 +
    pinMode(reset,INPUT);
 +
  }
 +
 
 +
  else if(nbr_reset>=50)
 +
  {
 +
    etape1=false;
 +
    etape2=false;
 +
    etape3=false;
 +
    nbr_haut=0;
 +
    nbr_bas=0;
 +
    nbr_reset=0;
 +
    pinMode(reset,OUTPUT);
 +
    delay(100);
 +
    digitalWrite(reset,LOW);
 +
    pinMode(reset,INPUT);
 +
 
 +
 
 +
  }
 +
}
 +
 
 
</pre>
 
</pre>
  

Version actuelle datée du 26 janvier 2023 à 16:55

photo de l'équipe

Canap.jpg

Que fait ce projet ?

Le but est d'éteindre le feu sur un bateau. Il faut résoudre 3 énigmes pour passer de rouge à vert les 3 led représentant les 3 zones en flammes du bateau.

Liste des composants

  • composant 1
  • composant 2
  • ...

Localisation Volques.jpg Cartes.jpg Montage.jpg

Code

// the setup function runs once when you press reset or power the board
const int led0=D0;
const int led2=D3;
const int led3=D4;
const int led_epreuve=D5;
const int haut=D6;
const int bas=D7;
const int reset=D2;
int x=1;

bool etape1=false;
bool etape2=false;
bool etape3=false;


int nbr_haut=0;
int nbr_bas=0;
int nbr_reset=0;


void setup() {
  Serial.begin(9600);

  pinMode(haut, INPUT);
  pinMode(bas, INPUT);
  pinMode(reset,INPUT);
  pinMode(led0,OUTPUT);
  pinMode(led2,OUTPUT);
  pinMode(led3,OUTPUT);
  pinMode(led_epreuve,OUTPUT);
  
}

void etape(int a)
{

  if (a==1)
  {
    if (nbr_haut==8 && nbr_bas==2)
    {

      etape1=true;
      digitalWrite(led0,HIGH);
      nbr_haut=0;
      nbr_bas=0;
    }
    else
    {
      digitalWrite(led0,LOW);
      digitalWrite(led2,LOW);
      digitalWrite(led3,LOW);
      digitalWrite(led_epreuve,LOW);
    }
  }

  else if (a==2)
  {
    if (nbr_haut==3 && nbr_bas==7)
    {
      etape2=true;
      digitalWrite(led2,HIGH);
      nbr_haut=0;
      nbr_bas=0;
    }
  }

  else if (a==3)
  {
    if (nbr_haut==2 && nbr_bas==3)
    {
      etape3=true;
      digitalWrite(led3,HIGH);
      delay(5000);

      nbr_haut=0;
      nbr_bas=0;
      bool etape1=false;
      bool etape2=false;
      bool etape3=false;

    }
    else
    {
      
      unsigned long currentTime=millis();
      
      Serial.println(currentTime);
      if (currentTime >(x*4000))
      {
        digitalWrite(led_epreuve,HIGH);
 
        if(currentTime>(x*8000))
        {
        digitalWrite(led_epreuve,LOW);
          if (currentTime>(x*10000))
          {
              digitalWrite(led_epreuve,HIGH);
              if(currentTime>(x*14000))
              {
                digitalWrite(led_epreuve,LOW);
                if (currentTime>(x*16000))
                {
                  digitalWrite(led_epreuve,HIGH);
                  if(currentTime>(x*18000))
                  {
                    digitalWrite(led_epreuve,LOW);
                    if (currentTime>(x*20000))
                    {
                      digitalWrite(led_epreuve,HIGH);
                      if(currentTime>(x*22000))
                      {
                        digitalWrite(led_epreuve,LOW);
                        if (currentTime>(x*24000))
                        {
                          digitalWrite(led_epreuve,HIGH);
                          if (currentTime>(x*28000))
                          {
                            digitalWrite(led_epreuve,LOW);
                            if(currentTime>(x*40000))
                            {
                              x+=100;
                            }
                          }
                        }
                      }
                    }
                  }
                }
              }
          }
        }
      }

    }

  }

}



void loop() {

  if (etape1==false && etape2==false && etape3==false )
  {
    etape(1);
    Serial.println(nbr_bas);
    Serial.println(nbr_haut);
    //Serial.println(nbr_reset);


  }
  else if (etape1==true && etape2==false && etape3==false )
  {
    etape(2);
    Serial.println(nbr_bas);
    Serial.println(nbr_haut);

  }
  else if (etape1==true && etape2==true && etape3==false)
  {
    etape(3);
    Serial.println(nbr_bas);
    Serial.println(nbr_haut);

  }


  if(digitalRead(haut)==LOW)
  {
    nbr_haut+=1;
    //Serial.println("jeanlouis");
    pinMode(haut,OUTPUT);
    delay(500);

    digitalWrite(haut,HIGH);

    pinMode(haut,INPUT);


  }
  
  else if(digitalRead(bas)==LOW)
  {
    nbr_bas+=1;
    //Serial.println("jeanlouis");
    pinMode(bas,OUTPUT);
    delay(500);

    digitalWrite(bas,HIGH);

    pinMode(bas,INPUT);
  }
 
  else if(digitalRead(reset)==HIGH)
  {
    Serial.println(nbr_reset);
    nbr_bas=0;
    nbr_haut=0;
    nbr_reset+=1;

    pinMode(reset,OUTPUT);
    delay(100);

    digitalWrite(reset,LOW);

    pinMode(reset,INPUT);
  }

  else if(nbr_reset>=50)
  {
    etape1=false;
    etape2=false;
    etape3=false;
    nbr_haut=0;
    nbr_bas=0;
    nbr_reset=0;
    pinMode(reset,OUTPUT);
    delay(100);
    digitalWrite(reset,LOW);
    pinMode(reset,INPUT);


  }
} 
   

Catégories