Salut les amis,
Donc voila j'aurais besoin d'un peu d'aide concernant mon projet Laser Game Maison
Voici mon programme:
#include <LiquidCrystal.h> //ajout de la library LCD
LiquidCrystal lcd(12,11,4,5,6,7); //liaison 4 bits de données
int LED = 13;
int LED1 = 8;
int LED2 = 9;
int LED3 = 10;
int Afficheur = A1;
const String pseudo = "TitoGam3";
// Fonction setup(), appelée au démarrage de la carte Arduino
void setup()
{
// Initialise la communication avec le PC
Serial.begin(9600);
lcd.begin(16, 2);
lcd.setCursor(0,0);
lcd.print(pseudo);
pinMode(LED,OUTPUT); //on définie le pin de sortie "LED" pin 2 du Arduino
pinMode(LED1,OUTPUT);
pinMode(LED2,OUTPUT);
pinMode(LED3,OUTPUT);
pinMode(Afficheur,OUTPUT);
}
// Fonction loop(), appelée continuellement en boucle tant que la carte Arduino est alimentée
void loop()
{
// Mesure la tension sur la broche A0
int cibleAtteinte = analogRead(A0);
// Envoi la mesure au PC pour affichage
Serial.println(cibleAtteinte);
if(cibleAtteinte>900) // si la cible à été touchée
{
clignote(500,3000); // clignote avec 0.5s d'interval pendant 3s
clignote(100,3000); // clignote avec 0.1s d'interval pendant 10s
clignote(100,4000);
}
}
// un appel à cette fonction fera clignoter la led pendant "temps" temps (en millisecondes)
// l'interval de temps entre la diode allumée et éteinte est spécifié par "interval" (en millisecondes)
void clignote(unsigned int interval, unsigned int temps)
{
unsigned long debut_clignotement = millis(); // le temps (en ms) auquel on commence à clignoter
while(millis() - debut_clignotement < temps) // tant que le temps spécifié en paramètre ne s'est pas écoulé, on clignote à la vitesse spécifiée en paramètre
{
digitalWrite(LED,HIGH);
digitalWrite(LED1,HIGH);
digitalWrite(LED2,HIGH);
digitalWrite(LED3,HIGH);
delay(interval);
digitalWrite(LED,LOW);
digitalWrite(LED1,LOW);
digitalWrite(LED2,LOW);
digitalWrite(LED3,LOW);
digitalWrite(LED,HIGH);
delay(100);
digitalWrite(LED,LOW);
digitalWrite(LED1,HIGH);
delay(100);
digitalWrite(LED1,LOW);
digitalWrite(LED2,HIGH);
delay(100);
digitalWrite(LED2,LOW);
digitalWrite(LED3,HIGH);
delay(100);
digitalWrite(LED3,LOW);
delay(interval);
}
}
Ce que j'aimerais, c'est que lorsque cibleAtteinte est supérieur à 900, alors ont allument les LED ce qui est déjà le cas donc pas de soucis, mes je voudrais également que mon afficheur affiche le score du joueur.
l'idée est de commencer avec 10.000 point et chaque fois que la cible est touche alors ont décrémente de 500 point arriver à zéro on affiche Game Over et pour ça je galère malgré mes heures d’effort.