Le forum a migré vers l'adresse suivante:

Forum

Masquer ce message

Simple-Duino Index du Forum



compte a rebours
Aller à la page: <  1, 2, 3, 4

 
Poster un nouveau sujet   Répondre au sujet    Simple-Duino Index du Forum -> Arduino & Électronique -> Questions
Sujet précédent :: Sujet suivant  
Auteur Message
seb03000
Débutant

Hors ligne

Inscrit le: 23 Fév 2014
Messages: 55
Masculin
Niveau d'éléctronique: Intermédiaire

MessagePosté le: Jeu 3 Avr - 18:23 (2014)    Sujet du message: compte a rebours Répondre en citant

PublicitéSupprimer les publicités ?
A ba oui du  12Vcc 300mA sur de l'arduino c'est sur le module il ne vas pas aimé du tout.

Puis tu aurais utilisé les bouton intégré de l'écran LCD = ( Arduino LCD KeyPad Shield (SKU: DFR0009) )

sa t'aurai sans doute permit de ne pas acheté ton clavier , voir aussi utilisé le

serial monitor de l'IDE de l'arduino pour faire office de Bouton ( touche ) , enfin moi perso via le

sérial monitor je ne serré pas le faire, mais bon avec un peut de recherche je pence

que c'est réalisable .
Revenir en haut
fillou
Débutant

Hors ligne

Inscrit le: 21 Mar 2014
Messages: 26
Masculin
Niveau d'éléctronique: Débutant

MessagePosté le: Jeu 3 Avr - 20:05 (2014)    Sujet du message: compte a rebours Répondre en citant

Auriez vous le shema pour brancher le buzzer ??sur relais ET  transistor ?
Revenir en haut
fillou
Débutant

Hors ligne

Inscrit le: 21 Mar 2014
Messages: 26
Masculin
Niveau d'éléctronique: Débutant

MessagePosté le: Jeu 3 Avr - 21:18 (2014)    Sujet du message: compte a rebours Répondre en citant

et en meme temps ce qu il me faudrait comme pieces pour brancher le buzzer !! svp 
Revenir en haut
fillou
Débutant

Hors ligne

Inscrit le: 21 Mar 2014
Messages: 26
Masculin
Niveau d'éléctronique: Débutant

MessagePosté le: Jeu 3 Avr - 21:40 (2014)    Sujet du message: compte a rebours Répondre en citant

est ce que ce relais est celui qu il me faut ?

http://www.gotronic.fr/art-module-a-1-relais-t4-18914.htm
Revenir en haut
seb03000
Débutant

Hors ligne

Inscrit le: 23 Fév 2014
Messages: 55
Masculin
Niveau d'éléctronique: Intermédiaire

MessagePosté le: Jeu 3 Avr - 22:03 (2014)    Sujet du message: compte a rebours Répondre en citant

Je pence que celui si serai bon , ( mais attend confirmation par L'Admin ) pour être

sur avant ton achat,

Relais: http://www.arobose.com/shop/actionneur/241-module-relais-v2.html

Pour le buzzer moi je possède celui pour mais teste : http://www.arobose.com/shop/capteurs-robot/94-module-buzzer-digital.html
Revenir en haut
Admin
Fondateur

Hors ligne

Inscrit le: 12 Avr 2012
Messages: 860
Masculin
Niveau d'éléctronique: Pro

MessagePosté le: Ven 4 Avr - 16:58 (2014)    Sujet du message: compte a rebours Répondre en citant

Sinon tu achetés 1 relais à 1.50 euros chez lextronic, tu prends 1 transistor NPN ou PNP, un coupleur de pile ou batterie ou alimentation quelconque de 6V et tu prends 1 résistance de 1Kohms
RELAIS: http://www.lextronic.fr/P3899-vr3d061c6.html    OU     http://www.lextronic.fr/P3896-vr1d062c.html
Pour les autres composants, c'est classiques
Vos Relais sont assez "bizarre" car ils sont vendus tout fait à 15 euros...
____________________________
http://simple-duino.com
Revenir en haut
fillou
Débutant

Hors ligne

Inscrit le: 21 Mar 2014
Messages: 26
Masculin
Niveau d'éléctronique: Débutant

MessagePosté le: Lun 7 Avr - 20:18 (2014)    Sujet du message: compte a rebours Répondre en citant

je resume l avancé qu on a fait avec les membres du forum (Seb03000 et Admin )
donc mon code est enfin fini !! compte a rebours ok ! armement ok desarmement ok !! sirene a la fin ok !!
ensuite j ai acheté 1 relais ( plus facile pour moi mais je vais me pencher sur la facon d Admin !!)
et donc ma sirene sonne a la fin du decompte !!
il est bien evident que je mettrais des photos une fois tout monté !
voici le code fini :


 
Code:
   #include <Keypad.h> 






#include <LiquidCrystal.h> 
 // initialiser la bibliothèque avec les numéros des broches d'interface 
 LiquidCrystal lcd(8, 9, 4, 5, 6, 7); 
 // mettre en place le nombre de LCD de colonnes et de rangées: 

const byte ROWS = 4; //quatre rangées 
const byte COLS = 3; //trois colonnes 
char keys[ROWS][COLS] = { 
  {'1','2','3'}, 
  {'4','5','6'}, 
  {'9','8','7'}, 
  {'*','0','#'} 
}; 
byte rowPins[ROWS] = {A1, A2,A3,A4}; //se connecter aux broche de ligne du clavier 
byte colPins[COLS] = {11,12,13}; //se connecter aux broche de la colonne du clavier 


Keypad keypad = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS ); 

