Airsoft Krispies

Bonjour à tous et bienvenue


    Checkpoint avec Arduino l'étude..

    Partagez
    avatar
    rbs
    vis rouillée
    vis rouillée

    Messages : 95
    Date d'inscription : 24/09/2011
    Age : 27
    Localisation : blois

    Re: Checkpoint avec Arduino l'étude..

    Message par rbs le Sam 5 Mai - 12:23

    oui j'ai déja repéré ça pour le moment je cherche si il y aurais pas en un peut plus gros vue que les miens sont des 40E/S
    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 Sam 5 Mai - 12:30

    il te faut l'arduino mega dans se cas
    http://arduino.cc/en/Main/ArduinoBoardMega
    avatar
    rbs
    vis rouillée
    vis rouillée

    Messages : 95
    Date d'inscription : 24/09/2011
    Age : 27
    Localisation : blois

    Re: Checkpoint avec Arduino l'étude..

    Message par rbs le Sam 5 Mai - 13:22

    j'ai trouvé ce que je cherchais je demanderais à leurs magasin la prochaine fois que j'irais ^^ http://radiospares-fr.rs-online.com/web/p/microcontroleur-processeur/7055136/
    parce que les arduino sont quand même assez petits et dés que tu prend plus gros tu as un prix exorbitant lol
    car la déja tu dois te faire chier si tu utilise 3E il t'en reste pas énorme pour l'afficheur
    bon c'est pas tout mais j'ai mon dimanche a préparer je fonce démonter mes répliques^^
    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 Sam 5 Mai - 13:49

    pour l'afficheur ca depend si tu prends en serie (1 sortie) ou un 44780(6 sorties)
    avatar
    rbs
    vis rouillée
    vis rouillée

    Messages : 95
    Date d'inscription : 24/09/2011
    Age : 27
    Localisation : blois

    Re: Checkpoint avec Arduino l'étude..

    Message par rbs le Sam 5 Mai - 15:04

    moi je suis plus du genre a faire de la recup que tout acheter Smile
    mais je vais finalement passer a la carte arduino j'ai réfléchi à un bon moyen
    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 Sam 5 Mai - 23:28

    rbs a écrit:moi je suis plus du genre a faire de la recup que tout acheter Smile


    Je suis pareil le roi de la recup d'ailleur ma femme n'arrete pas de gueuler avec tout ce que je recupere.
    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 Mer 16 Mai - 8:28

    Salut à tous,

    Si des personnes sont interressées je vous donne un petit lien pour brancher un ATMEGA.
    http://itp.nyu.edu/physcomp/Tutorials/ArduinoBreadboard
    personnellement j'ai acheté plusieurs atmega avec le bootloader comme ceux ci http://shop.snootlab.com/arduino/34-atmega-328.html, que je charge avec mon arduino.
    Les premiers essais sont concluants, dans une semaine j'achete les composants qui me manque afin de tenter de vous presenter mon prototype au plus vite.
    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 Dim 25 Aoû - 16:08

    Après un long moment d'absence je poste mon code et les schémas des circuits afin que vous aussi puissiez le faire chez vous.

    Liste du Materiel:

    un Arduino ou un Atmega 328
    4 boutons 3 pour les équipes et 1 pour le menu
    4 resistances 10K ohms
    1 crystal 16 Mhz (si vous choisissez l'Atmega 328)
    1 potentiometre 10K
    1 ecran LCD 2 lignes 16 colones
    1 LM7805 (si vous choisissez l'Atmega 328, permet de passer de 9V en 5V)
    1 Buzzer


    Le détail de l'Atmega 328


    Le schéma de branchement sur un ATmega 328


    Note: il faut faire un branchement pour chaque bouton

    Code:

     /*
     Le circuit:
     * le bouton vert branché sur la sortie 1
     * le bouton bleu branché sur la sortie 2
     * le bouton rouge branché sur la sortie 3
     * le bouton menu branché sur la sortie 4
     * le buzzer branché sur la sortie 7
     */
     
    const int buttonred = 3;     // the number of the pushbutton pin
     const int buttongreen = 1;     // the number of the pushbutton pin
     const int buttonblue = 2;     // the number of the pushbutton pin
     const int menuboutton = 4;
     const int redledPin = A2;      // the number of the LED pin
     const int greenledPin = A1;      // the number of the LED pin
     const int blueledPin = A0;      // the number of the LED pin
    const int speakerPin = 7;
     // variables will change:
     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 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 millis =0;
     boolean ledStatered = false;
     boolean ledStategreen = false;
     boolean ledStateblue = false;
     boolean modejeu = false;
     boolean typejeu = false;
            static unsigned long lastTick = 0;
     
    #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:


    void setup() {
     // initialize the pushbutton pin as an input:
     pinMode(buttonred, INPUT);
     pinMode(buttongreen, INPUT);
     pinMode(buttonblue, INPUT);
     pinMode(menuboutton, INPUT);
     pinMode(speakerPin, OUTPUT);
     digitalWrite(redledPin, LOW);
     digitalWrite(greenledPin, LOW);
     digitalWrite(blueledPin, LOW);
     lcd.begin(16, 2);
     }

     void loop(){
     // read the state of the pushbutton value:
     buttonStatered = digitalRead(buttonred);
     buttonStategreen = digitalRead(buttongreen);
     buttonStateblue = digitalRead(buttonblue);
     bouttonmenu = digitalRead(menuboutton);
     
    if (bouttonmenu == HIGH) {
     menu();
     }
     else if (typejeu == true){
     RAZ();
     }
    else {
     normal();
     }
     }
    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);
     lcd.print(" ");
     lcd.print(redhour, DEC); // the hour, sent to the screen in decimal format
     lcd.print(":"); // a colon between the hour and the minute
     lcd.print(redminute, DEC); // the minute, sent to the screen in decimal format
     lcd.print(":"); // a colon between the minute and the second
     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);
     lcd.print(" ");
     lcd.print(greenhour, DEC); // the hour, sent to the screen in decimal format
     lcd.print(":"); // a colon between the hour and the minute
     lcd.print(greenminute, DEC); // the minute, sent to the screen in decimal format
     lcd.print(":"); // a colon between the minute and the second
     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(7, 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);
     lcd.print(" ");
     lcd.print(bluehour, DEC); // the hour, sent to the screen in decimal format
     lcd.print(":"); // a colon between the hour and the minute
     lcd.print(blueminute, DEC); // the minute, sent to the screen in decimal format
     lcd.print(":"); // a colon between the minute and the second
     lcd.print(bluesecond, DEC); // the second, sent to the screen in decimal format
     lcd.print(" ");
    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 menu() {
     if (bouttonmenu == HIGH) {
     ledStatered = false;
     ledStategreen = false;
     ledStateblue = false;
     modejeu = false;
     digitalWrite(redledPin, LOW);
     digitalWrite(greenledPin, LOW);
     digitalWrite(blueledPin, LOW);
     lcd.clear();
     lcd.setCursor(7, 0);
     lcd.print("MENU");
     //bouttonmenu = digitalRead(menuboutton);
     lcd.setCursor(4, 1);
     lcd.print(" ");
     lcd.print(redhour, DEC); // the hour, sent to the screen in decimal format
     lcd.print(":"); // a colon between the hour and the minute
     lcd.print(redminute, DEC); // the minute, sent to the screen in decimal format
     lcd.print(":"); // a colon between the minute and the second
     lcd.print(redsecond, DEC); // the second, sent to the screen in decimal format
     lcd.print(" ");
     }
     if (buttonStatered == HIGH) {
     redsecond++; // declare time variables
     greensecond++; // declare time variables
     bluesecond++; // declare time variables
    second++;
     secondRAZRED++;
     secondRAZGREEN++;
     secondRAZBLUE++;
     lcd.setCursor(4, 1);
     lcd.print(" ");
     lcd.print(redhour, DEC); // the hour, sent to the screen in decimal format
     lcd.print(":"); // a colon between the hour and the minute
     lcd.print(redminute, DEC); // the minute, sent to the screen in decimal format
     lcd.print(":"); // a colon between the minute and the second
     lcd.print(redsecond, DEC); // the second, sent to the screen in decimal format
     lcd.print(" ");
     
                           
     if (second >= 60) {
     if (second = 60) {
     minute++;
     second = 0;
     }
     }
    if (minute >= 60) {
     if (minute = 60) {
     hour++;
     minute = 0;
    }
     }
     if (redsecond >= 60) {
     if (redsecond = 60) {
     redminute++;
     redsecond = 0;
     }
     }
    if (redminute >= 60) {
     if (redminute = 60) {
     redhour++;
     redminute = 0;
    }
     }
     if (greensecond >= 60) {
     if (greensecond = 60) {
     greenminute++;
     greensecond = 0;
     }
     }
    if (greenminute >= 60) {
     if (greenminute = 60) {
     greenhour++;
     greenminute = 0;
    }
     }
     if (bluesecond >= 60) {
     if (bluesecond = 60) {
     blueminute++;
     bluesecond = 0;
     }
     }
    if (blueminute >= 60) {
     if (blueminute = 60) {
     bluehour++;
     blueminute = 0;
    }
     }
     }
     if (buttonStategreen == HIGH) {
     redsecond--; // declare time variables
     greensecond--; // declare time variables
     bluesecond--; // declare time variables
    second--;
     secondRAZRED--;
     secondRAZGREEN--;
     secondRAZBLUE--;
     lcd.setCursor(4, 1);
     lcd.print(" ");
     lcd.print(redhour, DEC); // the hour, sent to the screen in decimal format
     lcd.print(":"); // a colon between the hour and the minute
     lcd.print(redminute, DEC); // the minute, sent to the screen in decimal format
     lcd.print(":"); // a colon between the minute and the second
     lcd.print(redsecond, DEC); // the second, sent to the screen in decimal format
     lcd.print(" ");

      static unsigned long lastTick = 0;
     if (second > 0) {
     if (millis() - lastTick >= 1000) {
                                      lastTick = millis();
     second--;
     }
     }
     if (minute > 0) {
     if (second <= 0) {
     minute--;
     second = 59;
    }
     }
     if (redsecond > 0) {
     if (millis() - lastTick >= 1000) {
                                      lastTick = millis();
     redsecond--;
     }
     }
     if (redminute > 0) {
     if (redsecond <= 0) {
     redminute--;
     redsecond = 59;
    }
     }
     if (redhour > 0) {
     if (redminute <= 0) {
     redhour--;
     redminute = 59;
     }
     }
     if (greensecond > 0) {
     if (millis() - lastTick >= 1000) {
                                      lastTick = millis();
     greensecond--;
     }
     }
     if (greenminute > 0) {
     if (greensecond <= 0) {
     greenminute--;
     greensecond = 59;
    }
     }
     if (greenhour > 0) {
     if (greenminute <= 0) {
     greenhour--;
     greenminute = 59;
     }
     }
     if (bluesecond > 0) {
     if (millis() - lastTick >= 1000) {
                                      lastTick = millis();
     bluesecond--;
     }
     }
     if (blueminute > 0) {
     if (bluesecond <= 0) {
     blueminute--;
     bluesecond = 59;
    }
     }
     if (bluehour > 0) {
     if (blueminute <= 0) {
     bluehour--;
     blueminute = 59;
     }
     }
     }
     while (buttonStateblue == HIGH) {
     modejeu = true;
     buttonStateblue = digitalRead(buttonblue);
     }
     if (modejeu == true){
     typejeu = true;
     lcd.clear();
     lcd.setCursor(7, 0);
     lcd.print("MENU");
     lcd.setCursor(0, 1);
     lcd.print("  Mode Standard  ");
     delay(3000);
     }
     if (modejeu == false){
     typejeu = false;
     }
     }
     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){
     //millisRAZGREEN = millis;
     //millisRAZBLUE = millis;
     secondRAZGREEN = second;
     secondRAZBLUE = second;
     minuteRAZGREEN = minute;
     minuteRAZBLUE = minute;
     hourRAZGREEN = hour;
     hourRAZBLUE = hour;
     /*if (millisRAZRED > 0) {
     millisRAZRED--;
     }*/
     // 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);
     lcd.print(" ");
     lcd.print(hourRAZRED, DEC); // the hour, sent to the screen in decimal format
     lcd.print(":"); // a colon between the hour and the minute
     lcd.print(minuteRAZRED, DEC); // the minute, sent to the screen in decimal format
     lcd.print(":"); // a colon between the minute and the second
     lcd.print(secondRAZRED, DEC); // the second, sent to the screen in decimal format
     lcd.print(" ");
     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){
     //millisRAZRED = millis;
     //millisRAZBLUE = millis;
     secondRAZRED = second;
     secondRAZBLUE = second;
     minuteRAZRED = minute;
     minuteRAZBLUE = minute;
     hourRAZRED = hour;
     hourRAZBLUE = hour;
     /*if (millisRAZGREEN > 0) {
     millisRAZGREEN--;
     }*/
     // 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);
     lcd.print(" ");
     lcd.print(hourRAZGREEN, DEC); // the hour, sent to the screen in decimal format
     lcd.print(":"); // a colon between the hour and the minute
     lcd.print(minuteRAZGREEN, DEC); // the minute, sent to the screen in decimal format
     lcd.print(":"); // a colon between the minute and the second
     lcd.print(secondRAZGREEN, DEC); // the second, sent to the screen in decimal format
     lcd.print(" ");
    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(7, 0);
     lcd.print("BLUE");
     buttonStateblue = digitalRead(buttonblue);
     ledStatered = false;
     ledStategreen = false;
     ledStateblue = true;
     }
     if (ledStateblue == true){
     //millisRAZRED = millis;
     //millisRAZGREEN = millis;
     secondRAZRED = second;
     secondRAZGREEN = second;
     minuteRAZRED = minute;
     minuteRAZGREEN = minute;
     hourRAZRED = hour;
     hourRAZGREEN = hour;
     /*if (millisRAZBLUE > 0) {
     millisRAZBLUE--;
     }*/
     // decrement one second every 1000 milliseconds
     if (secondRAZBLUE > 0) {
                                if (millis() - lastTick >= 1000) {
                                  lastTick = millis();
     //if (millisRAZBLUE <= 0) {
     secondRAZBLUE--;
     //millisRAZBLUE = 9;
     }
     }
     // 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);
     lcd.print(" ");
     lcd.print(hourRAZBLUE, DEC); // the hour, sent to the screen in decimal format
     lcd.print(":"); // a colon between the hour and the minute
     lcd.print(minuteRAZBLUE, DEC); // the minute, sent to the screen in decimal format
     lcd.print(":"); // a colon between the minute and the second
     lcd.print(secondRAZBLUE, DEC); // the second, sent to the screen in decimal format
     lcd.print(" ");
    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
     }
    }
     }
    Je vous souhaite un bon courage et si vous avez des questions n’hésitez pas

    Ps: pour l'instant je n'ai pas testé les LED car j'ai commandé des LED bleu pour faire le test mais même sans ça roule super bien


    Dernière édition par pic-pac le Mar 27 Aoû - 20:49, édité 1 fois
    avatar
    ptimaicosto
    vis rouillée
    vis rouillée

    Messages : 90
    Date d'inscription : 05/06/2011
    Age : 32
    Localisation : Ligny le ribault

    Re: Checkpoint avec Arduino l'étude..

    Message par ptimaicosto le Lun 26 Aoû - 23:56

    Je vois que j'ai trouver un autre copain de jeu arduino!!! Dis si un jour ça te dis, j'ai un projet pour un parcours de cible, sur une base d'arduino avec des Shields de communication sans fils. Genre la mallette de stand de tir portatif de Cybertruc mais en versions "j'ai pas de sous". Tiens moi au jus...
    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 Mar 27 Aoû - 4:57

    Ça peut être super sympa mais je ne sais pas si j'ai bien le niveau pour ça mais pourquoi pas
    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 Jeu 26 Sep - 23:54

    le schéma remis à jour



    et le boitier une fois fini




    Début du jeu


    Les Rouges capturent


    Les Verts capturent



    Les Bleus capturent



    maintenant le Code

    Code:
       
       /*
       The circuit:
       * le bouton vert branché sur la sortie 1
       * le bouton bleu branché sur la sortie 2
       * le bouton rouge branché sur la sortie 3
       * le bouton menu branché sur la sortie 4
       * le buzzer branché sur la sortie 0
        */
        
       const int buttonred = 3;     // the number of the pushbutton pin
       const int buttongreen = 1;     // the number of the pushbutton pin
       const int buttonblue = 2;     // the number of the pushbutton pin
       const int menuboutton = 4;
       const int redledPin = A2;      // the number of the LED pin
       const int greenledPin = A1;      // the number of the LED pin
       const int blueledPin = A0;      // the number of the LED pin
       const int speakerPin = 0;
            
       // variables will change:
       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 millis = 0;
       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 millis =0;
       boolean ledStatered = false;
       boolean ledStategreen = false;
       boolean ledStateblue = false;
       boolean modejeu = false;
       boolean typejeu = false;
            static unsigned long lastTick = 0;
       
       #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:
       
       
       void setup() {
          // initialize the pushbutton pin as an input:
          pinMode(buttonred, INPUT);
          pinMode(buttongreen, INPUT);
          pinMode(buttonblue, INPUT);
          pinMode(menuboutton, INPUT);
                    pinMode(0, OUTPUT);
                    pinMode(speakerPin, OUTPUT);
          
          digitalWrite(redledPin, LOW);
          digitalWrite(greenledPin, LOW);
          digitalWrite(blueledPin, LOW);
          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");
             delay(3000);

       }

       void loop(){
                suite();
            }
              void suite(){
            
          // read the state of the pushbutton value:
          buttonStatered = digitalRead(buttonred);
          buttonStategreen = digitalRead(buttongreen);
          buttonStateblue = digitalRead(buttonblue);
          bouttonmenu = digitalRead(menuboutton);
          
                
          if (bouttonmenu == HIGH) {
             menu();
          }
          else if (typejeu == true){
             RAZ();
          }      
          else {
             normal();
          }
       }   
       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");
                                    pinMode(0, OUTPUT);
                                    digitalWrite(0, HIGH);
                //digitalWrite(speakerPin, HIGH);//turn on buzzer
                delay(3000);//wait 3 seconds
                digitalWrite(0, LOW);
                                    //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");
                                    //pinMode(0, OUTPUT);
                                    //digitalWrite(0, LOW);
                digitalWrite(speakerPin, HIGH);//turn on buzzer
                delay(3000);//wait 3 seconds
                //pinMode(0, INPUT);
                                    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");
                //pinMode(0, OUTPUT);
                                    //digitalWrite(0, LOW);
                digitalWrite(speakerPin, HIGH);//turn on buzzer
                delay(3000);//wait 3 seconds
                //pinMode(0, INPUT);
                                    digitalWrite(speakerPin, LOW);//turn off buzzer
                                    delay(3000);//wait 3 seconds
             }   
          }
       }
       void menu() {
          if (bouttonmenu == HIGH) {
             ledStatered = false;
             ledStategreen = false;
             ledStateblue = false;
             modejeu = false;
             digitalWrite(redledPin, LOW);
             digitalWrite(greenledPin, LOW);
             digitalWrite(blueledPin, LOW);
             lcd.clear();
             lcd.setCursor(7, 0);
             lcd.print("MENU");
             //bouttonmenu = digitalRead(menuboutton);
             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
          }
          if (buttonStatered == HIGH) {
                            static unsigned long millis = 10;   
             millis++;
             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
             if (millis >= 10) {
                if (millis = 10){
                   second++;
                   millis = 0;
                }
             }
             if (second >= 60) {
                if (second = 60) {
                   minute++;
                   second = 0;
                }
             }      
             if (minute >= 60) {
                if (minute = 60) {
                   hour++;
                   minute = 0;
                }
             }
             
          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;
          }
          if (buttonStategreen == HIGH) {
             
                            redsecond--; // declare time variables
             greensecond--; // declare time variables
             bluesecond--; // declare time variables   
             second--;
             secondRAZRED--;
             secondRAZGREEN--;
             secondRAZBLUE--;
             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
             
             
                  
             static unsigned long lastTick = 0;
             if (second > 0) {
                if (millis() - lastTick >= 1000) {
                                      lastTick = millis();
                   second--;
                }
             }
             if (minute > 0) {
                if (second <= 0) {
                   minute--;
                   second = 59;
                }
             }
             if (redsecond > 0) {
                if (millis() - lastTick >= 1000) {
                                      lastTick = millis();
                   redsecond--;
                }
             }
             if (redminute > 0) {
                if (redsecond <= 0) {
                   redminute--;
                   redsecond = 59;
                }
             }
             if (redhour > 0) {
                if (redminute <= 0) {
                   redhour--;
                   redminute = 59;
                }
             }
             if (greensecond > 0) {
                if (millis() - lastTick >= 1000) {
                                      lastTick = millis();
                   greensecond--;
                }
             }
             if (greenminute > 0) {
                if (greensecond <= 0) {
                   greenminute--;
                   greensecond = 59;
                }
             }
             if (greenhour > 0) {
                if (greenminute <= 0) {
                   greenhour--;
                   greenminute = 59;
                }
             }
             if (bluesecond > 0) {
                if (millis() - lastTick >= 1000) {
                                      lastTick = millis();
                   bluesecond--;
                }
             }
             if (blueminute > 0) {
                if (bluesecond <= 0) {
                   blueminute--;
                   bluesecond = 59;
                }
             }
             if (bluehour > 0) {
                if (blueminute <= 0) {
                   bluehour--;
                   blueminute = 59;
                }
             }
          }

          while (buttonStateblue == HIGH) {
             modejeu = true;
             buttonStateblue = digitalRead(buttonblue);
          }
          if (modejeu == true){
             typejeu = true;
             lcd.clear();
             lcd.setCursor(4, 0);
             lcd.print("Mode RAZ");
                            lcd.setCursor(1, 1);
             lcd.print("Appuyez bouton");
                            delay(3000);
          }
          if (modejeu == false){
             typejeu = false;
          }
       }
       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");
                //pinMode(0, OUTPUT);
                                    //digitalWrite(0, LOW);
                digitalWrite(speakerPin, HIGH);//turn on buzzer
                delay(3000);//wait 3 seconds
                //pinMode(0, INPUT);
                                    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");
                //pinMode(0, OUTPUT);
                                    //digitalWrite(0, LOW);
                digitalWrite(speakerPin, HIGH);//turn on buzzer
                delay(3000);//wait 3 seconds
                //pinMode(0, INPUT);
                                    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");
                //pinMode(0, OUTPUT);
                                    //digitalWrite(0, LOW);
                digitalWrite(speakerPin, HIGH);//turn on buzzer
                delay(3000);//wait 3 seconds
                //pinMode(0, INPUT);
                                    digitalWrite(speakerPin, LOW);//turn off buzzer
                                    delay(3000);//wait 3 seconds
             }   
          }
       }


    avatar
    blevanaks
    vis rouillée
    vis rouillée

    Messages : 44
    Date d'inscription : 24/11/2013
    Age : 36
    Localisation : Essonne

    Re: Checkpoint avec Arduino l'étude..

    Message par blevanaks le Mer 25 Déc - 20:42

    Salut Pic Pac

    J aurai une question sur ce projet

    Tu mets

    " * le bouton vert branché sur la sortie 1
    * le bouton bleu branché sur la sortie 2
    * le bouton rouge branché sur la sortie 3
    * le bouton menu branché sur la sortie 4
    * le buzzer branché sur la sortie 0"

    Cependant sur ton schema tous les boutons poussoir sont connectés sur la pattes 3 et le Buzzer sur la 2, donc je ne comprends pas peux tu m expliquer stp ^^

    Merci par avance
    avatar
    droopaille
    boulon platine
    boulon platine

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

    Re: Checkpoint avec Arduino l'étude..

    Message par droopaille le Mer 25 Déc - 22:11

    ça m'intéresse bien ton truc

    combien ça coute ?
    y a t'il moyen de mettre un code chiffré au lieu d'un bouton pour chaque équipe ?
    peut on relayer vers des sorties pour signaliser avec des feux de couleur la couleur de la position ?
    peut on mettre un truc genre appuyer pendant 30sec sur le bouton avant que ça change de couleur ?
    peut on intégrer un système d'info radio pour signifier à un récepteur la couleur de chaque position ?

    c'est tout pour le moment mais je vais sans doute avoir d'autres questions


    _________________
    Toutes mes créations
    avatar
    blevanaks
    vis rouillée
    vis rouillée

    Messages : 44
    Date d'inscription : 24/11/2013
    Age : 36
    Localisation : Essonne

    Re: Checkpoint avec Arduino l'étude..

    Message par blevanaks le Jeu 26 Déc - 21:18

    Hey Mister Pic Pac, après relecture au calme j'ai compris ^^ tu n as pas l affiché tous les boutons poussoir sur le schéma tout simplement  Laughing 

    Encore merci pour tout Mister
    avatar
    blevanaks
    vis rouillée
    vis rouillée

    Messages : 44
    Date d'inscription : 24/11/2013
    Age : 36
    Localisation : Essonne

    Re: Checkpoint avec Arduino l'étude..

    Message par blevanaks le Mar 7 Jan - 21:31

    Salut à tous

    Pic Pac j aurais une petite question ^^ une fois passé en mode RAZ on ne peut pas revenir au mode standard ? (obligé d éteindre et rallumer ?)

    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 20 Jan - 0:16

    Oui je reboote quand je veux repasser en standart
    avatar
    droopaille
    boulon platine
    boulon platine

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

    Re: Checkpoint avec Arduino l'étude..

    Message par droopaille le Lun 20 Jan - 9:51

    et mes questions à moi pic pac ?


    _________________
    Toutes mes créations
    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 20 Jan - 12:36

    droopaille a écrit:ça m'intéresse bien ton truc

    combien ça coute ?
    y a t'il moyen de mettre un code chiffré au lieu d'un bouton pour chaque équipe ?
    peut on relayer vers des sorties pour signaliser avec des feux de couleur la couleur de la position ?
    peut on mettre un truc genre appuyer pendant 30sec sur le bouton avant que ça change de couleur ?
    peut on intégrer un système d'info radio pour signifier à un récepteur la couleur de chaque position ?

    c'est tout pour le moment mais je vais sans doute avoir d'autres questions


    oups!!! Pardon je n'avais pas vu

    mon petit projet m'est revenu pour une trentaine d'€uros environ.
    un code chiffré oui mais ça demande un peu de codage et un clavier (voir ma bombinette).
    pour les sorties on doit pouvoir mettre une LED de la couleur de l’équipe, attention à la tension et l’ampérage de sortie qui seront assez faible)
    30 secondes avant changement de couleur oui possible avec un peu de codage en plus, tu peux même afficher une barre de chargement.
    pour le système d'info radio, j'y ai déjà pensé mais mes compétences d'autodidacte s’arrête la, j'avais déjà pensé afin de faire plusieurs boitiers et qu'ils puissent discuter entre eux afin de savoir quelle couleur est active sur les points afin de pouvoir se faire un mode "conquête" a la battlefield, ce qui éviterait les drapeaux et ou personne ne sait vraiment la couleur des "checkpoint"

    en espérant avoir répondu a toutes tes questions, si tu en as d'autres n’hésite pas
    avatar
    droopaille
    boulon platine
    boulon platine

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

    Re: Checkpoint avec Arduino l'étude..

    Message par droopaille le Lun 20 Jan - 12:50

    super merci

    dernière question, c'est quand que tu m'en fais un ? What a Face 


    _________________
    Toutes mes créations
    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 20 Jan - 12:57

    j'en ai 2 a la maison en plus lol
    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 20 Jan - 13:01

    si ça continue Droop on va faire de l’échange de bons procédés lol car moi je veux une M2HB
    avatar
    droopaille
    boulon platine
    boulon platine

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

    Re: Checkpoint avec Arduino l'étude..

    Message par droopaille le Lun 20 Jan - 19:06

    tu disais 30€ le boitier ?


    _________________
    Toutes mes créations
    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 20 Jan - 20:45

    il faut compter:
    un Arduino ou un Atmega 328 20€ l'arduino ou 6€ l'Atmega 328
    4 boutons 3 pour les équipes et 1 pour le menu 4€
    4 resistances 10K ohms 1€
    1 crystal 16 Mhz (si vous choisissez l'Atmega 328) 1€
    1 potentiometre 10K 2€
    1 ecran LCD 2 lignes 16 colones 5€
    1 LM7805 (si vous choisissez l'Atmega 328, permet de passer de 9V en 5V) 0,50€
    1 Buzzer 1€
    1 boitier electrique 7 a 10€ suivant les marques
    1 plaque pour monter le circuit 2€
    les cables 2€
    + consommables etain, tresse a dessouder, gaine termo

    les prix sont approximatifs, apres moi je commande sur EBAY et j'essaye de prendre les moins cher et sans frais de port.
    avatar
    droopaille
    boulon platine
    boulon platine

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

    Re: Checkpoint avec Arduino l'étude..

    Message par droopaille le Dim 2 Fév - 19:54

    je comprends pas très bien la différence entre l'arduino et l'atmega.
    l'un est un composant de l'autre mais si tu prends juste le composant, tu es obligé d'avoir un arduino pour programmer non ?


    _________________
    Toutes mes créations
    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 Dim 2 Fév - 20:09

    tout juste Auguste

    l'arduino UNO est une plaquette sur laquelle se trouve un ATMEGA 328P, tu peux charger ton code dedans et le monter sur un autre circuit que tu as monté à coté et qui te reviens du coup beaucoup moins cher que d'utiliser un arduino a chaque fois.

    Contenu sponsorisé

    Re: Checkpoint avec Arduino l'étude..

    Message par Contenu sponsorisé


      La date/heure actuelle est Sam 16 Déc - 13:59