ENIB 2022 : Patate de forain : Différence entre versions
(→Code) |
(→Cablage) |
||
| Ligne 114 : | Ligne 114 : | ||
==Cablage== | ==Cablage== | ||
| + | <gallery> | ||
| + | Exemple.jpg|Description 1 | ||
| + | Exemple.jpg|Description 2 | ||
| + | </gallery> | ||
==Catégories== | ==Catégories== | ||
[[Catégorie:Enib2022]] | [[Catégorie:Enib2022]] | ||
Version du 17 janvier 2022 à 13:08
Sommaire
photo de l'équipe
Noé Paillet, Baptiste Rault, Tanguy Orhon, Alexis Jan, Romain Jaffré
Que fait ce projet ?
Le projet patate de forain consiste en un "punchingball" a frapper le plus fort possible pour obtenir un score.
Liste des composants
- paquet de cotons
- deux petites planches de bois
- Carte Arduino nano
- Ecran Grove-LCD RGB Backlight
- 4 Capteurs piezo électrique
- 1 bouton poussoir
- plaque labdec
- fils électriques
- Mon gros coup de poing
sources
Code
int maxi = 0; // variable du high score
int prev = 0; // variable du score actuel
bool acq = true;
bool dcyState = false;
#include <Wire.h>
#include "rgb_lcd.h"
rgb_lcd lcd;
const int colorR = 50; //definition de la couleur de fond de l'écran lcd (ici du gris)
const int colorG = 50;
const int colorB = 50;
void setup() {
pinMode(A0, INPUT); //piezo 1
pinMode(A1, INPUT); //piezo 2
pinMode(A2, INPUT); //piezo 3
pinMode(A3, INPUT); //piezo 4
pinMode(2, INPUT); //bouton poussoir
Serial.begin(9600);
lcd.begin(16, 2);
lcd.setRGB(colorR, colorG, colorB);
}
void loop()
{
dcyState = digitalRead(2); // état du bouton poussoir (1 si appuyé, 0 si non appuyé)
//Serial.println(dcyState);
if (dcyState == 0) // si le bouton n'est pas en cours d'appuie
{
int in0 = analogRead(A0);
int in1 = analogRead(A1);
int in2 = analogRead(A2);
int in3 = analogRead(A3);
int in=(in0+in1+in2+in3)/4; // on calcule le score moyen obtenu par les 4 capteurs
in = map(in,0,1023,0,999); // on convertit un score allant de 0 à 1023 en un code allant de 0 à 999.
if (in > prev)
{
if (in > maxi)
{
maxi = in; // Si le meilleur score est battu, on le remplace par le score actuel
}
prev = in;
Serial.println(prev);
}
}
else
{
prev=0; // si le bouton est appuyé, le précedent score est remis à 0
Serial.println(prev);
}
if (prev<10) // condition pour éviter d'avoir du bruit dans le résultat. Si il est inférieur à 10, l'écran affiche 0
{
lcd.setCursor(0,0);
lcd.print("your score:");
lcd.setCursor(11,0); // placement à la douzième colomne de la preière ligne (après your score)
lcd.print("0 ");
}
else // affichage à l'écran des scores
{
lcd.setCursor(0,0); // placement à la première colomne de la preière ligne
lcd.print("your score:");
lcd.print(prev);
lcd.setCursor(0,1); // placement à la première colomne de la deuxième ligne
lcd.print("high score:");
lcd.print(maxi);
}
}