//Définir tous les Etats à la bombe 
#define READY 0 
#define ARMED 1 
#define DISARMED 2 
#define DETONATED 3 
#define speakerPin 13 

int second=30, minute=1, hour=0; // déclarer des variables de temps 
int bombState=0; //0 = Prêt, 1 = armés, 2 = Désarmé, 3 = exploser 
int repeat=0;//drapeau pour empêcher la répétition de getArmCode (); 
int repeatAdm=0; //drapeau pour empêcher la répétition de getAadminCode (); 
int repeatDisarm=0;//drapeau pour empêcher la répétition de getDisarmCode (); 
int repeatBuzzer=0;//drapeau pour empêcher buzzer d'exécuter plusieurs fois. 
int repeatTimerEdit=0;//drapeau pour empêcher la répétition de la fonction minuterie d'édition 
//int haut-parleur Pin = 2;/ / broche que le buzzer est connecté. 
int blinkArmed = 0;  // drapeau pour le texte de clignotement 
int blinkDisarmed = 0;  // drapeau à clignoter msg désarmé 
int nbBlinkDisarmed = 6;  // drapeau pour le nombre de clignotement désarmé msg (nombre réel de clignotement = nbBlinkDisarmed / 2) 
long previousTime = 0;//détient temps précédent en ms 
long previousDelay = 0;//détient temps précédent en ms depuis buzzer était actif 
long interval = 60000;//60 secondes de retard 


char hour_str[4]; // Pour Convertir int en char 
char minute_str[4]; // Pour Convertir int en char 
char second_str[4]; // Pour Convertir int en char 
char timeInt_str[0];  // Pour Convertir int en char 
char newcode_str[0]; 
char newarmcode_str[0]; 
char newdisarmcode_str[0]; 




char ArmCode[] = "0000";//code pour armer la bombe 
char disarmCode[] = "0000";//code pour désarmer la bombe 
char adminCode[] = "1245";//Code de minuterie à changer 


char ENTER_KEY = '#'; 
char CANCEL_KEY = '*';//stocke la variable clé annuler. 
char timeSetKey = '*';//touche appuyer pour définir le code. 


void setup() 


lcd.begin(16, 2); 
                lcd.clear(); 
                lcd.setCursor(2, 0 ); 
                lcd.print( "Bombe Factice" ); 
                lcd.setCursor( 3, 1 ); 
                lcd.print( "GOOD GAME" ); 
                delay(2000); 
                lcd.setCursor( 2, 0 ); 
                lcd.print( "Bombe Factice" ); 
                lcd.setCursor( 3, 1 ); 
                lcd.print( "BY Fillou" ); 
                delay(2000); 
                lcd.clear(); 
  ////backlightOn(); 
  //blinkCursor(); 
  //stopVscroll(); 
 pinMode(speakerPin, OUTPUT)  ;//définit la broche de sortie de l'avertisseur sonore buzzer 







