La boite de nuit
Matériel :
carte Arduino Uno
shield Grove
2 boutons-poussoir Grove, voire 4 si l’intégralité est traitée
afficheur LCD Grove
relais Grove (en option)
Présentation
Pour des raisons de sécurité, la boîte de nuit« The Sin» ne peut recevoir plus de 250 personnes simultanément. La société au sein de laquelle vous travaillez a été mandatée pour réaliser un système de limitation des entrées.
Cahier des charges fonctionnel
Votre équipe de travail a mis au point un portique d'entrée/ sortie, et c'est vous qui êtes prévu pour en assurer la programmation. Le cahier des charges fonctionnel initial est le suivant :
une personne qui est autorisée à entrer reçoit une carte RFID (simulée par un BP). Lorsqu'elle entre, un système ouvre un tourniquet (activation d'un relais pendant 2 s) et affiche le
nombre de personnes présents dans le bâtiment (incrémentation d'une variable) ;
une personne qui sort décrémente le comptage ;
lorsque 250 danseurs sont présents, le système n'autorise pas d'entrée ... il faut attendre qu'un client aille fumer (c'est pas bien!) ou quitte l'établissement pour pouvoir accueillir une autre personne ...
le système distingue les badges portés par des filles de ceux portés par des garçons ; cela permet de motiver les danseurs à payer une entrée.
bien entendu, comme dans la majorité des discothèques, l'entrée est gratuite pour les filles.
Programmation
Le programme pour la gestion des entrées (filles et garçons) ci-dessous a été établi avec les étapes suivantes (avec 1 seul bouton poussoir):
réaliser le système de comptage (sans décomptage) ;
ajouter le système d'affichage ;
ajouter la gestion des limites ;
Modification
Modifier le programme pour faire le décompte des personnes sortant de la boite en t'inspirant de l'exemple pour le comptage.
#include <Wire.h>
#include <SeeedOLED.h>
//
int compteur;
//
void setup() {
// Déclaration boutons poussoirs et valeurs par défaut des variables
// Bouton poussoir sur le pin 7
pinMode(7,INPUT);
compteur = 0;
// Initialisation de l'ecran OLED Display
Wire.begin();
SeeedOled.init(); //initialze SEEED OLED display
SeeedOled.clearDisplay(); //clear the screen and set start position to top left corner
SeeedOled.setNormalDisplay(); //Set display to Normal mode
SeeedOled.setPageMode(); //Set addressing mode to Page Mode
// Déclaration des lignes de textes et leurs positions
SeeedOled.setTextXY(0, 0); //Set the cursor to 0th Page, 0th Column
SeeedOled.putString("Bienvenue au Sin"); //Print the String
SeeedOled.setTextXY(2, 0); //Set the cursor to 3th Page, 0th Column
SeeedOled.putString("Nbr de personnes");
SeeedOled.setTextXY(3, 0); //Set the cursor to 3th Page, 0th Column
SeeedOled.putString("dans la boite:"); //Print number
SeeedOled.setTextXY(4, 108); //Set the cursor to 4th Page, 0th Column
SeeedOled.putNumber(compteur); //Print number
SeeedOled.setTextXY(6, 0); //Set the cursor to 0th Page, 0th Column
SeeedOled.putString("Bonne soiree");
SeeedOled.setTextXY(7, 0); //Set the cursor to 0th Page, 0th Column
SeeedOled.putString("Amusez-vous"); //Print the String
//
//
}
void loop() {
if ( digitalRead(7)== HIGH){
if (compteur<250) {
compteur = compteur +1; // Incrémentation du compteur de personnes
// commande de debuggage
//Serial.begin(9600); // Initialisation du port Serie
//Serial.println(compteur);
//
SeeedOled.setTextXY(4, 108); //Set the cursor to 0th Page, 0th Column
SeeedOled.putNumber(compteur); //recupere la valeur du compteur
delay(200); // Tempo pour une incrémentation moins rapide
}
else
if (compteur=250) {
SeeedOled.setTextXY(2, 0); //Set the cursor to 0th Page, 0th Column
SeeedOled.putString("Capacite Max de ");
SeeedOled.setTextXY(3, 0); //Set the cursor to 0th Page, 0th Column
SeeedOled.putString("250 personnes ");
SeeedOled.setTextXY(4, 0); //Set the cursor to 0th Page, 0th Column
SeeedOled.putString("atteinte!! "); //Print the String
}
}
}
Le programme de chaque étape sera enregistré sous un nouveau nom..
Faire valider le programme par le professeur
Modification pour aller plus loin
Tu peux rajouter deux boutons poussoir pour faire le comptage des filles et celui des garcons et modifier le programme
Si l'étape précédente t'as paru trop difficile passe à l'actvité suivante. Dans cette partie, le programme devient complexe car il faut déboubler les compteurs pour différencier les filles des garçons mais garder le nombre maximal à 250.
Le programme de chaque étape sera enregistré sous un nouveau nom..
Faire valider le programme par le professeur
Dernière mise à jour
Cet article vous a-t-il été utile ?