merci beaucoup,
Sinon , a la fin de mon programme j'aimerais tout stopper et juste afficher sur le lcd "FINI" et le (totaltouches) une variable.
Comment faire ?
const int Pushbutton = 4; //bouton-poussoir connecté à la broche D4
const int laser = 3; //LED connectée à la broche D7
int value = 0; // Variable pour lire l'état du bouton-poussoir
long minutes = 0;
long secondes = 0;
int sensorPin = A0;
int sensorPin1 = A1;
int sensorPin2 = A2;
int sensorPin3 = A3;
int sensorPin4 = A4;
int sensorPin5 = A5;
int sensorPin6 = A6;
int sensorPin7 = A7;
int sensorValue = 0;
int a = 30;
int totaltouches = 0;
#include <LiquidCrystal.h>
LiquidCrystal lcd(7, 8, 9, 10, 11, 12);
void setup() {
Serial.begin (9600);
pinMode (laser, OUTPUT);
pinMode (Pushbutton, INPUT);
pinMode(sensorPin, INPUT);
pinMode(sensorPin1, INPUT);
pinMode(sensorPin2, INPUT);
pinMode(sensorPin3, INPUT);
pinMode(sensorPin4, INPUT);
pinMode(sensorPin5, INPUT);
pinMode(sensorPin6, INPUT);
pinMode(sensorPin7, INPUT);
pinMode(6, OUTPUT);
pinMode(5, OUTPUT);
pinMode(2, OUTPUT); /////vibreur
lcd.begin(16, 2);
lcd.print("tirs restants");
lcd.setCursor(0, 1);
lcd.print(a);
lcd.setCursor(11, 1);
lcd.print("00");
}
void loop() {
secondes = millis() / 1000; //convect millisecondes en secondes
minutes = secondes / 60; //convertir secondes en minutes
secondes = secondes - (minutes * 60);
lcd.setCursor(14, 1);
lcd.print(secondes);
lcd.setCursor(11, 1);
lcd.print(minutes);
lcd.setCursor(13, 1);
lcd.print(":");
int totaltemps;
String stringOne = " nb touche: ";
String stringThree = stringOne + totaltouches;
totaltemps = minutes * 60 + secondes;
if (totaltemps == 60)
{
lcd.clear();
lcd.setCursor(1, 0);
lcd.print("***** Fini *****");
lcd.setCursor(0, 1);
lcd.print(stringThree);
}
///////////BOOUTON//////////////
value = digitalRead(Pushbutton); //Lire l'état du bouton-poussoir
if (value == LOW) //Si le bouton est appuyé
{
delay(10); //10 milliseconds anti-rebond
if (value == LOW) //vérifier encore so le bouton est toujours appuyé
{
digitalWrite(laser, HIGH); //LED est allumée
delay(400); //pause de 5 Second
a = a - 1;
lcd.setCursor(0, 1);
lcd.print(" ");
lcd.setCursor(0, 1);
lcd.print(a);
digitalWrite(laser, LOW); //LED est éteinte
}
}
//////
if (a == 0) {
lcd.clear();
lcd.print("** recharge **");
digitalWrite(6, HIGH);
digitalWrite(5, HIGH);
delay(400);
digitalWrite(6, LOW);
delay(400);
digitalWrite(6, HIGH);
delay(400);
digitalWrite(6, LOW);
delay(400);
digitalWrite(6, HIGH);
delay(400);
digitalWrite(5, HIGH);
delay(400);
digitalWrite(6, LOW);
delay(400);
digitalWrite(5, HIGH);
delay(400);
digitalWrite(6, LOW);
delay(400);
digitalWrite(5, HIGH);
delay(400);
digitalWrite(6, LOW);
delay(400);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
lcd.clear();
a = 20;
lcd.print("tirs restants");
lcd.setCursor(0, 1);
lcd.print(a);
}
////////////compteur/////////////
if (analogRead(sensorPin) >= 90 || analogRead(sensorPin1) >= 90 || analogRead(sensorPin2) >= 90 || analogRead(sensorPin3) >= 90 || analogRead(sensorPin4) >= 90 || analogRead(sensorPin5) >= 90 || analogRead(sensorPin6) >= 90 )
{
delay(20);
value = HIGH;
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(2, HIGH);
totaltouches = totaltouches + 1;
lcd.setCursor(0, 0);
lcd.print("on vous a tuer !");
lcd.setCursor(0, 1);
lcd.print(" 7");
delay(1000);
digitalWrite(2, LOW);
lcd.print(" ");
lcd.setCursor(0, 0);
lcd.print("on vous a tuer !");
lcd.setCursor(0, 1);
lcd.print(" 6");
delay(1000);
digitalWrite(2, HIGH);
lcd.print(" ");
lcd.setCursor(0, 0);
lcd.print("on vous a tuer !");
lcd.setCursor(0, 1);
lcd.print(" 5");
delay(1000);
digitalWrite(2, LOW);
lcd.print(" ");
lcd.setCursor(0, 0);
lcd.print("on vous a tuer !");
lcd.setCursor(0, 1);
lcd.print(" 4");
delay(1000);
digitalWrite(2, HIGH);
lcd.print(" ");
lcd.setCursor(0, 0);
lcd.print("on vous a tuer !");
lcd.setCursor(0, 1);
lcd.print(" 3");
delay(1000);
digitalWrite(2, LOW);
lcd.print(" ");
lcd.setCursor(0, 0);
lcd.print("on vous a tuer !");
lcd.setCursor(0, 1);
lcd.print(" 2");
delay(1000);
digitalWrite(2, HIGH);
lcd.print(" ");
lcd.setCursor(0, 0);
lcd.print("on vous a tuer !");
lcd.setCursor(0, 1);
lcd.print(" 1");
delay(1000);
lcd.clear();
digitalWrite(2, HIGH);
delay(100);
digitalWrite(2, LOW);
delay(100);
digitalWrite(2, HIGH);
delay(100);
digitalWrite(2, LOW);
delay(100);
digitalWrite(2, HIGH);
delay(100);
digitalWrite(5, LOW);
digitalWrite(6, LOW);
digitalWrite(2, LOW);
lcd.print("tirs restants");
lcd.setCursor(0, 1);
lcd.print(a);
}
}