void loop(){ 

switch (bombState) { 
lcd.clear(); 
                 
    /*********************************************************** 
     *prépare bombe, attend pour le code pour être entrée 
     * 
     ************************************************************/ 
  case READY: 
    int resultOfGetArmCode; 
    lcd.clear(); 
    lcd.setCursor(0, 0 ); 
    delay(100); 
    //showCursor(); 
    //blinkCursor(); 


    lcd.print("Enter ArmCode :"); //Notifier l'utilisateur de l'état. 


    resultOfGetArmCode = getArmCode(); 


    if (resultOfGetArmCode == 1) { 
      lcd.clear(); 
      lcd.setCursor(0, 0 ); 
      delay(100); 
      lcd.print("Correct"); 
      delay(500); 
      lcd.clear(); 
      bombState = ARMED; //Lancer le compte à rebours 


    }//Fermer getArmCode (); = true 


    if (resultOfGetArmCode == 0) {  //si le code ne print "incorrect" 
      tryAgainMsg();         


   }// Fermer getArmCode (); = False. 


    break; 


    /************************************************** 
      * Armé. Compte à rebours commence, attend bouton à presser. 
      * Si le bouton est pressé, attendre pour le code à partir du clavier. 
     ***************************************************/ 


  case ARMED: 
    {   
      char disarmKey = keypad.getKey(); 


      if (disarmKey == '#') { 
       char reslutOfDisarm; 
        lcd.clear();     
        lcd.setCursor(0, 0 ); 


        delay(100); 
        lcd.print("Enter DisarmCode"); //si le bouton de désarmement est pressé, demander à l'utilisateur le code d'entrée. 
        reslutOfDisarm = getDisarmCode(); 


        if (reslutOfDisarm == true) {   
          lcd.clear(); 
          bombState = DISARMED; //et mis à bombState désarmé. 
          break; 
        } //près getDisarmCode (); = True 




        if (reslutOfDisarm == false) { 
          tryAgainMsg(); 


        if (second >= 15) { 
            second = second - 15; 
          } 


         else { 
            if (minute == 0 && hour == 0) { 
              second=1; //exploser. 
            } 
            if (minute > 0) { 
              second = 60 - (15 - second); 
              minute = minute - 1; 
           } 


            if (hour > 0 && minute == 0) { 
              second = 60 - (15 - second); 
              minute = 59; 
              hour = hour - 1 ; 
            } 
          }     
        } //près getDisarmCode (); = false 
     } //près si 


    } 
    countdown(); //si la clé de désarmement n'a pas été enfoncée, continuer le compte à rebours. 


    break; 


    /************************************************************** 
     * Désarmé. Contre arrêté, affiche "bombe désarmé" 
     * 
     **************************************************************/ 


  case DISARMED: 
    int blinkDisarmFlag; 
    blinkDisarmFlag = 0; 
     
    //hideCursor(); 


    for (nbBlinkDisarmed; nbBlinkDisarmed > 0; nbBlinkDisarmed--){  // clignoter msg 
      if (blinkDisarmFlag == 1){   
        lcd.setCursor(2, 0 ); 
        lcd.print("BOMB DISARMED"); //bombe a été désarmé, informer l'utilisateur. 
        lcd.setCursor(2, 1 ); 
        lcd.print("GOOD JOB TEAM"); 
        delay(1000); 
        lcd.setCursor(2, 0 ); 
        lcd.print("GOOD JOB TEAM"); //bombe a été désarmé, informer l'utilisateur. 
        lcd.setCursor(2, 1 ); 
        lcd.print("BOMB DISARMED"); 
        delay(9000); 
       


  asm volatile ("  jmp 0"); 
       blinkDisarmFlag = 0; 
         
      } 
      else{ 
        lcd.clear(); 
        delay(1000);         
        blinkDisarmFlag = 1; 
      }   
    } // clin d'extrémité 
    break; 


    /******************************************************* 

      * Fait exploser. activer buzzer pour 8 bips, puis une longue. 
      * Imprimer "Have A Nice Day. Sur LCD.. 
     ********************************************************/ 


  case DETONATED: 
          if (repeatBuzzer == 0) { //assurez-vous buzzer pour la boucle n'a pas encore été exécuté. 


      digitalWrite(speakerPin, HIGH);//allumer buzzer11111111 
      lcd.setCursor(0, 0 ); 
      lcd.print("BOOOOOOOOOOOOOOM"); //loop message informant l'utilisateur de la bombe détonation. 
      //lcd.setCursor(0, 1 ); 
      //lcd.print("Have A Nice Day"); //loop message informant l'utilisateur de la bombe détonation. 
      delay(5000);//wait 5 seconds 
      digitalWrite(speakerPin, LOW);//désactiver buzzer. 
      repeatBuzzer = 1;//mettre en drapeau pour empêcher le code de boucle de nouveau. 
    } 


    else { 
      //lcd.setCursor(0, 0 ); 
      //lcd.print("BOOOOOOOOOOOOOOM"); //loop message informant l'utilisateur de la bombe détonation. 
      lcd.setCursor(0, 1 ); 
      lcd.print("PERDU !!! LOL"); //loop message informant l'utilisateur de la bombe détonation. 
      delay(9000); 
       


  asm volatile ("  jmp 0"); 


   } 


  }//closes commutateur 
}//ferme loop 
/*vide réinitialisation logicielle () 

}*/ 
/*********************************************************** 
 *    Compte à rebours minuterie principale                                  * 
 *                 countdown()                              * 
 ************************************************************/ 
