ENIB 2023 : Panique dans les Monts : Différence entre versions
(→Que faut-il faire dans ce projet ?) |
(→Code) |
||
| (7 révisions intermédiaires par le même utilisateur non affichées) | |||
| Ligne 1 : | Ligne 1 : | ||
| − | == | + | ==Photo de l'équipe== |
[[Fichier:photo_pdgo.jpg||600px]] | [[Fichier:photo_pdgo.jpg||600px]] | ||
==Que faut-il faire dans ce projet ? == | ==Que faut-il faire dans ce projet ? == | ||
| − | Deux alpinistes se sont perdu dans les monts durant une randonnée. Afin de sauver leur vie il faut résoudre une suite d'enigme. Chaque solution vous amènera a la prochaine pour | + | Deux alpinistes se sont perdu dans les monts durant une randonnée. Afin de sauver leur vie il faut résoudre une suite d'enigme. Chaque solution vous amènera a la prochaine énigme pour trouver la trappe ou se trouve les alpinistes. |
==Liste des composants== | ==Liste des composants== | ||
| − | * | + | * W-mos D1 mini |
| − | * | + | * Ecran LCD |
| − | * .. | + | * Moteur |
| + | * Bouton poussoir | ||
| + | * Resistance | ||
| + | |||
| + | ==Liste des machines utilisé== | ||
| + | |||
| + | * Découpeuse laser | ||
| + | * Imprimante 3D | ||
| + | * Pistolet a colle | ||
| + | * Fer a souder | ||
| + | |||
| + | ==Photos du câblage== | ||
| + | [[Fichier:cablage1.jpg||400px]] | ||
| + | [[Fichier:cablage2.jpg||400px]] | ||
==Code== | ==Code== | ||
<pre> | <pre> | ||
| − | ici je | + | #include <Servo.h> // permet de faire appel à la bibliothèque Servo |
| + | |||
| + | #include <Wire.h> | ||
| + | #include <LiquidCrystal_I2C.h> | ||
| + | |||
| + | LiquidCrystal_I2C lcd(0x27,16,2); | ||
| + | |||
| + | Servo monservo; // crée une constante appelée « monservo » utilisable par la bibliothèque Servo. | ||
| + | // (vous pouvez la nommez comme vous voulez, exemple : servo_1, mais pensez à le remplacer dans le programme). | ||
| + | |||
| + | int boutonservo = D6; | ||
| + | int boutonlcd = D7 ; // déclare le bouton poussoir sur la PIN 8. | ||
| + | int etatboutonservo = 0; // variable représentant le bouton, soit ouvert ou fermé, ici au départ à 0 donc fermé. | ||
| + | int etatboutonlcd = 0; // variable représentant le bouton, soit ouvert ou fermé, ici au départ à 0 donc fermé. | ||
| + | |||
| + | |||
| + | void setup() { | ||
| + | pinMode (boutonservo, INPUT) ; // on indique que le bouton est une entrée. | ||
| + | pinMode (boutonlcd, INPUT) ; // on indique que le bouton est une entrée. | ||
| + | |||
| + | monservo.attach(D5); // commande de la bibliothèque Servo, qui consiste à « attacher » le servomoteur à la PIN 9 | ||
| + | monservo.write (0); | ||
| + | |||
| + | lcd.init(); | ||
| + | |||
| + | } | ||
| + | |||
| + | void loop() { | ||
| + | etatboutonservo = digitalRead (boutonservo); // On lit l’état du bouton pour savoir s’il est ouvert ou fermé | ||
| + | |||
| + | if (etatboutonservo==HIGH) { // Si la variable “etatbouton” est ouverte, à l’état haut, donc laisse passer le courant. | ||
| + | monservo.write (190); // alors le servomoteur prend un angle de 90°. | ||
| + | delay(5000) ; // on attend un délais de 5 secondes | ||
| + | |||
| + | lcd.backlight(); | ||
| + | lcd.clear(); | ||
| + | lcd.setCursor(0,0); | ||
| + | lcd.print("trouves le bouton"); | ||
| + | lcd.setCursor(0,1); | ||
| + | lcd.print("des énigmes"); | ||
| + | //monservo.write (0); // le servomoteur revient à l’angle 0, sa position de départ. | ||
| + | //delay(150); // crée un délais de 150 millisecondes avant de refaire la boucle et de tester à nouveau l’état du bouton. | ||
| + | } | ||
| + | |||
| + | etatboutonlcd = digitalRead (boutonlcd); // On lit l’état du bouton pour savoir s’il est ouvert ou fermé | ||
| + | |||
| + | if (etatboutonlcd==HIGH) { | ||
| + | lcd.backlight(); | ||
| + | lcd.clear(); | ||
| + | lcd.setCursor(0,0); | ||
| + | lcd.print("Enigme 1"); | ||
| + | lcd.setCursor(0,1); | ||
| + | lcd.print("Sans moi, Paris"); | ||
| + | delay(2000); | ||
| + | lcd.clear(); | ||
| + | lcd.setCursor(0,0); | ||
| + | lcd.print("Enigme 1"); | ||
| + | lcd.setCursor(0,1); | ||
| + | lcd.print("serait pris !"); | ||
| + | delay(2000); | ||
| + | lcd.clear(); | ||
| + | lcd.setCursor(0,0); | ||
| + | lcd.print("Enigme 1"); | ||
| + | lcd.setCursor(0,1); | ||
| + | lcd.print("Qui suis-je ? "); | ||
| + | delay(3000); | ||
| + | lcd.clear(); | ||
| + | lcd.setCursor(0,0); | ||
| + | lcd.print("Enigme 2"); | ||
| + | lcd.setCursor(0,1); | ||
| + | lcd.print("l'oiseau me "); | ||
| + | delay(2000); | ||
| + | lcd.clear(); | ||
| + | lcd.setCursor(0,0); | ||
| + | lcd.print("Enigme 2"); | ||
| + | lcd.setCursor(0,1); | ||
| + | lcd.print("sort et l'humain "); | ||
| + | delay(2000); | ||
| + | lcd.clear(); | ||
| + | lcd.setCursor(0,0); | ||
| + | lcd.print("Enigme 2"); | ||
| + | lcd.setCursor(0,1); | ||
| + | lcd.print("me vole! "); | ||
| + | delay(2000); | ||
| + | lcd.clear(); | ||
| + | lcd.setCursor(0,0); | ||
| + | lcd.print("Enigme 2"); | ||
| + | lcd.setCursor(0,1); | ||
| + | lcd.print("Qui suis-je ? "); | ||
| + | |||
| + | } | ||
| + | |||
| + | |||
| + | } | ||
| + | |||
| + | |||
| + | |||
</pre> | </pre> | ||
Version actuelle datée du 26 janvier 2023 à 15:04
Sommaire
Photo de l'équipe
Que faut-il faire dans ce projet ?
Deux alpinistes se sont perdu dans les monts durant une randonnée. Afin de sauver leur vie il faut résoudre une suite d'enigme. Chaque solution vous amènera a la prochaine énigme pour trouver la trappe ou se trouve les alpinistes.
Liste des composants
- W-mos D1 mini
- Ecran LCD
- Moteur
- Bouton poussoir
- Resistance
Liste des machines utilisé
- Découpeuse laser
- Imprimante 3D
- Pistolet a colle
- Fer a souder
Photos du câblage
Code
#include <Servo.h> // permet de faire appel à la bibliothèque Servo
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,16,2);
Servo monservo; // crée une constante appelée « monservo » utilisable par la bibliothèque Servo.
// (vous pouvez la nommez comme vous voulez, exemple : servo_1, mais pensez à le remplacer dans le programme).
int boutonservo = D6;
int boutonlcd = D7 ; // déclare le bouton poussoir sur la PIN 8.
int etatboutonservo = 0; // variable représentant le bouton, soit ouvert ou fermé, ici au départ à 0 donc fermé.
int etatboutonlcd = 0; // variable représentant le bouton, soit ouvert ou fermé, ici au départ à 0 donc fermé.
void setup() {
pinMode (boutonservo, INPUT) ; // on indique que le bouton est une entrée.
pinMode (boutonlcd, INPUT) ; // on indique que le bouton est une entrée.
monservo.attach(D5); // commande de la bibliothèque Servo, qui consiste à « attacher » le servomoteur à la PIN 9
monservo.write (0);
lcd.init();
}
void loop() {
etatboutonservo = digitalRead (boutonservo); // On lit l’état du bouton pour savoir s’il est ouvert ou fermé
if (etatboutonservo==HIGH) { // Si la variable “etatbouton” est ouverte, à l’état haut, donc laisse passer le courant.
monservo.write (190); // alors le servomoteur prend un angle de 90°.
delay(5000) ; // on attend un délais de 5 secondes
lcd.backlight();
lcd.clear();
lcd.setCursor(0,0);
lcd.print("trouves le bouton");
lcd.setCursor(0,1);
lcd.print("des énigmes");
//monservo.write (0); // le servomoteur revient à l’angle 0, sa position de départ.
//delay(150); // crée un délais de 150 millisecondes avant de refaire la boucle et de tester à nouveau l’état du bouton.
}
etatboutonlcd = digitalRead (boutonlcd); // On lit l’état du bouton pour savoir s’il est ouvert ou fermé
if (etatboutonlcd==HIGH) {
lcd.backlight();
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Enigme 1");
lcd.setCursor(0,1);
lcd.print("Sans moi, Paris");
delay(2000);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Enigme 1");
lcd.setCursor(0,1);
lcd.print("serait pris !");
delay(2000);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Enigme 1");
lcd.setCursor(0,1);
lcd.print("Qui suis-je ? ");
delay(3000);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Enigme 2");
lcd.setCursor(0,1);
lcd.print("l'oiseau me ");
delay(2000);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Enigme 2");
lcd.setCursor(0,1);
lcd.print("sort et l'humain ");
delay(2000);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Enigme 2");
lcd.setCursor(0,1);
lcd.print("me vole! ");
delay(2000);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Enigme 2");
lcd.setCursor(0,1);
lcd.print("Qui suis-je ? ");
}
}
