ENIB 2023 : UnderPressure : Différence entre versions

De Les Fabriques du Ponant
Aller à : navigation, rechercher
(Que fait ce projet ?)
(Catégories)
 
(Une révision intermédiaire par un autre utilisateur non affichée)
Ligne 1 : Ligne 1 :
  
 
==photo de l'équipe==
 
==photo de l'équipe==
[[Fichier:Axebar.jpg|600px]]
+
[[Fichier:Snapchat-1427582049.jpg|600px]]
  
 
==Que fait ce projet ? ==
 
==Que fait ce projet ? ==
Ligne 82 : Ligne 82 :
  
 
[[Catégorie:Enib2023]]
 
[[Catégorie:Enib2023]]
 +
 +
[[Catégorie:Arduino]]

Version actuelle datée du 15 janvier 2024 à 15:59

photo de l'équipe

Snapchat-1427582049.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 5 secondes (le nombre de verres sur le plateau). Plusieurs énigmes-indices l'aideront, elles seront notées dans la décoration des verres (papier crépon). Lorsque le jeu est gagné, la led rouge devient verte.

Liste des composants

  • Carte Arduino
  • Capteur de pression BME280
  • Leds rouge, verte, orange
  • Verres
  • Pailles

Code



#include <Wire.h>
#include <Adafruit_Sensor.h>
#include <Adafruit_BME280.h>

Adafruit_BME280 bme; // I2C

const int greenLed = 5;
const int orangeLed = 6;
const int redLed = 7;
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