void countdown(){ 


 static unsigned long lastTick = 0; // mettre en place une variable locale pour maintenir la dernière fois que nous décrémentés une seconde 
  static unsigned long currentMillis = 0; 
  // (variables statiques sont initialisées une fois et conservent leurs valeurs entre les appels de fonction) 


  // diminuer à une seconde tous 1000 millisecondes 
  if (second > 0) { 
    if (millis() - lastTick >= 1000) { 
      lastTick = millis(); 
      second--; 
      serialOutput(); 
    } 
  } 


  // décrémenter une minute toutes les 60 secondes 
  if (minute > 0) { 
    if (second <= 0) { 
      minute--; 
      second = 60; // remettre les secondes à 60 


    } 
  } 


  // décrémenter une heure tous les 60 minutes 
  if (hour > 0) { 
    if (minute <= 0) { 
      hour--; 
      minute = 60; // réinitialiser minutes à 60 
    }//closes if 
  }//closes if 




  //le code ci-dessous bips de la sirène une fois par minute. 
  currentMillis = millis(); 
  if (currentMillis - previousTime > interval) 
  { 
    previousTime = currentMillis; 
    previousDelay = currentMillis; 
  } 

  if (currentMillis - previousDelay > 100) {//100ms durée de chirp 
  } 
} //close countdown(); 




/*********************************************************************** 
* GetArmCode (); * 
  * Attrape le code pour armer la bombe à partir du clavier.                    * 
 *                                                                      * 
 ************************************************************************/ 
boolean getArmCode(){ 
  // retourne vrai lorsque toutes les touches sont pressées dans PW séquence 
  // retourne false lorsque le nombre de touches à pW pressé, mais ne correspond pas exactement au PW 
  // CANCEL_KEY efface toutes les entrées chiffres précédente 
  int count=0;  // le nombre de touches que nous avons 
  int matchCount=0;  // le nombre de touches correspondance 
  lcd.setCursor(0, 1 ); 


  if(repeat == 0){ 


    for(count=0, matchCount=0; count < sizeof(ArmCode)-1; count++){ 
      char key; 
      char key_str[0];  // Définir en tant que chaîne 


      do{ 
        key = keypad.getKey(); 
        delay (100); 
      } 
      while(key == '\0'); 


      key_str[0] = key; 
      lcd.print(key_str); 


      if (key == timeSetKey && repeatTimerEdit == 0){ 
// ***************** MOD HERE *********************   ============> Codes aléatoires pour les bras et désarmement    
       timerSet(); 
        return 2; 
     }       


     if(key == ArmCode[count]) { 
        matchCount++; 
      } 


      else if(key == CANCEL_KEY){ 
        count=0; 
        matchCount=0; 
        return 0; 
      } 
    }//close for loop 
 }//close répéter chèque de drapeau 


  // ici lorsque le même nombre de touches enfoncées en tant que caractères dans le PW 
  if(matchCount == count) { 
    repeat=1; 
    return 1; 
  } 


  else { 
    return 0; 
  } 
}//close getArmCode(); 




/********************************************************************** 
 *                   getDisarmCode();                                  * 
 *    Obtient désarmer le code à partir du clavier.                                   * 
 *                                                                     * 
 ***********************************************************************/ 
boolean getDisarmCode(){ 


  // retourne vrai lorsque toutes les touches sont pressées dans PW séquence 
  // retourne false lorsque le nombre de touches à pW pressé, mais ne correspond pas exactement au PW 
  // CANCEL_KEY efface toutes les entrées chiffres précédente 


  int count=0;  // le nombre de touches que nous avons 
  int matchCount=0;  // le nombre de touches correspondance 
  long disarmTime = millis()+7000L;//7000 au lieu de 15 000 b / c de retards supplémentaires faisant 30s au total 


  lcd.setCursor(0, 1 ); 
  //showCursor(); 
  //blinkCursor(); 


  if(repeatDisarm == 0){ 


    for(count=0, matchCount=0; count < sizeof(disarmCode)-1; count++){ 
      char key; 
      char key_str[0];  // Définir en tant que chaîne 


      do{ 
        if(disarmTime < millis()){ //si 15 secondes se sont écoulées, sautez 
          break; 
        } 


        key = keypad.getKey(); 
       delay (100);       
     } 
      while(key == '\0'); 


      key_str[0] = key; 
      lcd.print(key_str); 


      if(key == disarmCode[count]) { 
        matchCount++; 
      } 


      else if(key == CANCEL_KEY){ 
        count=0; 
        matchCount=0; 
        return false; 
      } 


      if(disarmTime < millis()) { 
        return false; 
        break; 
     } 


    }// close for loop 
  } //close répéter chèque de drapeau 


    // ici lorsque le même nombre de touches enfoncées en tant que caractères dans le PW 
  if(matchCount == count) { 
    repeatDisarm=1; 
    return true; 
  } 
  else { 
    return false; 


  } 
}//close getDisarmCode(); 




