ENIB 2023 : UnderPressure

De Les Fabriques du Ponant
Révision datée du 26 janvier 2023 à 13:49 par Estelle (discussion | contributions) (Code)
Aller à : navigation, rechercher

photo de l'équipe

Axebar.jpg

Que fait ce projet ?

Le joueur se retrouve face à un plateau rempli de verres avec des pailles. Son but est de trouver le bon verre et de souffler dedans à 2 bars pendant 6 secondes. Plusieurs énigmes-indices l'aideront, elles seront notées sur la décoration des verres (parasols). Lorsque le jeu est gagné, des leds s'allument.

Liste des composants

  • composant 1
  • composant 2
  • ...

Code

ici je pose mon code documenté !
  1. include <Wire.h>
  2. include <Adafruit_Sensor.h>
  3. include <Adafruit_BME280.h>

Adafruit_BME280 bme; // I2C

const int greenLed = 12; const int orangeLed = 11; const int redLed = 10; const float targetPressure = 1.0; const int targetDuration = 5000; // 5 seconds

unsigned long startTime; bool pressureReached = false;

void setup() {

 // Start the I2C communication
 Wire.begin();
 // Initialize the BME280 sensor
 bme.begin(0x76);
 // Set the LED pins as output
 pinMode(greenLed, OUTPUT);
 pinMode(orangeLed, OUTPUT);
 pinMode(redLed, OUTPUT);

}

void loop() {

 float pressure = bme.readPressure() / 100.0F;
 // Check if the pressure is correct
 if (pressure >= targetPressure) {
   if (!pressureReached) {
     // Start the timer
     startTime = millis();
     pressureReached = true;
   } else {
     // Check if the duration is long enough
     if (millis() - startTime >= targetDuration) {
       // Turn on the green LED
       digitalWrite(greenLed, HIGH);
       digitalWrite(orangeLed, LOW);
       digitalWrite(redLed, LOW);
     } else {
       // Turn on the orange LED
       digitalWrite(greenLed, LOW);
       digitalWrite(orangeLed, HIGH);
       digitalWrite(redLed, LOW);
     }
   }
 } else {
   // Turn on the red LED
   digitalWrite(greenLed, LOW);
   digitalWrite(orangeLed, LOW);
   digitalWrite(redLed, HIGH);
   pressureReached = false;
 }

}

Catégories