Airsoft Krispies

Bonjour à tous et bienvenue


    Checkpoint avec Arduino l'étude..

    Partagez
    avatar
    pic-pac
    ecrou or
    ecrou or

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

    Re: Checkpoint avec Arduino l'étude..

    Message par pic-pac le Lun 3 Mar - 10:05

    Moi je me sers de ce schéma

    Pour câbler mes interrupteurs.
    avatar
    pic-pac
    ecrou or
    ecrou or

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

    Re: Checkpoint avec Arduino l'étude..

    Message par pic-pac le Lun 3 Mar - 10:12

    Le mien ne bip que si je lui demande de biper, tu n'aurais pas ton buzzer a l'envers (des fois que) car certain sont monter a l'envers ils te mettent le plus sur le moins et ça expliquerais pourquoi il ne bip plus si tu montes ta sortie a high
    avatar
    obelix21
    ecrou argent
    ecrou argent

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

    Re: Checkpoint avec Arduino l'étude..

    Message par obelix21 le Lun 3 Mar - 14:12

    Je me simplifie la vie en virant le void RAZ et Void MENU qui ne servent pas à grand chose à mon avis.

    j'y vois dejà bien plus clair dans le programme.
    avatar
    pic-pac
    ecrou or
    ecrou or

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

    Re: Checkpoint avec Arduino l'étude..

    Message par pic-pac le Lun 3 Mar - 15:13

    le "void menu" c'est pour te permettre de régler le temps directement (en appuyant sur le bouton "menu" et en appuyant sur le "rouge" pour augmenter le temps et le "vert" pour diminuer le temps) sans avoir à recharge l'arduino avec le code et appeler le "void RAZ" (en appuyant sur le bouton bleu en même temps que le bouton "menu") qui est le mode de jeu de remise à zéro à chaque fois que tu appuies sur le bouton d'une équipe.
    avatar
    obelix21
    ecrou argent
    ecrou argent

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

    Re: Checkpoint avec Arduino l'étude..

    Message par obelix21 le Lun 3 Mar - 15:26

    Ben chez moi ça fait des trucs bizarre, ça ecrit des trucs et pas de retour possible, c'est pour ça que j'ai supprimé l'option,lol

    Autrement ça fonctionne du tonerre, faut que je trouve une boite maintenant.

    avatar
    pic-pac
    ecrou or
    ecrou or

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

    Re: Checkpoint avec Arduino l'étude..

    Message par pic-pac le Lun 3 Mar - 16:04

    des fois ils affichent des merdouilles pareil, mais quand tu les reset ils repartent correctement.
    normalement mon code devrait fonctionner chez toi vu qu'il fonctionne sur mes 2 boitiers et qu'il fonctionne sur celui de "blevanaks".

    !!!ATTENTION AUX CARACTÈRES ACCENTUÉES, ILS FOUTENT LA MERDE DANS L'AFFICHAGE!!!

    Tes boutons fonctionnent maintenant que tu as mis des résistances?????
    avatar
    obelix21
    ecrou argent
    ecrou argent

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

    Re: Checkpoint avec Arduino l'étude..

    Message par obelix21 le Lun 3 Mar - 16:10

    oui ça marche du tonerre avec les resistances,
    je savais que l'arduino pouvait faire du pullup, je pensais qu'il pouvait faire du pulldown ce qui m'aurait évité les resistances mais aparemment non!



    En tout cas merci Picpac pour ce super travaille de programmation que tu nous offres, c'est de la balle.



    Bientot un nouveau clone de la base Airsoft Picpac.  cheers 
    avatar
    pic-pac
    ecrou or
    ecrou or

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

    Re: Checkpoint avec Arduino l'étude..

    Message par pic-pac le Lun 3 Mar - 17:18

    as tu réglé le problème d'affichage ou pas???

    Ps je pense t'avoir ajouter sur facebook si c'est toi qui a posté la vidéo ou tes filles jouent avec tes boitiers mon nom commence par "pic" et mon prénom par "pac" lol

    je ne connaissais pas cette histoire de pull up, je passe par des résistances, j'ai toujours lu qu'il vaut mieux brancher avec que sans, j'ai une breadboard de monter je vais me faire des tests.

    pour ceux qui ne comprennent pas de quoi on parle http://sheepdogguides.com/arduino/aht0button.htm
    avatar
    droopaille
    boulon platine
    boulon platine

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

    Re: Checkpoint avec Arduino l'étude..

    Message par droopaille le Lun 3 Mar - 17:42



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

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

    Re: Checkpoint avec Arduino l'étude..

    Message par obelix21 le Lun 3 Mar - 17:56

    super ton lien, ça explique clairement le pullup
    avatar
    pic-pac
    ecrou or
    ecrou or

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

    Re: Checkpoint avec Arduino l'étude..

    Message par pic-pac le Lun 3 Mar - 18:18

    Bon lien droop c'est vrai en français c'est plus clair.
    avatar
    pic-pac
    ecrou or
    ecrou or

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

    Re: Checkpoint avec Arduino l'étude..

    Message par pic-pac le Lun 10 Mar - 0:40

    et voila je suis fier de vous présenter mon nouveau code, ce qui change, c'est qu'il y a un vrai menu, et à la demande de DROOPAILLE, j'ai ajouté une fonctionnalité.
    Fonctionnement:
    un appuie sur le bouton menu et on entre dans le MENU (jusque la normal, mais plus besoin de le maintenir comme avant), si on appuie à nouveau sur le bouton menu on passe aux autres mode de jeu ou le réglage du temps.
    pour valider le mode choisi, il suffit de valider avec un appuie sur le bouton bleu (il n'y a qu'après le réglage du temps qu'il faut réappuyer sur le bouton menu pour sélectionner son mode de jeu)
    Le "Mode Compteur" est un mode d'affrontement à seulement 2 équipes (Rouges VS Bleu), le bouton Vert est un bouton de remise à Zéro des chronos, pour activer les chronos il faut appuyer 3 secondes sur le bouton (temps modifiable pour l'instant dans le code, mais je vais surement le rajouter dans le menu pour votre plus grand plaisir).

    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 {
                            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;
           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(4000);
         typejeu = 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(4000);
          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 = +  V = -  ");
          typejeu = 3;
          delay(4000);
          time(); }    
    }
    }
     }
    }
    }
    }
    }
    }
    }
    void time(){
                      
                      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 >= 60) {
     if (second = 60) {
     minute++;
     second = 0;
     }
     }
    if (minute >= 60) {
     if (minute = 60) {
     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 = 60;
     }
     }
    if (minute >= 0) {
     if (minute = 0) {
     hour--;
     minute = 60;
    }
     }
        }
                    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){
                            //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);
     if (redhour1 <=9) {
                              lcd.print("0");
                            }
                              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 >= 60) {
                                if (redsecond1 = 60) {
            redminute1++;
                                    redsecond1 = 0;
                                }
     }
     if (redminute1 >= 60) {
        if (redminute1 = 60) {
                                    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(8, 1);
     if (redhour1 <=9) {
                              lcd.print("0");
                            }
                              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 >= 60) {
                                if (bluesecond1 = 60) {
              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;
    }

    Maintenant bonne nuit, je crois que je l'ai bien mérité!!!!!
    avatar
    obelix21
    ecrou argent
    ecrou argent

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

    Re: Checkpoint avec Arduino l'étude..

    Message par obelix21 le Lun 10 Mar - 8:33

    j'ai du mal à me ballader dans les menus, tu aurais le synoptique?


    MODE STANDARD - Appuyez bouton - appui bouton vert, bleu ou rouge déclenche le décompte!

    Menu MODE STANDARD - appui bouton vert, bleu ou rouge déclenche le décompte!

    Menu MODE RAZ - (Bleu) = entrée menu _ Mode RAZ - Appuyez bouton (lequel?) appui bouton vert, bleu ou rouge déclenche le décompte!

    Menu MODE COMPTEUR -  (bleu) = entrée menu_Mode Compteur  -
    (bleu prolongé) = RED/BLUE + decompte du temps des bleu -
    (rouge prolongé) = RED/BLUE + décompte du temps des rouge -
    (vert prolongé) = Menu RAZ (bleu prolongé) = RAZ
    (vert) = Stop le décompte
    avatar
    pic-pac
    ecrou or
    ecrou or

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

    Re: Checkpoint avec Arduino l'étude..

    Message par pic-pac le Lun 10 Mar - 9:53

    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.
    avatar
    obelix21
    ecrou argent
    ecrou argent

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

    Re: Checkpoint avec Arduino l'étude..

    Message par obelix21 le Lun 10 Mar - 11:02

    oui merci
    avatar
    pic-pac
    ecrou or
    ecrou or

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

    Re: Checkpoint avec Arduino l'étude..

    Message par pic-pac le Lun 10 Mar - 14:16

    si vous apportez des modifications au code n’hésitez pas à les repartager ici
    avatar
    obelix21
    ecrou argent
    ecrou argent

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

    Re: Checkpoint avec Arduino l'étude..

    Message par obelix21 le Lun 10 Mar - 16:55

    Voilà ma version de ton programme

    Code:
     //Programme BASE AIRSOFT de PICPAC exploité par Obélix

    #include <LiquidCrystal.h>                // librairie écran 1602
    LiquidCrystal lcd(8, 9, 10, 11, 12, 13);  // cablage des pins de l'écran


    const int buttonred = 3;            // bouton rouge sur sortie 3
    const int buttongreen = 1;          // bouton vert sur sortie 1
    const int buttonblue = 2;          // bouton bleu sur sortie 2
    const int menuboutton = 4;          // bouton menu pas utilisé
    const int redledPin = A2;          // voyant rouge sur sortie Analog 2
    const int greenledPin = A1;        // voyant vert sur sortie analog 1
    const int blueledPin = A0;          // voyant bleu sur sortie analog 0
    const int speakerPin = 7;

    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;                    //temps d'attente sur le bouton bleu ou rouge en mode compteur pour capturer

    int duree_compte_rebour_mn = 15;                                                              // durée du décompte en minutes
    int duree_compte_rebour_h = 0;                                                                // durée du décompte en heures 
           
    int redsecond=0, redminute= duree_compte_rebour_mn, redhour= duree_compte_rebour_h;          // temps de jeu mode standard
    int redmillis = 0;
    int greensecond=0, greenminute= duree_compte_rebour_mn, greenhour= duree_compte_rebour_h;    // temps de jeu mode standard
    int greenmillis = 0;
    int bluesecond=0, blueminute= duree_compte_rebour_mn, bluehour= duree_compte_rebour_h;      // temps de jeu mode standard
    int bluemillis = 0;
    int secondRAZGREEN=0, minuteRAZGREEN=duree_compte_rebour_mn, hourRAZGREEN=0, millisRAZGREEN= 0; // temps de jeu mode RAZ
    int secondRAZRED=0, minuteRAZRED=duree_compte_rebour_mn, hourRAZRED=0, millisRAZRED=0;          // temps de jeu mode RAZ
    int secondRAZBLUE=0, minuteRAZBLUE=duree_compte_rebour_mn, hourRAZBLUE=0, millisRAZBLUE=0;      // temps de jeu mode RAZ
    int second=0, minute=duree_compte_rebour_mn, hour=0;                                            // temps par défaut mode réglage compteur

    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(speakerPin, HIGH);                  // activation resistance de tirage buzzer
    digitalWrite(redledPin, LOW);                    // état led rouge au démarrage
    digitalWrite(greenledPin, LOW);                  // état led verte au démarrage
    digitalWrite(blueledPin, LOW);                  // état led bleu au démarrage

    buttonStatered = digitalRead(buttonred);
    buttonStategreen = digitalRead(buttongreen);
    buttonStateblue = digitalRead(buttonblue);
    bouttonmenu = digitalRead(menuboutton);
            lcd.begin(16, 2);                      // Messages d'acceuil au démarrage
                    lcd.clear();
                            lcd.setCursor( 0, 0 );
            lcd.print( "PIC PAC" );                      // Message page1
                            lcd.setCursor( 2, 1 );
            lcd.print( "developpement" );
            delay(2000);
                    lcd.clear();                          // reset écran
                            lcd.setCursor( 2, 0 );
            lcd.print( "BASE AIRSOFT" );
                            lcd.setCursor( 2, 1 );        // Message page2
            lcd.print( "par OBELIX" );
            delay(2000);
                    lcd.clear();                          // reset écran
                            lcd.setCursor(1, 0);
            lcd.print("Appuie couleur");
                            lcd.setCursor(1, 1);          // Message page3
            lcd.print("de ton equipe");
            delay(2000);
                    lcd.clear();                          // reset écran
                            lcd.setCursor(1, 0);             
            lcd.print("pour commencer!");                // Message page4
            delay(2000);
                    lcd.clear();                        // reset écran
           
                            lcd.setCursor(1, 0);       
            lcd.print("fin partie dans");                // Message page5
                            lcd.setCursor(1, 1);         
            lcd.print(duree_compte_rebour_mn);            //durée de la partie
                          lcd.setCursor (5,1);
            lcd.print("minutes");
           
            delay(2000);
           
                  lcd.clear();                          // reset écran
                            lcd.setCursor(0, 0);
            lcd.print("§§§§§§§§§§§§§§§§");
                            lcd.setCursor(4, 1);
            lcd.print("Bon jeu!");                      // Message page6
         
     

      }
      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 {
                            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;
          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(4000);
        typejeu = 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(4000);
          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 = +  V = RAZ  ");
          typejeu = 3;
          delay(4000);
          time(); }   
    }
    }
     }
    }
    }
    }
    }
    }
    }
    void time(){
                     
                      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 >= 60) {
     if (second = 60) {
     minute++;
     second = 0;
     }
     }
    if (minute >= 60) {
     if (minute = 60) {
     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 = 60;
     }
     }
    if (minute >= 0) {
     if (minute = 0) {
     hour--;
     minute = 60;
    }
     }
        }
                    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()
      {
                                                            //Quand le bouton rouge est appuyé
                      while (buttonStatered == HIGH)
          {   
            buttonStatered = digitalRead(buttonred);
            digitalWrite(redledPin, HIGH);                //allume led rouge
            digitalWrite(greenledPin, LOW);
            digitalWrite(blueledPin, LOW);
           
            lcd.clear();
            lcd.setCursor(5, 0);
            lcd.print("ROUGE");                            // ROUGE à l'écran
           
            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);
            lcd.print(":");
            if (redminute <=9)
            {
            lcd.print("0");
              }
            lcd.print(redminute, DEC);
            lcd.print(":");
            if (redsecond <=9)
            {
            lcd.print("0");
              }
            lcd.print(redsecond, DEC);
            lcd.print(" ");
           
            if (redsecond == 0 && redminute == 0 && redhour == 0)
            {
             
                lcd.clear();
                lcd.setCursor(4, 0);
                lcd.print("VICTOIRE");
                lcd.setCursor(2, 1);
                lcd.print("EQUIPE ROUGE");                    // victoire des rouge à l'écran
               
                pinMode(0, OUTPUT);
                digitalWrite(0, HIGH);
                digitalWrite(speakerPin, HIGH);                //buzzer actif
                delay(3000);                                  //wait 3 seconds
                digitalWrite(speakerPin, LOW);                //buzzer eteint
                delay(3000);                                  //wait 3 seconds
            }
          }
          while (buttonStategreen == HIGH)                    //Quand le bouton vert est appuyé
          {   
                                                              // allume led verte
            digitalWrite(redledPin, LOW);
            digitalWrite(greenledPin, HIGH);
            digitalWrite(blueledPin, LOW);
           
            lcd.clear();
            lcd.setCursor(6, 0);
            lcd.print("VERT");                                // VERT à l'ecran
           
            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);
            lcd.print(":");
            if (greenminute <=9)
            {
            lcd.print("0");
              }
            lcd.print(greenminute, DEC);
            lcd.print(":");
            if (greensecond <=9)
            {
            lcd.print("0");
              }
            lcd.print(greensecond, DEC);
            lcd.print(" ");
           
            if (greensecond == 0 && greenminute == 0 && greenhour == 0)
            {
                lcd.clear();
                lcd.setCursor(4, 0);
                lcd.print("VICTOIRE");
                lcd.setCursor(2, 1);
                lcd.print("EQUIPE VERT");                      //victoire des vert à l'écran
                                 
                digitalWrite(speakerPin, HIGH);                //buzzer actif
                delay(3000);                                    //wait 3 seconds
                digitalWrite(speakerPin, LOW);                  //buzzer eteint
                delay(3000);                                    //wait 3 seconds
            }
          }
          while (buttonStateblue == HIGH)                      //Quand le bouton bleu est appuyé
          {   
                                                                // allume led bleu
            digitalWrite(redledPin, LOW);
            digitalWrite(greenledPin, LOW);
            digitalWrite(blueledPin, HIGH);
           
            lcd.clear();
            lcd.setCursor(6, 0);
            lcd.print("BLEU");                                // bleu à l'écran
           
            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);
            lcd.print(":");
            if (blueminute <=9)
            {
            lcd.print("0");
              }
            lcd.print(blueminute, DEC);
            lcd.print(":");
            if (bluesecond <=9)
            {
            lcd.print("0");
              }
            lcd.print(bluesecond, DEC);
           
            if (bluesecond == 0 && blueminute == 0 && bluehour == 0)
            {
                lcd.clear();
                lcd.setCursor(4, 0);
                lcd.print("VICTOIRE");
                lcd.setCursor(2, 1);
                lcd.print("EQUIPE BLEU");                        //victoire des bleu à l'écran
             
                digitalWrite(speakerPin, HIGH);                  //buzzer actif
                delay(3000);                                    //wait 3 seconds
                digitalWrite(speakerPin, LOW);                  //buzzer eteint
                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(5, 0);
     lcd.print("ROUGE");
     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(5, 0);
     lcd.print("ROUGE");
     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("VERT");
     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("VERT");
     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("BLEU");
     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("BLEU");
     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("ROUGE  /    BLEU"); 
                            ledStatered = true;
                            }
                           
     }
     if (ledStatered == true){
            redmillis1++;
                            lcd.setCursor(0, 1);
     if (redhour1 <=9) {
                              lcd.print("0");
                            }
                              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 >= 60) {
                                if (redsecond1 = 60) {
            redminute1++;
                                    redsecond1 = 0;
                                }
     }
     if (redminute1 >= 60) {
        if (redminute1 = 60) {
                                    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("ROUGE  /    BLEU");
                            ledStateblue = true;
     }
     }
     if (ledStateblue == true){
            bluemillis1++;
                            lcd.setCursor(8, 1);
     if (redhour1 <=9) {
                              lcd.print("0");
                            }
                              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 >= 60) {
                                if (bluesecond1 = 60) {
              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;
    }

    maintenant que je sais naviguer dans les menus, ça va super bien,lol
    avatar
    obelix21
    ecrou argent
    ecrou argent

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

    Re: Checkpoint avec Arduino l'étude..

    Message par obelix21 le Lun 10 Mar - 17:02

    Dans le menu "Réglage de temps" ça serait bien que le R = + incremente les minutes plutot que les secondes car c'est hyper long à regler.

    ou alors faire que le bouton bleu serve à regler les Minutes!

    je trouve pas comment faire.

    tu l'as mis à 30s, du coup je l'ai décalé à 15mn pour palier un peu le problème.
    avatar
    pic-pac
    ecrou or
    ecrou or

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

    Re: Checkpoint avec Arduino l'étude..

    Message par pic-pac le Lun 10 Mar - 18:53

    tu pourrais nous dire ce que tu as changer exactement dans ton code???
    mis a part le temps et les explications du début (merci pour le petit clin d’œil)

    avatar
    pic-pac
    ecrou or
    ecrou or

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

    Re: Checkpoint avec Arduino l'étude..

    Message par pic-pac le Lun 10 Mar - 19:11

    tiens j'ai refais le void time, maintenant quand tu appuies sur le bouton bleu les minutes augmentent.

    Code:
    void time(){
                    
                     if (buttonStateblue == HIGH) {
                            lcd.setCursor(0, 1);
                            lcd.print("                ");
                            delay (100);
                            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 >= 60) {
                             if (minute = 60) {
                                 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 >= 60) {
                             if (second = 60) {
                                 minute++;
                                 second = 0;
                             }
                          }
                          if (minute >= 60) {
                             if (minute = 60) {
                                 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 = 60;
                              }
                          }
                          if (minute >= 0) {
                              if (minute = 0) {
                                  hour--;
                                  minute = 60;
                              }
                          }
                      }
     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;
    }
    avatar
    pic-pac
    ecrou or
    ecrou or

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

    Re: Checkpoint avec Arduino l'étude..

    Message par pic-pac le Lun 10 Mar - 19:28

    attention après avoir testé ton code, ton buzzeur doit biper en permanence non???? car moi j'ai une led branché sur la sortie 7 et elle reste constamment allumée.
    avatar
    droopaille
    boulon platine
    boulon platine

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

    Re: Checkpoint avec Arduino l'étude..

    Message par droopaille le Lun 10 Mar - 20:31

    oué bah moi je testerai plus tard, jm'e sens pas le courage d'éplucher tout ce code


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

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

    Re: Checkpoint avec Arduino l'étude..

    Message par obelix21 le Lun 10 Mar - 20:47

    mon buzzer arduino à besoin que j'active la resistance de tirage, sinon il fonctionne à l'envers.

    j'ai ajouté:
    int duree_compte_rebour_mn = 15;                 // durée du décompte en minutes


    en changeant la valeur de cette ligne j'en change 7

    quelques pages au début, ça m'a bien amusé de faire défiler des pages de texte,lol

    dans les pages defilantes j'en ais fait une qui annonce la durée de la partie, en tenant compte de (duree_compte_rebour_mn) ça j'en suis content je l'ai trouvé tout seul comme un grand!





    un peu de traduction en français et commentaires...

    Faut dire que ça fonctionne si bien qu'il y a pas grand chose à changer lol! 

    et pis je débute, j'y connais pas grand chose je suis vite bloqué
    avatar
    pic-pac
    ecrou or
    ecrou or

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

    Re: Checkpoint avec Arduino l'étude..

    Message par pic-pac le Lun 10 Mar - 21:00

    tu as vu que j'ai rajouter la fonction pour les minutes??

    juste comme ça, tu t'ai fais chier à changer pleins de lignes alors que tu avais juste à changer les 30 secondes ici, après je peux regarder, on doit pouvoir regrouper pour en avoir qu'une seule à changer.

    Code:
    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;
    avatar
    obelix21
    ecrou argent
    ecrou argent

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

    Re: Checkpoint avec Arduino l'étude..

    Message par obelix21 le Lun 10 Mar - 21:03

    Je viens de changer le Void timer, ça tourne super!
    ça va vachement mieux pour regler le temps,merciiiiiiiiiiiiiiiiiiiiiiii


    ben c'est ce que j'ai fais, il n'y en a plus qu'une a changer et la valeur est annoncé dans le menu de démarrage!


    Dernière édition par obelix21 le Lun 10 Mar - 21:05, édité 1 fois

    Contenu sponsorisé

    Re: Checkpoint avec Arduino l'étude..

    Message par Contenu sponsorisé


      La date/heure actuelle est Mar 17 Oct - 15:14