/********************************************************************** 
 *                   getAdminCode();                                  * 
 *    Obtient le code administrateur à partir du clavier.                                   * 
 *                                                                     * 
 ***********************************************************************/ 
boolean getAdminCode(){ 


  // retourne vrai lorsque toutes les touches sont pressées dans PW séquence 
  // retourne false lorsque le nombre de touches à pW pressé, mais ne correspond pas exactement au PW 
  // CANCEL_KEY efface toutes les entrées chiffres précédente 


  int count=0;  // le nombre de touches que nous avons 
  int matchCount=0;  // le nombre de touches correspondance 


  lcd.setCursor(0, 1 ); 




  for(count=0, matchCount=0; count < sizeof(adminCode)-1; count++){ 
    char key; 
    char key_str[0];  // Définir en tant que chaîne 


    do{ 
      key = keypad.getKey(); 
      delay (100); 
    } 
    while(key == '\0'); 


//    itoa(key, key_str,10); 
    key_str[0] = key; 
    lcd.print(key_str); 
  //  lcd.print(itoa(key, key_str,16)); 




    if(key == adminCode[count]) { 
      matchCount++; 
    } 


    else if(key == CANCEL_KEY){ 
      count=0; 
      matchCount=0; 
      return false; 
    } 


  }// close for loop 


  // ici lorsque le même nombre de touches enfoncées en tant que caractères dans le PW 
  if(matchCount == count) { 
    return true; 
  } 
  else{ 
    return false; 
  } 
  // Ne rien faire si pwd est faux / fonction Parent envoyer tryAgin msg 
}//close getAdminCode(); 




/********************************************************************* 
 *                        Fonction de la minuterie d'édition          * 
 *                                                                    * 
 *                                                                    * 
 **********************************************************************/ 
