de rien c’était 2 minutes de plus lol
+8
obelix21
droopaille
blevanaks
ptimaicosto
rbs
nosouci
eyeshield79
Krispies
12 participants
Checkpoint avec Arduino l'étude..
pic-pac- ecrou or
- Messages : 663
Date d'inscription : 20/06/2011
Age : 43
Localisation : Issoire (63)
- Message n°101
Re: Checkpoint avec Arduino l'étude..
pic-pac- ecrou or
- Messages : 663
Date d'inscription : 20/06/2011
Age : 43
Localisation : Issoire (63)
- Message n°102
Re: Checkpoint avec Arduino l'étude..
mise à jour du code, j'ai réussi à pouvoir augmenter le temps d’appui sur le bouton en mode compteur, pour faciliter les choses je remets le code complet.
voila amusez vous bien.
ps: DROOP J'AI GAGNÉ!!!!!
maintenant je vais pouvoir le mettre en tuto et plus en "projet de réalisation"
voila amusez vous bien.
- Code:
#include <LiquidCrystal.h>
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(8, 9, 10, 11, 12, 13);
// set up the LCD's number of columns and rows:
const int menuboutton = 4;
const int buttonred = 3;
const int buttonblue = 2;
const int buttongreen = 1;
const int redledPin = 7; // the number of the LED pin
const int greenledPin = 6; // the number of the LED pin
const int blueledPin = 5; // the number of the LED pin
const int speakerPin = 0;
int buttonStatered = 0; // variable for reading the pushbutton status
int buttonStategreen = 0; // variable for reading the pushbutton status
int buttonStateblue = 0; // variable for reading the pushbutton status
int bouttonmenu = 0;
int bouttonblue = 0;
int bouttonred = 0;
int bouttongreen = 0;
int dernier_etat_buttonStatered = LOW;
int dernier_etat_buttonStateblue = LOW;
int dernier_etat_buttonStategreen = LOW;
int temps_defini = 3000;
int redsecond=30, redminute=0, redhour=0; // declare time variables
int redmillis = 0;
int greensecond=30, greenminute=0, greenhour=0; // declare time variables
int greenmillis = 0;
int bluesecond=30, blueminute=0, bluehour=0; // declare time variables
int bluemillis = 0;
int secondRAZGREEN=30, minuteRAZGREEN=0, hourRAZGREEN=0, millisRAZGREEN= 0; // declare time variables
int secondRAZRED=30, minuteRAZRED=0, hourRAZRED=0, millisRAZRED=0;
int secondRAZBLUE=30, minuteRAZBLUE=0, hourRAZBLUE=0, millisRAZBLUE=0;
int second=30, minute=0, hour=0;
int typejeu = 0;
int redmillis1 = 0;
int redsecond1 = 0;
int redminute1 = 0;
int redhour1 = 0;
int bluemillis1 = 0;
int bluesecond1 = 0;
int blueminute1 = 0;
int bluehour1 = 0;
boolean variable1 = false;
boolean variable2 = false;
boolean variable3 = false;
boolean ledStatered = false;
boolean ledStategreen = false;
boolean ledStateblue = false;
unsigned long Timeold=0;
unsigned long debut_buttonStatered;
unsigned long debut_buttonStateblue;
unsigned long debut_buttonStategreen;
static unsigned long lastTick = 0;
void setup() {
pinMode(menuboutton, INPUT);
pinMode(buttonred, INPUT);
pinMode(buttonblue, INPUT);
pinMode(buttongreen, INPUT);
pinMode(speakerPin, OUTPUT);
digitalWrite(redledPin, LOW);
digitalWrite(greenledPin, LOW);
digitalWrite(blueledPin, LOW);
buttonStatered = digitalRead(buttonred);
buttonStategreen = digitalRead(buttongreen);
buttonStateblue = digitalRead(buttonblue);
bouttonmenu = digitalRead(menuboutton);
lcd.begin(16, 2);
lcd.clear();
lcd.setCursor(2, 0 );
lcd.print( "Base Airsoft" );
lcd.setCursor( 3, 1 );
lcd.print( "GOOD GAME" );
delay(2000);
lcd.setCursor( 2, 0 );
lcd.print( "Base Airsoft" );
lcd.setCursor( 3, 1 );
lcd.print( "BY PIC-PAC" );
delay(2000);
lcd.clear();
lcd.setCursor( 2, 0 );
lcd.print("Mode Standard");
lcd.setCursor(1, 1);
lcd.print("Appuyez bouton");
}
void loop() {
suite();
}
void suite(){
buttonStatered = digitalRead(buttonred);
buttonStategreen = digitalRead(buttongreen);
buttonStateblue = digitalRead(buttonblue);
bouttonmenu = digitalRead(menuboutton);
if (bouttonmenu == HIGH) {
menu();
}
else if (typejeu == 1){
RAZ();
}
else if (typejeu == 2){
compteur();
}
else if (typejeu == 3){
time();
}
else if (typejeu == 4){
bouton();
}
else {
normal();
}
}
void menu(){
buttonStatered = digitalRead(buttonred);
buttonStategreen = digitalRead(buttongreen);
buttonStateblue = digitalRead(buttonblue);
bouttonmenu = digitalRead(menuboutton);
if (digitalRead(menuboutton) == HIGH) {
delay(500); //on évite de sauter les menus d'un coup
lcd.clear();
lcd.setCursor( 6, 0 );
lcd.print( "MENU" );
lcd.setCursor( 2, 1 );
lcd.print("Mode Standard");
Timeold=millis();
while(millis()-Timeold<=4000)// on sort du menu si aucune action pendant 4 secondes
{
if (digitalRead(buttonblue) == HIGH){
delay(300);
lcd.clear();
lcd.setCursor( 2, 0 );
lcd.print("Mode Standard");
lcd.setCursor(1, 1);
lcd.print("Appuyez bouton");
typejeu = 0;
delay(2000);
normal();
}
if (digitalRead(menuboutton) == HIGH) {
delay(500); //on évite de sauter les menus d'un coup
lcd.clear();
lcd.setCursor( 6, 0 );
lcd.print( "MENU" );
lcd.setCursor( 4, 1 );
lcd.print("Mode RAZ");
Timeold=millis();
while(millis()-Timeold<=4000)// on sort du menu si aucune action pendant 4 secondes
{
if (digitalRead(buttonblue) == HIGH){
delay(500);
lcd.clear();
lcd.setCursor( 4, 0 );
lcd.print("Mode RAZ");
lcd.setCursor(1, 1);
lcd.print("Appuyez bouton");
delay(2000);
typejeu = 1;
lcd.setCursor(0, 1);
RAZ(); }
if (digitalRead(menuboutton) == HIGH) {
delay(500); //on évite de sauter les menus d'un coup
lcd.clear();
lcd.setCursor( 6, 0 );
lcd.print( "MENU" );
lcd.setCursor( 2, 1 );
lcd.print("Mode Compteur");
Timeold=millis();
while(millis()-Timeold<=4000)// on sort du menu si aucune action pendant 4 secondes
{
if (digitalRead(buttonblue) == HIGH){
delay(500);
lcd.clear();
lcd.setCursor( 2, 0 );
lcd.print("Mode Compteur");
lcd.setCursor(1, 1);
lcd.print("Appuyez bouton");
typejeu = 2;
delay(2000);
lcd.setCursor(0, 1);
lcd.print(" ");
compteur(); }
if (digitalRead(menuboutton) == HIGH) {
delay(500); //on évite de sauter les menus d'un coup
lcd.clear();
lcd.setCursor( 6, 0 );
lcd.print( "MENU" );
lcd.setCursor( 2, 1 );
lcd.print("Reglage Temps");
Timeold=millis();
while(millis()-Timeold<=4000)// on sort du menu si aucune action pendant 4 secondes
{
if (digitalRead(buttonblue) == HIGH){
delay(500);
lcd.clear();
lcd.setCursor( 1, 0 );
lcd.print("Reglage Temps");
lcd.setCursor(0, 1);
lcd.print("R=sec+ V=0 B=mn+");
typejeu = 3;
delay(2000);
time(); }
if (digitalRead(menuboutton) == HIGH) {
delay(500); //on évite de sauter les menus d'un coup
lcd.clear();
lcd.setCursor( 6, 0 );
lcd.print( "MENU" );
lcd.setCursor( 1, 1 );
lcd.print("Reglage Bouton");
Timeold=millis();
while(millis()-Timeold<=4000)// on sort du menu si aucune action pendant 4 secondes
{
if (digitalRead(buttonblue) == HIGH){
delay(500);
lcd.clear();
lcd.setCursor( 1, 0 );
lcd.print("Reglage Bouton");
lcd.setCursor(0, 1);
lcd.print(" R = + V = - ");
typejeu = 4;
delay(2000);
bouton(); }
if (digitalRead(menuboutton) == HIGH) {
delay(500);
menu();}
}
}
}
}
}
}
}
}
}
}
}
void bouton(){
/*lcd.setCursor(0, 1);
lcd.print(" ");
lcd.setCursor(6, 1);
lcd.print(temps_defini);*/
if (buttonStatered == HIGH) {
lcd.setCursor(0, 1);
lcd.print(" ");
delay (200);
temps_defini = temps_defini +1000 ;
lcd.setCursor(5, 1);
lcd.print(temps_defini/1000);
lcd.print(" Sec");
}
if (buttonStategreen == HIGH) {
lcd.setCursor(0, 1);
lcd.print(" ");
delay (200);
temps_defini = temps_defini -1000 ;
lcd.setCursor(5, 1);
lcd.print(temps_defini/1000);
lcd.print(" Sec");
}
}
void time(){
if (buttonStateblue == HIGH) {
lcd.setCursor(0, 1);
lcd.print(" ");
delay (200);
minute++;
lcd.setCursor(4, 1);
if (hour <=9) {
lcd.print("0");
}
lcd.print(redhour, DEC); // the hour, sent to the screen in decimal format
lcd.print(":"); // a colon between the hour and the minute
if (minute <=9) {
lcd.print("0");
}
lcd.print(minute, DEC); // the minute, sent to the screen in decimal format
lcd.print(":"); // a colon between the minute and the second
if (second <=9) {
lcd.print("0");
}
lcd.print(second, DEC); // the second, sent to the screen in decimal format
if (minute >= 59) {
if (minute = 59) {
hour++;
minute = 0;
}
}
}
if (buttonStatered == HIGH) {
lcd.setCursor(0, 1);
lcd.print(" ");
static unsigned long millis = 30;
millis++;
lcd.setCursor(4, 1);
if (hour <=9) {
lcd.print("0");
}
lcd.print(redhour, DEC); // the hour, sent to the screen in decimal format
lcd.print(":"); // a colon between the hour and the minute
if (minute <=9) {
lcd.print("0");
}
lcd.print(minute, DEC); // the minute, sent to the screen in decimal format
lcd.print(":"); // a colon between the minute and the second
if (second <=9) {
lcd.print("0");
}
lcd.print(second, DEC); // the second, sent to the screen in decimal format
if (millis >= 30) {
if (millis = 30){
second++;
millis = 0;
}
}
if (second >= 59) {
if (second = 59) {
minute++;
second = 0;
}
}
if (minute >= 59) {
if (minute = 59) {
hour++;
minute = 0;
}
}
}
if (buttonStategreen == HIGH) {
lcd.setCursor(0, 1);
lcd.print(" ");
static unsigned long millis = 30;
millis--;
lcd.setCursor(4, 1);
if (hour <=9) {
lcd.print("0");
}
lcd.print(hour, DEC); // the hour, sent to the screen in decimal format
lcd.print(":"); // a colon between the hour and the minute
if (minute <=9) {
lcd.print("0");
}
lcd.print(minute, DEC); // the minute, sent to the screen in decimal format
lcd.print(":"); // a colon between the minute and the second
if (second <=9) {
lcd.print("0");
}
lcd.print(second, DEC); // the second, sent to the screen in decimal format
if (millis >= 0) {
if (millis = 0){
second--;
millis = 30;
}
}
if (second >= 0) {
if (second = 0) {
minute--;
second = 59;
}
}
if (minute >= 0) {
if (minute = 0) {
hour--;
minute = 59;
}
}
}
bluesecond = second;
blueminute = minute;
bluehour = hour;
redsecond = second;
redminute = minute;
redhour = hour;
greensecond = second;
greenminute = minute;
greenhour = hour;
secondRAZRED = second;
minuteRAZRED = minute;
hourRAZRED = hour;
secondRAZGREEN = second;
minuteRAZGREEN = minute;
hourRAZGREEN = hour;
secondRAZBLUE = second;
minuteRAZBLUE = minute;
hourRAZBLUE = hour;
}
void normal(){
// if it is, the buttonStatered is HIGH:
while (buttonStatered == HIGH) {
buttonStatered = digitalRead(buttonred);
digitalWrite(redledPin, HIGH);
digitalWrite(greenledPin, LOW);
digitalWrite(blueledPin, LOW);
lcd.clear();
lcd.setCursor(7, 0);
lcd.print("RED");
ledStatered = true;
ledStategreen = false;
ledStateblue = false;
}
if (ledStatered == true){
if (redmillis > 0) {
redmillis--;
}
// decrement one second every 1000 milliseconds
if (redsecond > 0) {
if (millis() - lastTick >= 1000) {
lastTick = millis();
redsecond--;
redmillis = 9;
}
}
// decrement one minute every 60 seconds
if (redminute > 0) {
if (redsecond <= 0) {
redminute--;
redsecond = 59; // reset seconds to 59
}
}
// decrement one hour every 60 minutes
if (redhour > 0) {
if (redminute <= 0) {
redhour--;
redminute = 59; // reset minutes to 60
}//closes if
}//closes if
lcd.setCursor(4, 1);
if (redhour <=9) {
lcd.print("0");
}
lcd.print(redhour, DEC); // the hour, sent to the screen in decimal format
lcd.print(":"); // a colon between the hour and the minute
if (redminute <=9) {
lcd.print("0");
}
lcd.print(redminute, DEC); // the minute, sent to the screen in decimal format
lcd.print(":"); // a colon between the minute and the second
if (redsecond <=9) {
lcd.print("0");
}
lcd.print(redsecond, DEC); // the second, sent to the screen in decimal format
lcd.print(" ");
if (redsecond == 0 && redminute == 0 && redhour == 0) {
lcd.clear();
lcd.setCursor(7, 0);
lcd.print("RED");
lcd.setCursor(4, 1);
lcd.print("VICTOIRE");
digitalWrite(speakerPin, HIGH);//turn on buzzer
delay(3000);//wait 3 seconds
digitalWrite(speakerPin, LOW);//turn off buzzer
delay(3000);//wait 3 seconds
}
}
while (buttonStategreen == HIGH) {
// turn LED on:
digitalWrite(redledPin, LOW);
digitalWrite(greenledPin, HIGH);
digitalWrite(blueledPin, LOW);
lcd.clear();
lcd.setCursor(6, 0);
lcd.print("GREEN");
buttonStategreen = digitalRead(buttongreen);
ledStatered = false;
ledStategreen = true;
ledStateblue = false;
}
if (ledStategreen == true){
if (greenmillis > 0) {
greenmillis--;
}
// decrement one second
if (greensecond > 0) {
if (millis() - lastTick >= 1000) {
lastTick = millis();
greensecond--;
greenmillis = 9;
}
}
// decrement one minute every 60 seconds
if (greenminute > 0) {
if (greensecond <= 0) {
greenminute--;
greensecond = 59; // reset seconds to 60
}
}
// decrement one hour every 60 minutes
if (greenhour > 0) {
if (greenminute <= 0) {
greenhour--;
greenminute = 59; // reset minutes to 60
}//closes if
}//closes if
lcd.setCursor(4, 1);
if (greenhour <=9) {
lcd.print("0");
}
lcd.print(greenhour, DEC); // the hour, sent to the screen in decimal format
lcd.print(":"); // a colon between the hour and the minute
if (greenminute <=9) {
lcd.print("0");
}
lcd.print(greenminute, DEC); // the minute, sent to the screen in decimal format
lcd.print(":"); // a colon between the minute and the second
if (greensecond <=9) {
lcd.print("0");
}lcd.print(greensecond, DEC); // the second, sent to the screen in decimal format
lcd.print(" ");
if (greensecond == 0 && greenminute == 0 && greenhour == 0) {
lcd.clear();
lcd.setCursor(6, 0);
lcd.print("GREEN");
lcd.setCursor(4, 1);
lcd.print("VICTOIRE");
digitalWrite(speakerPin, HIGH);//turn on buzzer
delay(3000);//wait 3 seconds
digitalWrite(speakerPin, LOW);//turn off buzzer
delay(3000);//wait 3 seconds
}
}
while (buttonStateblue == HIGH) {
// turn LED on:
digitalWrite(redledPin, LOW);
digitalWrite(greenledPin, LOW);
digitalWrite(blueledPin, HIGH);
lcd.clear();
lcd.setCursor(6, 0);
lcd.print("BLUE");
buttonStateblue = digitalRead(buttonblue);
ledStatered = false;
ledStategreen = false;
ledStateblue = true;
}
if (ledStateblue == true){
if (bluemillis > 0) {
bluemillis--;
}
// decrement one second every 1000 milliseconds
if (bluesecond > 0) {
if (millis() - lastTick >= 1000) {
lastTick = millis();
bluesecond--;
bluemillis = 9;
}
}
// decrement one minute every 60 seconds
if (blueminute > 0) {
if (bluesecond <= 0) {
blueminute--;
bluesecond = 59; // reset seconds to 60
}
}
// decrement one hour every 60 minutes
if (bluehour > 0) {
if (blueminute <= 0) {
bluehour--;
blueminute = 59; // reset minutes to 60
}//closes if
}//closes if
lcd.setCursor(4, 1);
if (bluehour <=9) {
lcd.print("0");
}
lcd.print(bluehour, DEC); // the hour, sent to the screen in decimal format
lcd.print(":"); // a colon between the hour and the minute
if (blueminute <=9) {
lcd.print("0");
}
lcd.print(blueminute, DEC); // the minute, sent to the screen in decimal format
lcd.print(":"); // a colon between the minute and the second
if (bluesecond <=9) {
lcd.print("0");
}
lcd.print(bluesecond, DEC); // the second, sent to the screen in decimal format
if (bluesecond == 0 && blueminute == 0 && bluehour == 0) {
lcd.clear();
lcd.setCursor(7, 0);
lcd.print("BLUE");
lcd.setCursor(4, 1);
lcd.print("VICTOIRE");
digitalWrite(speakerPin, HIGH);//turn on buzzer
delay(3000);//wait 3 seconds
digitalWrite(speakerPin, LOW);//turn off buzzer
delay(3000);//wait 3 seconds
}
}
}
void RAZ(){
// if it is, the buttonStatered is HIGH:
while (buttonStatered == HIGH) {
buttonStatered = digitalRead(buttonred);
digitalWrite(redledPin, HIGH);
digitalWrite(greenledPin, LOW);
digitalWrite(blueledPin, LOW);
lcd.clear();
lcd.setCursor(7, 0);
lcd.print("RED");
ledStatered = true;
ledStategreen = false;
ledStateblue = false;
}
if (ledStatered == true){
secondRAZGREEN = second;
secondRAZBLUE = second;
minuteRAZGREEN = minute;
minuteRAZBLUE = minute;
hourRAZGREEN = hour;
hourRAZBLUE = hour;
// decrement one second every 1000 milliseconds
if (secondRAZRED > 0) {
if (millis() - lastTick >= 1000) {
lastTick = millis();
secondRAZRED--;
//millisRAZRED = 9;
}
}
// decrement one minute every 60 seconds
if (minuteRAZRED > 0) {
if (secondRAZRED <= 0) {
minuteRAZRED--;
secondRAZRED = 59; // reset seconds to 59
}
}
// decrement one hour every 60 minutes
if (hourRAZRED > 0) {
if (minuteRAZRED <= 0) {
hourRAZRED--;
minuteRAZRED = 59; // reset minutes to 60
}//closes if
}//closes if
lcd.setCursor(4, 1);
if (hourRAZRED <=9) {
lcd.print("0");
}
lcd.print(hourRAZRED, DEC); // the hour, sent to the screen in decimal format
lcd.print(":"); // a colon between the hour and the minute
if (minuteRAZRED <=9) {
lcd.print("0");
}
lcd.print(minuteRAZRED, DEC); // the minute, sent to the screen in decimal format
lcd.print(":"); // a colon between the minute and the second
if (secondRAZRED <=9) {
lcd.print("0");
}
lcd.print(secondRAZRED, DEC); // the second, sent to the screen in decimal format
if (secondRAZRED == 0 && minuteRAZRED == 0 && hourRAZRED == 0) {
lcd.clear();
lcd.setCursor(7, 0);
lcd.print("RED");
lcd.setCursor(4, 1);
lcd.print("VICTOIRE");
digitalWrite(speakerPin, HIGH);//turn on buzzer
delay(3000);//wait 3 seconds
digitalWrite(speakerPin, LOW);//turn off buzzer
delay(3000);//wait 3 seconds
}
}
while (buttonStategreen == HIGH) {
// turn LED on:
digitalWrite(redledPin, LOW);
digitalWrite(greenledPin, HIGH);
digitalWrite(blueledPin, LOW);
lcd.clear();
lcd.setCursor(6, 0);
lcd.print("GREEN");
buttonStategreen = digitalRead(buttongreen);
ledStatered = false;
ledStategreen = true;
ledStateblue = false;
}
if (ledStategreen == true){
secondRAZRED = second;
secondRAZBLUE = second;
minuteRAZRED = minute;
minuteRAZBLUE = minute;
hourRAZRED = hour;
hourRAZBLUE = hour;
// decrement one second every 1000 milliseconds
if (secondRAZGREEN > 0) {
if (millis() - lastTick >= 1000) {
lastTick = millis();
secondRAZGREEN--;
//millisRAZGREEN = 9;
}
}
// decrement one minute every 60 seconds
if (minuteRAZGREEN > 0) {
if (secondRAZGREEN <= 0) {
minuteRAZGREEN--;
secondRAZGREEN = 59; // reset seconds to 59
}
}
// decrement one hour every 60 minutes
if (hourRAZGREEN > 0) {
if (minuteRAZGREEN <= 0) {
hourRAZGREEN--;
minuteRAZGREEN = 59; // reset minutes to 60
}//closes if
}//closes if
lcd.setCursor(4, 1);
if (hourRAZGREEN <=9) {
lcd.print("0");
}
lcd.print(hourRAZGREEN, DEC); // the hour, sent to the screen in decimal format
lcd.print(":"); // a colon between the hour and the minute
if (minuteRAZGREEN <=9) {
lcd.print("0");
}
lcd.print(minuteRAZGREEN, DEC); // the minute, sent to the screen in decimal format
lcd.print(":"); // a colon between the minute and the second
if (secondRAZGREEN <=9) {
lcd.print("0");
}
lcd.print(secondRAZGREEN, DEC); // the second, sent to the screen in decimal format
if (secondRAZGREEN == 0 && minuteRAZGREEN == 0 && hourRAZGREEN == 0) {
lcd.clear();
lcd.setCursor(6, 0);
lcd.print("GREEN");
lcd.setCursor(4, 1);
lcd.print("VICTOIRE");
digitalWrite(speakerPin, HIGH);//turn on buzzer
delay(3000);//wait 3 seconds
digitalWrite(speakerPin, LOW);//turn off buzzer
delay(3000);//wait 3 seconds
}
}
while (buttonStateblue == HIGH) {
// turn LED on:
digitalWrite(redledPin, LOW);
digitalWrite(greenledPin, LOW);
digitalWrite(blueledPin, HIGH);
lcd.clear();
lcd.setCursor(6, 0);
lcd.print("BLUE");
buttonStateblue = digitalRead(buttonblue);
ledStatered = false;
ledStategreen = false;
ledStateblue = true;
}
if (ledStateblue == true){
secondRAZRED = second;
secondRAZGREEN = second;
minuteRAZRED = minute;
minuteRAZGREEN = minute;
hourRAZRED = hour;
hourRAZGREEN = hour;
// decrement one second every 1000 milliseconds
if (secondRAZBLUE > 0) {
if (millis() - lastTick >= 1000) {
lastTick = millis();
secondRAZBLUE--;
}
}
// decrement one minute every 60 seconds
if (minuteRAZBLUE > 0) {
if (secondRAZBLUE <= 0) {
minuteRAZBLUE--;
secondRAZBLUE = 59; // reset seconds to 59
}
}
// decrement one hour every 60 minutes
if (hourRAZBLUE > 0) {
if (minuteRAZBLUE <= 0) {
hourRAZBLUE--;
minuteRAZBLUE = 59; // reset minutes to 60
}//closes if
}//closes if
lcd.setCursor(4, 1);
if (hourRAZBLUE <=9) {
lcd.print("0");
}
lcd.print(hourRAZBLUE, DEC); // the hour, sent to the screen in decimal format
lcd.print(":"); // a colon between the hour and the minute
if (minuteRAZBLUE <=9) {
lcd.print("0");
}
lcd.print(minuteRAZBLUE, DEC); // the minute, sent to the screen in decimal format
lcd.print(":"); // a colon between the minute and the second
if (secondRAZBLUE <=9) {
lcd.print("0");
}
lcd.print(secondRAZBLUE, DEC); // the second, sent to the screen in decimal format
if (secondRAZBLUE == 0 && minuteRAZBLUE == 0 && hourRAZBLUE == 0) {
lcd.clear();
lcd.setCursor(7, 0);
lcd.print("BLUE");
lcd.setCursor(4, 1);
lcd.print("VICTOIRE");
digitalWrite(speakerPin, HIGH);//turn on buzzer
delay(3000);//wait 3 seconds
digitalWrite(speakerPin, LOW);//turn off buzzer
delay(3000);//wait 3 seconds
}
}
}
void compteur(){
buttonStatered = digitalRead(buttonred);
buttonStateblue = digitalRead(buttonblue);
buttonStategreen = digitalRead(buttongreen);
if (buttonStatered == HIGH && dernier_etat_buttonStatered == LOW)
{
debut_buttonStatered = millis();
digitalWrite(redledPin, HIGH);
digitalWrite(greenledPin, LOW);
digitalWrite(blueledPin, LOW);
ledStatered = false;
ledStategreen = false;
ledStateblue = false;
variable1 = true;
variable2 = false;
variable3 = false;
}
if ( variable1 == true && buttonStatered == HIGH && dernier_etat_buttonStatered == HIGH){
if ((millis() - debut_buttonStatered) >= temps_defini){
http://lcd.clear();
lcd.setCursor(0, 0);
lcd.print(" ");
lcd.setCursor(0, 0);
lcd.print("RED / BLUE");
ledStatered = true;
}
}
if (ledStatered == true){
redmillis1++;
lcd.setCursor(0, 1);
lcd.print(redhour1, DEC);
lcd.print(":");
if (redminute1 <=9) {
lcd.print("0");
}
lcd.print(redminute1, DEC);
lcd.print(":");
if (redsecond1 <=9) {
lcd.print("0");
}
lcd.print(redsecond1, DEC);
lcd.print(" ");
if (redmillis1 >= 300) {
if (redmillis1 = 300) {
redsecond1++;
redmillis1 = 0;
}
}
if (redsecond1 >= 59) {
if (redsecond1 = 59) {
redminute1++;
redsecond1 = 0;
}
}
if (redminute1 >= 59) {
if (redminute1 = 59) {
redhour1++;
redminute1 = 0;
}
}
}
dernier_etat_buttonStatered = buttonStatered;
if (buttonStateblue == HIGH && dernier_etat_buttonStateblue == LOW)
{
debut_buttonStateblue = millis();
digitalWrite(redledPin, LOW);
digitalWrite(greenledPin, LOW);
digitalWrite(blueledPin, HIGH);
ledStatered = false;
ledStategreen = false;
ledStateblue = false;
variable1 = false;
variable2 = true;
variable3 = false;
}
if ( variable2 == true && buttonStateblue == HIGH && dernier_etat_buttonStateblue == HIGH){
if ((millis() - debut_buttonStateblue) >= temps_defini){
//lcd.clear();
lcd.setCursor(0, 0);
lcd.print(" ");
lcd.setCursor(0, 0);
lcd.print("RED / BLUE");
ledStateblue = true;
}
}
if (ledStateblue == true){
bluemillis1++;
lcd.setCursor(9, 1);
lcd.print(bluehour1, DEC);
lcd.print(":");
if (blueminute1 <=9) {
lcd.print("0");
}
lcd.print(blueminute1, DEC);
lcd.print(":");
if (bluesecond1 <=9) {
lcd.print("0");
}
lcd.print(bluesecond1, DEC);
lcd.print(" ");
if (bluemillis1 >= 300) {
if (bluemillis1 = 300) {
bluesecond1++;
bluemillis1 = 0;
}
}
if (bluesecond1 >= 59) {
if (bluesecond1 = 59) {
blueminute1++;
bluesecond1= 0;
}
}
if (blueminute1 >= 60) {
if (blueminute1 = 60) {
bluehour1++;
blueminute1 = 0;
}
}
}
dernier_etat_buttonStateblue = buttonStateblue;
if (buttonStategreen == HIGH && dernier_etat_buttonStategreen == LOW)
{
debut_buttonStategreen = millis();
digitalWrite(redledPin, LOW);
digitalWrite(greenledPin, HIGH);
digitalWrite(blueledPin, LOW);
ledStatered = false;
ledStategreen = false;
ledStateblue = false;
variable1 = false;
variable2 = false;
variable3 = true;
}
if ( variable3 == true && buttonStategreen == HIGH && dernier_etat_buttonStategreen == HIGH){
if ((millis() - debut_buttonStategreen) >= temps_defini){
lcd.clear();
lcd.setCursor(7, 0);
lcd.print("RAZ");
ledStategreen = true;
}
}
if (ledStategreen == true){
redmillis1 = 0;
redsecond1 = 0;
redminute1 = 0;
redhour1 = 0;
bluemillis1 = 0;
bluesecond1 = 0;
blueminute1 = 0;
bluehour1 = 0;
}
dernier_etat_buttonStategreen = buttonStategreen;
}
ps: DROOP J'AI GAGNÉ!!!!!
maintenant je vais pouvoir le mettre en tuto et plus en "projet de réalisation"
droopaille- boulon platine
- Messages : 2621
Date d'inscription : 03/04/2011
Age : 49
Localisation : Vitré (35)
- Message n°103
Re: Checkpoint avec Arduino l'étude..
attend, attend, est ce que tu as fait la barre de progression qui correspond au temps d'appui ?
pic-pac- ecrou or
- Messages : 663
Date d'inscription : 20/06/2011
Age : 43
Localisation : Issoire (63)
- Message n°104
Re: Checkpoint avec Arduino l'étude..
lol il faut bien que je t'en laisse un peu, le problème c'est que je peux faire la barre de progression mais pas en même temps que j’appuie sur le bouton
la barre se lance après le temps d’appui sur le bouton
la barre se lance après le temps d’appui sur le bouton
droopaille- boulon platine
- Messages : 2621
Date d'inscription : 03/04/2011
Age : 49
Localisation : Vitré (35)
- Message n°105
Re: Checkpoint avec Arduino l'étude..
lol
oué c'est po bon ça
oué c'est po bon ça
droopaille- boulon platine
- Messages : 2621
Date d'inscription : 03/04/2011
Age : 49
Localisation : Vitré (35)
- Message n°106
Re: Checkpoint avec Arduino l'étude..
pic-pac a écrit:je pense que c'est ce que tu voulais.
!!!Attention si tu appuies sur le bouton "MENU" et que tu ne fais rien pendant 4 secondes il sort automatiquement du Menu!!!
en mode standard c'est les 3 équipes qui peuvent s'affronter, à chaque fois que la base change de couleur, le compteur reprend ou il s’était arrêté.
en mode RAZ c'est les 3 équipes qui peuvent s'affronter, à chaque fois que la base change de couleur, elle RAZ les autres compteurs.
en mode compteur rouge VS bleu (appuie 3 secondes pour changer) quand une équipe capture le compteur de l'autre s’arrête (un peu comme aux Échecs) et le bouton vert (appuie 3 secondes) c'est le RAZ des 2 compteurs.
pour le réglage temps R=+ V=- on appuie sur le rouge pour augmenter le temps et sur le vert (petit problème pas encore résolu) ça remet le temps à zéro.
j'ai réétudié la description et je pige pas trop pour les modes de jeu
standard ok
RAZ, quel est l’intérêt du compteur s'il est remis à zéro à chaque changement ?
compteur, quelle est la différence avec le standard à part le bouton raz, à chaque changement le(s) compteur(s) adverses s’arrête(ent)
pic-pac- ecrou or
- Messages : 663
Date d'inscription : 20/06/2011
Age : 43
Localisation : Issoire (63)
- Message n°107
Re: Checkpoint avec Arduino l'étude..
Oui a chaque changement le chrono des autres équipes s'arrêtent.
Le mode standard c'est la prise du point pendant un temps donné, celui ci peut se faire en une ou plusieurs fois, en mode RAZ c'est la prise du point mais seulement en une seule fois, si tu perds le point et que tu le récupères il faut reprendre a zéro.
Pour le mode compteur c'est au lieu de décrémenter le compteur, il s'incrémente c'est plus pour savoir qui a tenu le plus longtemps la base, après c'est pour s'ouvrir sur d'autres scénario, car rien n'oblige à faire une remise à zéro, en mode compteur j'ai pas mis de fin.
Le mode standard c'est la prise du point pendant un temps donné, celui ci peut se faire en une ou plusieurs fois, en mode RAZ c'est la prise du point mais seulement en une seule fois, si tu perds le point et que tu le récupères il faut reprendre a zéro.
Pour le mode compteur c'est au lieu de décrémenter le compteur, il s'incrémente c'est plus pour savoir qui a tenu le plus longtemps la base, après c'est pour s'ouvrir sur d'autres scénario, car rien n'oblige à faire une remise à zéro, en mode compteur j'ai pas mis de fin.
droopaille- boulon platine
- Messages : 2621
Date d'inscription : 03/04/2011
Age : 49
Localisation : Vitré (35)
- Message n°108
Re: Checkpoint avec Arduino l'étude..
ah ok, les deux premiers décrémentent, j'avais zappé ça
ok c'est clair, du coup c'est pas mal comme système
ok c'est clair, du coup c'est pas mal comme système
pic-pac- ecrou or
- Messages : 663
Date d'inscription : 20/06/2011
Age : 43
Localisation : Issoire (63)
- Message n°109
Re: Checkpoint avec Arduino l'étude..
Ouf j'ai cru que j'allais me faire engueuler lol
droopaille- boulon platine
- Messages : 2621
Date d'inscription : 03/04/2011
Age : 49
Localisation : Vitré (35)
- Message n°110
Re: Checkpoint avec Arduino l'étude..
lol
j'aurais juste appelé le 2ème mode ultimate car il faut vraiment ramer pour gagner
j'aurais juste appelé le 2ème mode ultimate car il faut vraiment ramer pour gagner
pic-pac- ecrou or
- Messages : 663
Date d'inscription : 20/06/2011
Age : 43
Localisation : Issoire (63)
- Message n°111
Re: Checkpoint avec Arduino l'étude..
Oui j'ai mis RAZ pour montrer que ça remet a zero a chaque fois
droopaille- boulon platine
- Messages : 2621
Date d'inscription : 03/04/2011
Age : 49
Localisation : Vitré (35)
- Message n°112
Re: Checkpoint avec Arduino l'étude..
tu les as choppé où tes boutons poussoirs, y sont chouettes
c'est un modèle à visser en façade ?
c'est un modèle à visser en façade ?
pic-pac- ecrou or
- Messages : 663
Date d'inscription : 20/06/2011
Age : 43
Localisation : Issoire (63)
- Message n°113
Re: Checkpoint avec Arduino l'étude..
obelix21- ecrou argent
- Messages : 361
Date d'inscription : 06/05/2013
- Message n°114
Re: Checkpoint avec Arduino l'étude..
pic-pac- ecrou or
- Messages : 663
Date d'inscription : 20/06/2011
Age : 43
Localisation : Issoire (63)
- Message n°115
Re: Checkpoint avec Arduino l'étude..
Oula que va tu nous preparer avec ça???
droopaille- boulon platine
- Messages : 2621
Date d'inscription : 03/04/2011
Age : 49
Localisation : Vitré (35)
- Message n°116
Re: Checkpoint avec Arduino l'étude..
Un Touché Coulé, lol
obelix21- ecrou argent
- Messages : 361
Date d'inscription : 06/05/2013
- Message n°117
Re: Checkpoint avec Arduino l'étude..
rien, je test pour voir