Airsoft Krispies

Vous souhaitez réagir à ce message ? Créez un compte en quelques clics ou connectez-vous pour continuer.
Airsoft Krispies

Bonjour à tous et bienvenue

-48%
Le deal à ne pas rater :
Philips Hue Pack Decouverte 2024 : lightstrip 3M + ampoules E27 X2 + ...
119 € 229 €
Voir le deal

+8
obelix21
droopaille
blevanaks
ptimaicosto
rbs
nosouci
eyeshield79
Krispies
12 participants

    Checkpoint avec Arduino l'étude..

    pic-pac
    pic-pac
    ecrou or
    ecrou or


    Messages : 663
    Date d'inscription : 20/06/2011
    Age : 43
    Localisation : Issoire (63)

    Checkpoint avec Arduino l'étude.. - Page 5 Empty Re: Checkpoint avec Arduino l'étude..

    Message par pic-pac Lun 10 Mar - 21:04

    de rien c’était 2 minutes de plus lol
    pic-pac
    pic-pac
    ecrou or
    ecrou or


    Messages : 663
    Date d'inscription : 20/06/2011
    Age : 43
    Localisation : Issoire (63)

    Checkpoint avec Arduino l'étude.. - Page 5 Empty Re: Checkpoint avec Arduino l'étude..

    Message par pic-pac Mar 11 Mar - 15:48

    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.

    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
    droopaille
    boulon platine
    boulon platine


    Messages : 2621
    Date d'inscription : 03/04/2011
    Age : 49
    Localisation : Vitré (35)

    Checkpoint avec Arduino l'étude.. - Page 5 Empty Re: Checkpoint avec Arduino l'étude..

    Message par droopaille Mar 11 Mar - 19:07

    attend, attend, est ce que tu as fait la barre de progression qui correspond au temps d'appui ?


    _________________
    Toutes mes créations
    pic-pac
    pic-pac
    ecrou or
    ecrou or


    Messages : 663
    Date d'inscription : 20/06/2011
    Age : 43
    Localisation : Issoire (63)

    Checkpoint avec Arduino l'étude.. - Page 5 Empty Re: Checkpoint avec Arduino l'étude..

    Message par pic-pac Mar 11 Mar - 19:38

    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
    droopaille
    droopaille
    boulon platine
    boulon platine


    Messages : 2621
    Date d'inscription : 03/04/2011
    Age : 49
    Localisation : Vitré (35)

    Checkpoint avec Arduino l'étude.. - Page 5 Empty Re: Checkpoint avec Arduino l'étude..

    Message par droopaille Mar 11 Mar - 20:43

    lol
    oué c'est po bon ça


    _________________
    Toutes mes créations
    droopaille
    droopaille
    boulon platine
    boulon platine


    Messages : 2621
    Date d'inscription : 03/04/2011
    Age : 49
    Localisation : Vitré (35)

    Checkpoint avec Arduino l'étude.. - Page 5 Empty Re: Checkpoint avec Arduino l'étude..

    Message par droopaille Mar 11 Mar - 22:35

    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)


    _________________
    Toutes mes créations
    pic-pac
    pic-pac
    ecrou or
    ecrou or


    Messages : 663
    Date d'inscription : 20/06/2011
    Age : 43
    Localisation : Issoire (63)

    Checkpoint avec Arduino l'étude.. - Page 5 Empty Re: Checkpoint avec Arduino l'étude..

    Message par pic-pac Mar 11 Mar - 22:53

    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.
    droopaille
    droopaille
    boulon platine
    boulon platine


    Messages : 2621
    Date d'inscription : 03/04/2011
    Age : 49
    Localisation : Vitré (35)

    Checkpoint avec Arduino l'étude.. - Page 5 Empty Re: Checkpoint avec Arduino l'étude..

    Message par droopaille Mar 11 Mar - 23:09

    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



    _________________
    Toutes mes créations
    pic-pac
    pic-pac
    ecrou or
    ecrou or


    Messages : 663
    Date d'inscription : 20/06/2011
    Age : 43
    Localisation : Issoire (63)

    Checkpoint avec Arduino l'étude.. - Page 5 Empty Re: Checkpoint avec Arduino l'étude..

    Message par pic-pac Mar 11 Mar - 23:32

    Ouf j'ai cru que j'allais me faire engueuler lol
    droopaille
    droopaille
    boulon platine
    boulon platine


    Messages : 2621
    Date d'inscription : 03/04/2011
    Age : 49
    Localisation : Vitré (35)

    Checkpoint avec Arduino l'étude.. - Page 5 Empty Re: Checkpoint avec Arduino l'étude..

    Message par droopaille Mer 12 Mar - 12:47

    lol
    j'aurais juste appelé le 2ème mode ultimate car il faut vraiment ramer pour gagner


    _________________
    Toutes mes créations
    pic-pac
    pic-pac
    ecrou or
    ecrou or


    Messages : 663
    Date d'inscription : 20/06/2011
    Age : 43
    Localisation : Issoire (63)

    Checkpoint avec Arduino l'étude.. - Page 5 Empty Re: Checkpoint avec Arduino l'étude..

    Message par pic-pac Mer 12 Mar - 14:29

    Oui j'ai mis RAZ pour montrer que ça remet a zero a chaque fois
    droopaille
    droopaille
    boulon platine
    boulon platine


    Messages : 2621
    Date d'inscription : 03/04/2011
    Age : 49
    Localisation : Vitré (35)

    Checkpoint avec Arduino l'étude.. - Page 5 Empty Re: Checkpoint avec Arduino l'étude..

    Message par droopaille Mer 12 Mar - 19:39

    tu les as choppé où tes boutons poussoirs, y sont chouettes
    c'est un modèle à visser en façade ?


    _________________
    Toutes mes créations
    pic-pac
    pic-pac
    ecrou or
    ecrou or


    Messages : 663
    Date d'inscription : 20/06/2011
    Age : 43
    Localisation : Issoire (63)

    Checkpoint avec Arduino l'étude.. - Page 5 Empty Re: Checkpoint avec Arduino l'étude..

    Message par pic-pac Mer 12 Mar - 22:12

    obelix21
    obelix21
    ecrou argent
    ecrou argent


    Messages : 361
    Date d'inscription : 06/05/2013

    Checkpoint avec Arduino l'étude.. - Page 5 Empty Re: Checkpoint avec Arduino l'étude..

    Message par obelix21 Lun 28 Avr - 20:19

    j'ai voulu voir si l'arduino pouvait alimenter 2x 1602, juste par curiosité.

    pas de soucis, il bronche pas.

    Checkpoint avec Arduino l'étude.. - Page 5 00215

    Checkpoint avec Arduino l'étude.. - Page 5 00116
    pic-pac
    pic-pac
    ecrou or
    ecrou or


    Messages : 663
    Date d'inscription : 20/06/2011
    Age : 43
    Localisation : Issoire (63)

    Checkpoint avec Arduino l'étude.. - Page 5 Empty Re: Checkpoint avec Arduino l'étude..

    Message par pic-pac Lun 28 Avr - 22:17

    Oula que va tu nous preparer avec ça???
    droopaille
    droopaille
    boulon platine
    boulon platine


    Messages : 2621
    Date d'inscription : 03/04/2011
    Age : 49
    Localisation : Vitré (35)

    Checkpoint avec Arduino l'étude.. - Page 5 Empty Re: Checkpoint avec Arduino l'étude..

    Message par droopaille Lun 28 Avr - 22:58

    Un Touché Coulé, lol


    _________________
    Toutes mes créations
    obelix21
    obelix21
    ecrou argent
    ecrou argent


    Messages : 361
    Date d'inscription : 06/05/2013

    Checkpoint avec Arduino l'étude.. - Page 5 Empty Re: Checkpoint avec Arduino l'étude..

    Message par obelix21 Lun 28 Avr - 23:36

    rien, je test pour voir  cheers 

    Contenu sponsorisé


    Checkpoint avec Arduino l'étude.. - Page 5 Empty Re: Checkpoint avec Arduino l'étude..

    Message par Contenu sponsorisé


      La date/heure actuelle est Jeu 28 Nov - 5:55