void timerSet(){ 
  lcd.clear(); 
  lcd.print("Enter AdminCode"); 
  char resultOfGetAdmCode; 


  resultOfGetAdmCode = getAdminCode(); 


  if (resultOfGetAdmCode == true){ 
    char timeInt; 
    char newcode; 
    char newarmcode; 
    char newdisarmcode; 
    char menupage; 
    int newadmincode; 
    lcd.clear();   
    lcd.setCursor(0, 0 ); 
    lcd.print("1.Admin 2.Time"); 
    lcd.setCursor(0, 1 ); 
    lcd.print("3.Arm 4.Disarm"); 
    do{ 
      menupage = keypad.getKey(); 
    } 
    while(menupage == '\0' || menupage == '*' || menupage == '0' || menupage > 52); 
     
    switch(menupage) { 
      case '1': // Modifier le code admin 
        lcd.clear(); 
        lcd.setCursor(0, 0 ); 
        lcd.print("new admin code :"); 
        lcd.setCursor(0, 1 ); 
        do{ 
           newcode = keypad.getKey(); 
           delay (100); 
        } 
       while(newcode == '\0'); 
       newcode_str[0] = newcode; 
       lcd.print(newcode_str); 
       adminCode[0] = newcode_str[0]; 
       newadmincode = (newcode - '0') * 10;//obtenir le premier chiffre et le convertir en int 
       do{ 
       newcode = keypad.getKey(); 
       delay (100); 
        } 
        while(newcode == '\0'); 
        newcode_str[0] = newcode; 
        lcd.print(newcode_str); 
        adminCode[1] = newcode_str[0]; 
        newadmincode = (newcode - '0') + newadmincode;//obtenir le deuxième chiffre. 
        do{ 
       newcode = keypad.getKey(); 
       delay (100); 
        } 
        while(newcode == '\0'); 
        newcode_str[0] = newcode; 
        lcd.print(newcode_str); 
        adminCode[2] = newcode_str[0]; 
        newadmincode = (newcode - '0') + newadmincode;//obtenir 3 chiffres. 
        do{ 
       newcode = keypad.getKey(); 
       delay (100); 
        } 
        while(newcode == '\0'); 
        newcode_str[0] = newcode; 
        lcd.print(newcode_str); 
        adminCode[3] = newcode_str[0]; 
        newadmincode = (newcode - '0') + newadmincode;//obtenir 4 chiffres. 
        do{ 
       newcode = keypad.getKey(); 
       delay (100); 
        } 
        while(newcode == '\0'); 
        newcode_str[0] = newcode; 
        lcd.print(newcode_str); 
        adminCode[4] = newcode_str[0]; 
        newadmincode = (newcode - '0') + newadmincode;//obtenir 5 chiffres. 
        do{ 
       newcode = keypad.getKey(); 
       delay (100); 
        } 
        while(newcode == '\0'); 
        newcode_str[0] = newcode; 
        lcd.print(newcode_str); 
        adminCode[5] = newcode_str[0]; 
        newadmincode = (newcode - '0') + newadmincode;//obtenir 6 chiffres. 
       
         //newcode = 'L'; 
  
          
          lcd.clear(); 
           
          lcd.setCursor(0, 0 ); 
          lcd.print("NEW ADMINCODE"); 
          lcd.setCursor(0, 1 ); 
          lcd.print(adminCode); 
          delay(5000); 
          lcd.clear(); 
         
        break; 
         
        case '3': // Modifier ArmCode 
        lcd.clear(); 
        lcd.setCursor(0, 0 ); 
        lcd.print("new armcode :"); 
        lcd.setCursor(0, 1 ); 
        do{ 
           newarmcode = keypad.getKey(); 
           delay (100); 
        } 
       while(newarmcode == '\0'); 
       newarmcode_str[0] = newarmcode; 
       lcd.print(newarmcode_str); 
       ArmCode[0] = newarmcode_str[0]; 
       newarmcode = (newarmcode - '0') * 10;//obtenir le premier chiffre et le convertir en int 
       do{ 
       newarmcode = keypad.getKey(); 
       delay (100); 
        } 
        while(newarmcode == '\0'); 
        newarmcode_str[0] = newarmcode; 
        lcd.print(newarmcode_str); 
        ArmCode[1] = newarmcode_str[0]; 
        newarmcode = (newarmcode - '0') + newarmcode;//obtenir le deuxième chiffre. 
        do{ 
       newarmcode = keypad.getKey();delay (100); 
        } 
        while(newarmcode == '\0'); 
        newarmcode_str[0] = newarmcode; 
        lcd.print(newarmcode_str); 
        ArmCode[2] = newarmcode_str[0]; 
        newarmcode = (newarmcode - '0') + newarmcode;//obtenir 3 chiffres. 
        do{ 
       newarmcode = keypad.getKey(); 
       delay (100); 
        } 
        while(newarmcode == '\0'); 
        newarmcode_str[0] = newarmcode; 
        lcd.print(newarmcode_str); 
        ArmCode[3] = newarmcode_str[0]; 
        newarmcode = (newarmcode - '0') + newarmcode;//obtenir 4 chiffres. 
        do{ 
       newarmcode = keypad.getKey(); 
       delay (100); 
        } 
        while(newarmcode == '\0'); 
        newarmcode_str[0] = newarmcode; 
        lcd.print(newarmcode_str); 
        ArmCode[4] = newarmcode_str[0]; 
        newarmcode = (newarmcode - '0') + newarmcode;//obtenir 5 chiffres. 
        do{ 
       newarmcode = keypad.getKey(); 
       delay (100); 
        } 
        while(newarmcode == '\0'); 
        newarmcode_str[0] = newarmcode; 
        lcd.print(newarmcode_str); 
        ArmCode[5] = newarmcode_str[0]; 
        newarmcode = (newarmcode - '0') + newarmcode;//obtenir 6 chiffres. 
       
         //newcode = 'L'; 
  
          
          lcd.clear(); 
           
          lcd.setCursor(0, 0 ); 
          lcd.print("NEW ARMCODE"); 
          lcd.setCursor(0, 1 ); 
          lcd.print(ArmCode); 
          delay(5000); 
          lcd.clear(); 
         
        break; 
         
        case '4': // Modifier disarmcode 
        lcd.clear(); 
        lcd.setCursor(0, 0 ); 
        lcd.print("new disarmcode :"); 
        lcd.setCursor(0, 1 ); 
        do{ 
           newdisarmcode = keypad.getKey(); 
        delay (100); 
      } 
       while(newdisarmcode == '\0'); 
       newdisarmcode_str[0] = newdisarmcode; 
       lcd.print(newdisarmcode_str); 
       disarmCode[0] = newdisarmcode_str[0]; 
       newdisarmcode = (newdisarmcode - '0') * 10;//obtenir le premier chiffre et le convertir en int 
       do{ 
       newdisarmcode = keypad.getKey(); 
       delay (100); 
        } 
        while(newdisarmcode == '\0'); 
        newdisarmcode_str[0] = newdisarmcode; 
        lcd.print(newdisarmcode_str); 
        disarmCode[1] = newdisarmcode_str[0]; 
        newdisarmcode = (newdisarmcode - '0') + newdisarmcode;//obtenir le deuxième chiffre. 
        do{ 
       newdisarmcode = keypad.getKey(); 
       delay (100); 
        } 
        while(newdisarmcode == '\0'); 
        newdisarmcode_str[0] = newdisarmcode; 
        lcd.print(newdisarmcode_str); 
        disarmCode[2] = newdisarmcode_str[0]; 
        newdisarmcode = (newdisarmcode - '0') + newdisarmcode;//obtenir 3 chiffres. 
        do{ 
       newdisarmcode = keypad.getKey(); 
       delay (100); 
        } 
        while(newdisarmcode == '\0'); 
        newdisarmcode_str[0] = newdisarmcode; 
        lcd.print(newdisarmcode_str); 
        disarmCode[3] = newdisarmcode_str[0]; 
        newdisarmcode = (newdisarmcode - '0') + newdisarmcode;//obtenir 4 chiffres. 
        do{ 
       newdisarmcode = keypad.getKey(); 
       delay (100); 
        } 
        while(newdisarmcode == '\0'); 
        newdisarmcode_str[0] = newdisarmcode; 
        lcd.print(newdisarmcode_str); 
        disarmCode[4] = newdisarmcode_str[0]; 
        newdisarmcode = (newdisarmcode - '0') + newdisarmcode;//obtenir 5 chiffres. 
        do{ 
       newdisarmcode = keypad.getKey(); 
       delay (100); 
        } 
        while(newdisarmcode == '\0'); 
        newdisarmcode_str[0] = newdisarmcode; 
        lcd.print(newdisarmcode_str); 
        disarmCode[5] = newdisarmcode_str[0]; 
        newdisarmcode = (newdisarmcode - '0') + newdisarmcode;//obtenir 6 chiffres. 
       
         //newcode = 'L'; 
  


         lcd.clear(); 
           
          lcd.setCursor(0, 0 ); 
          lcd.print("NEW DISARMCODE"); 
          lcd.setCursor(0, 1 ); 
          lcd.print(disarmCode); 
          delay(5000); 
          lcd.clear(); 
         
        break; 
         
      case '2': // minuteur 
        lcd.clear(); 
       lcd.print("Enter xx Hours"); 
        lcd.setCursor(0, 1 ); 
        do{ 
           timeInt = keypad.getKey(); 
        } 
        while(timeInt == '\0' || timeInt < '0' || timeInt > '6'); 
        timeInt_str[0] = timeInt; 
        lcd.print(timeInt_str); 
  
        hour = (timeInt - '0') * 10;//obtenir le premier chiffre et le convertir en int 
        do{ 
        timeInt = keypad.getKey(); 
        } 
        while(timeInt == '\0'); 
        timeInt_str[0] = timeInt; 
        lcd.print(timeInt_str); 
     
        hour = (timeInt - '0') + hour;//obtenir le deuxième chiffre. 
        delay(800); 
          lcd.clear(); 
          timeInt = 'L'; 
          // ------------------------------------------------------------------ 
          lcd.print("Enter xx Minutes"); 
          lcd.setCursor(0, 1 ); 
          do{ 
            timeInt = keypad.getKey(); 
          } 
          while(timeInt == '\0' || timeInt < '0' || timeInt > '6'); 
          timeInt_str[0] = timeInt; 
          lcd.print(timeInt_str); 
       
          while (timeInt < '0' || timeInt > '6'){ 
            timeInt = keypad.getKey(); 
          } 
          minute = (timeInt - '0') * 10;//obtenir le premier chiffre et le convertir en int 
          do{ 
            timeInt = keypad.getKey(); 
          } 
          while(timeInt == '\0'); 
          minute = (timeInt - '0') + minute;//obtenir le deuxième chiffre. 
          timeInt_str[0] = timeInt; 
          lcd.print(timeInt_str); 
          delay(800);   
         lcd.clear(); 
          timeInt = 'L'; 
          // ------------------------------------------------------------------ 
          lcd.print("Enter xx Seconds"); 
          lcd.setCursor(0, 1 ); 
          do{ 
            timeInt = keypad.getKey(); 
          } 
          while(timeInt == '\0' || timeInt < '0' || timeInt > '6'); 
          timeInt_str[0] = timeInt; 
          lcd.print(timeInt_str); 
       
          while (timeInt < '0' || timeInt > '6'){ 
            timeInt = keypad.getKey(); 
          } 
          second = (timeInt - '0') * 10;//obtenir le premier chiffre et le convertir en int 
          do{ 
            timeInt = keypad.getKey(); 
          } 
          while(timeInt == '\0'); 
          second = (timeInt - '0') + second;//obtenir le deuxième chiffre. 
          timeInt_str[0] = timeInt; 
          lcd.print(timeInt_str); 
          delay(800);     
          lcd.clear(); 
          timeInt = 'L'; 
          lcd.print("Time set :"); 
          lcd.setCursor(0, 1 ); 
          itoa (hour, hour_str, 10); 
          itoa (minute, minute_str, 10); 
          itoa (second, second_str, 10); 
          lcd.print(hour_str); 
          lcd.print(":"); 
          lcd.print(minute_str); 
          lcd.print(":"); 
          lcd.print(second_str); 
         delay(2000);   
         // ---------------------- Mettre aléatoire ici -------------------------- 
          repeatTimerEdit = 1; 
        }//fin de getAdminCode == vrai 
       
        if(resultOfGetAdmCode == false){ 
         tryAgainMsg(); 
         // Ne rien faire si pwd est faux / fonction Parent envoyer tryAgin msg 
         
       } 
        lcd.clear(); 
      }//fin de la fonction d'édition de temporisateur 







/**************************************************************** 
 *                     serialOutput();                           * 
 *imprime les valeurs du temporisateur sur la connexion en série * 
 *         et sur ​​l'écran LCD                                     * 
 *****************************************************************/ 
void serialOutput() { 


  
  itoa (hour, hour_str, 10); 
  itoa (minute, minute_str, 10); 
  itoa (second, second_str, 10); 
  


  if(bombState != DISARMED){ 
  
   lcd.setCursor(0, 0 ); 
    delay(20); 
    if (blinkArmed == 0){ 
      lcd.print("!!   ARMED    !!"); 
      blinkArmed=1; 
    } 
    else { 
      lcd.print("!!            !!"); 
      blinkArmed=0;       
    } 
    lcd.setCursor(0, 1 ); 
     
    lcd.print("Time = "); 
    if (hour <=9) { 
    lcd.print("0"); 
    lcd.print(hour_str); // l'heure, envoyé à l'écran en format décimal 
    } 
    else{ 
    lcd.print(hour_str); 
   } 
    lcd.print(":"); // points entre l'heure et la minute 
    if (minute <=9) { 
    lcd.print("0"); 
    lcd.print(minute_str); // la minute, envoyé à l'écran au format décimal 
    } 
    else{ 
    lcd.print(minute_str); 
    } 
    lcd.print(":"); // points entre la minute et la seconde 
    if (second <=9) { 
    lcd.print("0"); 
    lcd.print(second_str); //la minute, envoyé à l'écran au format décimal 
    } 
    else{ 
      lcd.print(second_str); 
    } 
    //termination condition 
  } 
  if (second == 0 && minute == 0 && hour == 0) { 
    lcd.clear(); 
   digitalWrite(speakerPin, HIGH);//turn on buzzer11111111 
   bombState = DETONATED; //LCD clair et mis en état ​​de bombe à "exploser" lorsque le temps vient à manquer 
   digitalWrite(speakerPin, LOW);//turn off buzzer 
    
  } 


  if (bombState == DISARMED) { 
    lcd.clear(); 
 } 
}//close serialOutput(); 




void tryAgainMsg(){ 
  lcd.clear(); 
  //hideCursor(); 
  delay(100);         
  lcd.print("T"); 
  delay(150); 
  lcd.print("r"); 
  delay(150); 
  lcd.print("y"); 
  delay(150);         
  lcd.print(" "); 
  delay(150); 
  lcd.print("a"); 
  delay(150);           
 lcd.print("g"); 
  delay(150); 
  lcd.print("a"); 
  delay(150);           
 lcd.print("i"); 
  delay(150); 
  lcd.print("n"); 
  delay(150); 
  lcd.print(" "); 
  delay(150); 
  lcd.print("!"); 
  delay(1000);   



void incorrectMsg(){ 
  lcd.clear(); 
  
  delay(100);         
  lcd.print("I"); 
  delay(350); 
  lcd.print("n"); 
  delay(350); 
  lcd.print("c"); 
  delay(350);         
  lcd.print("o"); 
  delay(350); 
  lcd.print("r"); 
  delay(350);           
 lcd.print("r"); 
  delay(350); 
  lcd.print("e"); 
  delay(350);           
 lcd.print("c"); 
  delay(350); 
  lcd.print("t"); 
  delay(1000);   






















































































































ma derniere question : est il possible de faire sonner la sirene plus fort ??
http://www.gotronic.fr/art-sirene-piezo-ps583-12680.htm
Revenir en haut
Contenu Sponsorisé






MessagePosté le: Aujourd’hui à 01:45 (2017)    Sujet du message: compte a rebours

Revenir en haut
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    Simple-Duino Index du Forum -> Arduino & Électronique -> Questions Toutes les heures sont au format GMT + 1 Heure
Aller à la page: <  1, 2, 3, 4
Page 4 sur 4

 
Sauter vers:  

Index | creer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Powered by phpBB
Propulsé par Simple-Duino