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
fillou
Débutant

Hors ligne

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

MessagePosté le: Jeu 27 Mar - 22:55 (2014)    Sujet du message: compte a rebours Répondre en citant

PublicitéSupprimer les publicités ?
en fait j ai rien sur l analogie !!tout est libre!! 
je l ai brancher (A1,A2,A3,A4,11,12,13,) actuellemnt le clavier!!
et la j ai comme chiffre le 1 le 2 le 4 le 5 le 8 le 9 le 0 et le # 


c quand meme bizare que j ai des chiffres mais pas tous !!
Revenir en haut
Admin
Fondateur

Hors ligne

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

MessagePosté le: Ven 28 Mar - 12:04 (2014)    Sujet du message: compte a rebours Répondre en citant

Mhh des problèmes dans le branchements ??
Tu as adaptés ton script aux broches analogiques ?
____________________________
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: Ven 28 Mar - 16:39 (2014)    Sujet du message: compte a rebours Répondre en citant

le script est le meme que celui des broches utilisées !!non ??
Je l ai brancher comme ca (A1,A2,A3,A4,11,12,13,)  et mon script pareil !! c pas comme ca ??


ensuite j ai trouver ce code mais le bzuzzer y est tout le temps (alors que je ne voudrais  pas!! et je levoudrais a la fin !!) peux tu m aider   ?? stp :




/********************************************************************************
**********
 * Airsoft C4 Prop by Joshua Burgess  
 * v2 modify by PIC-PAC
 * 13/08/2013
 ********************************************************************************
***********/


/********************************************************************************
**********
 *
 *  TO DO
 *  ajouter option fil à  couper
 ********************************************************************************
***********/


#include <Keypad.h>


#include <LiquidCrystal.h>
 // initialize the library with the numbers of the interface pins
 LiquidCrystal lcd(8, 9, 4, 5, 6,7 );
 // set up the LCD's number of columns and rows:
int pinLed1 =2;
int pinLed2 =3;


const byte ROWS = 4; //four rows
const byte COLS = 3; //three columns
char keys[ROWS][COLS] = {
  {'1','2','3'},
  {'4','5','6'},
  {'9','8','7'},
  {'*','0','*'}
};
byte rowPins[ROWS] = {A1, A2,A3,A4}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {11,12,13}; //connect to the column pinouts of the keypad


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


//Define all the bomb states  
#define READY 0
#define ARMED 1
#define DISARMED 2
#define DETONATED 3
#define speakerPin 4


int second=30, minute=1, hour=0; // declare time variables
int bombState=0; //0 = Ready, 1 = Armed, 2 = Disarmed, 3 = detonated
int repeat=0;//flag to prevent repeat of getArmCode();
int repeatAdm=0; //flag to prevent repeat of getAadminCode();
int repeatDisarm=0;//flag to prevent repeat of getDisarmCode();
int repeatBuzzer=0;//flag to prevent buzzer from running multiple times.
int repeatTimerEdit=0;//flag to prevent repeat of timer edit function
//int speakerPin = 2;//pin that the piezo buzzer is connected to.
int blinkArmed = 0;  // flag for blink text
int blinkDisarmed = 0;  // flag to blink disarmed msg
int nbBlinkDisarmed = 6;  // flag for number of blink disarmed msg (real number of blink = nbBlinkDisarmed / 2)
long previousTime = 0;//holds previous time in ms
long previousDelay = 0;//holds previous time in ms since buzzer was active
long interval = 60000;//60 second delay


char hour_str[4]; // For Convert int in char
char minute_str[4]; // For Convert int in char
char second_str[4]; // For Convert int in char
char timeInt_str[0];  // For Convert int in char
char newcode_str[0];
char newarmcode_str[0];
char newdisarmcode_str[0];




char ArmCode[] = "0000";//code to arm the bomb
char disarmCode[] = "0000";//code to disarm the bomb
char adminCode[] = "1245";//code to change timer


char ENTER_KEY = '#';
char CANCEL_KEY = '*';//stores the cancel key variable.
char timeSetKey = '*';//key to press to set the code.


void setup()
{
  pinMode(pinLed1, OUTPUT);
  pinMode(pinLed2, OUTPUT);
 
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)  ;//sets the output pin for the piezo buzzer


}




void loop(){
  
  digitalWrite(pinLed1, HIGH);
  digitalWrite(pinLed2, HIGH);
  delay(500);
  digitalWrite(pinLed1, LOW);
  digitalWrite(pinLed2, LOW);
  delay(500);
  
  switch (bombState) {
lcd.clear();
                
    /***********************************************************
     *Ready state prepares bomb, waits for arm code to be input
     *
     ************************************************************/
  case READY:
    int resultOfGetArmCode;
    lcd.clear();
    lcd.setCursor(0, 0 );
    delay(100);
    //showCursor();
    //blinkCursor();


    lcd.print("Enter ArmCode :"); //Notify user of status.


    resultOfGetArmCode = getArmCode();


    if (resultOfGetArmCode == 1) {
      lcd.clear();
      lcd.setCursor(0, 0 );
      delay(100);
      lcd.print("Correct");
      delay(500);
      lcd.clear();
      bombState = ARMED; //Start countdown


    }//Close getArmCode(); = true


    if (resultOfGetArmCode == 0) {  //if code fails print "Incorrect"
      tryAgainMsg();        


   }// Close getArmCode(); = false.


    break;


    /**************************************************
     *Armed state. Countdown starts, waits for pushbutton to be pressed.
     *If button is pressed, wait for code from keypad.
     ***************************************************/


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


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


        delay(100);
        lcd.print("Enter DisarmCode"); //if disarm button is pressed, ask user to input code.
        reslutOfDisarm = getDisarmCode();


        if (reslutOfDisarm == true) {  
          lcd.clear();
          bombState = DISARMED; //and set bombState to disarmed.
          break;
        } //close getDisarmCode(); = True




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


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


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


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


    }
    countdown(); //if disarm key has not been pressed, continue countdown.


    break;


    /**************************************************************
     *DISARMED. Counter stopped, displays "bomb disarmed"
     *
     **************************************************************/


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


    for (nbBlinkDisarmed; nbBlinkDisarmed > 0; nbBlinkDisarmed--){  // blink msg
      if (blinkDisarmFlag == 1){  
        lcd.setCursor(2, 0 );
        lcd.print("BOMB DISARMED"); //bomb has been disarmed, inform user.
        lcd.setCursor(2, 1 );
        lcd.print("GOOD JOB TEAM");
        delay(1000);
        lcd.setCursor(2, 0 );
        lcd.print("GOOD JOB TEAM"); //bomb has been disarmed, inform user.
        lcd.setCursor(2, 1 );
        lcd.print("BOMB DISARMED");
        delay(9000);
      


  asm volatile ("  jmp 0");
       blinkDisarmFlag = 0;
        
      }
      else{
        lcd.clear();
        delay(1000);        
        blinkDisarmFlag = 1;
      }  
    } // end blink
    break;


    /*******************************************************
     *Detonated. activate buzzer for 8 beeps, then 1 long.
     *Print "Have A Nice Day. to LCD.
     ********************************************************/


  case DETONATED:
          if (repeatBuzzer == 0) { //make sure buzzer for loop has not already been run.


      digitalWrite(speakerPin, HIGH);//turn on buzzer11111111
      lcd.setCursor(0, 0 );
      lcd.print("BOOOOOOOOOOOOOOM"); //loop message informing user of bomb detonation.
      //lcd.setCursor(0, 1 );
      //lcd.print("Have A Nice Day"); //loop message informing user of bomb detonation.
      delay(5000);//wait 5 seconds
      digitalWrite(speakerPin, LOW);//turn off buzzer
      repeatBuzzer = 1;//set flag to prevent code from looping again.
    }


    else {
      //lcd.setCursor(0, 0 );
      //lcd.print("BOOOOOOOOOOOOOOM"); //loop message informing user of bomb detonation.
      lcd.setCursor(0, 1 );
      lcd.print("PERDU !!! LOL"); //loop message informing user of bomb detonation.
      delay(9000);
      


  asm volatile ("  jmp 0");


   }


  }//closes switch
}//closes loop
/*void software_Reset()
{
}*/
/***********************************************************
 * Main countdown timer                                     *
 *                 countdown()                              *
 ************************************************************/
void countdown(){


 static unsigned long lastTick = 0; // set up a local variable to hold the last time we decremented one second
  static unsigned long currentMillis = 0;
  // (static variables are initialized once and keep their values between function calls)


  // decrement one second every 1000 milliseconds
  if (second > 0) {
    if (millis() - lastTick >= 1000) {
      lastTick = millis();
      second--;
      serialOutput();
    }
  }


  // decrement one minute every 60 seconds
  if (minute > 0) {
    if (second <= 0) {
      minute--;
      second = 60; // reset seconds to 60


    }
  }


  // decrement one hour every 60 minutes
  if (hour > 0) {
    if (minute <= 0) {
      hour--;
      minute = 60; // reset minutes to 60
    }//closes if
  }//closes if




  //the code below beeps the siren once every minute.
  currentMillis = millis();
  if (currentMillis - previousTime > interval)
  {
    previousTime = currentMillis;
    previousDelay = currentMillis;
  
    digitalWrite(speakerPin, HIGH);//turn on buzzer


  }


  if (currentMillis - previousDelay > 100) {//100ms chirp duration
    digitalWrite(speakerPin, LOW);//turn off buzzer
  }
} //close countdown();




/***********************************************************************
 *                          getArmCode();                               *
 *  Grabs the code to arm the bomb from the keypad.                     *
 *                                                                      *
 ************************************************************************/
boolean getArmCode(){
  // returns true when all PW keys are pressed in sequence
  // returns false when number of keys in pW pressed but don't exactly match the PW
  // CANCEL_KEY erases all previous digits input
  int count=0;  // how many keys we have
  int matchCount=0;  // how many keys match
  lcd.setCursor(0, 1 );


  if(repeat == 0){


    for(count=0, matchCount=0; count < sizeof(ArmCode)-1; count++){
      char key;
      char key_str[0];  // Define as string


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


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


      if (key == timeSetKey && repeatTimerEdit == 0){
// ***************** MOD HERE *********************   ============> Random codes for arm & disarm    
       timerSet();
        return 2;
     }      


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


      else if(key == CANCEL_KEY){
        count=0;
        matchCount=0;
        return 0;
      }
    }//close for loop
 }//close repeat flag check


  // here when the same number of keys pressed as characters in the PW
  if(matchCount == count) {
    repeat=1;
    return 1;
  }


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




/**********************************************************************
 *                   getDisarmCode();                                  *
 *    Gets disarm code from keypad.                                    *
 *                                                                     *
 ***********************************************************************/
boolean getDisarmCode(){


  // returns true when all PW keys are pressed in sequence
  // returns false when number of keys in pW pressed but don't exactly match the PW
  // CANCEL_KEY erases all previous digits input


  int count=0;  // how many keys we have
  int matchCount=0;  // how many keys match
  long disarmTime = millis()+7000L;//7000 instead of 15000 b/c of added delays making total 30s


  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];  // Define as string


      do{
        if(disarmTime < millis()){ //if 15 seconds have passed, bail out
          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 repeat flag check


    // here when the same number of keys pressed as characters in the PW
  if(matchCount == count) {
    repeatDisarm=1;
    return true;
  }
  else {
    return false;


  }
}//close getDisarmCode();




/**********************************************************************
 *                   getAdminCode();                                  *
 *    Gets admin code from keypad.                                    *
 *                                                                     *
 ***********************************************************************/
boolean getAdminCode(){


  // returns true when all PW keys are pressed in sequence
  // returns false when number of keys in pW pressed but don't exactly match the PW
  // CANCEL_KEY erases all previous digits input


  int count=0;  // how many keys we have
  int matchCount=0;  // how many keys match


  lcd.setCursor(0, 1 );




  for(count=0, matchCount=0; count < sizeof(adminCode)-1; count++){
    char key;
    char key_str[0];  // Define as string


    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


  // here when the same number of keys pressed as characters in the PW
  if(matchCount == count) {
    return true;
  }
  else{
    return false;
  }
  // Do nothing if pwd is false / Parent function send tryAgin msg
}//close getAdminCode();




/*********************************************************************
 *                        Timer edit function                         *
 *                                                                    *
 *                                                                    *
 **********************************************************************/
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': // Edit admin code
        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;//get first digit and convert to 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;//get second digit.
        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;//get 3rd digit.
        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;//get 4th digit.
        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;//get 5th digit.
        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;//get 6th digit.
      
         //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': // Edit 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;//get first digit and convert to 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;//get second digit.
        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;//get 3rd digit.
        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;//get 4th digit.
        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;//get 5th digit.
        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;//get 6th digit.
      
         //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': // Edit 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;//get first digit and convert to 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;//get second digit.
        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;//get 3rd digit.
        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;//get 4th digit.
        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;//get 5th digit.
        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;//get 6th digit.
      
         //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': // Timer
        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;//get first digit and convert to int
        do{
        timeInt = keypad.getKey();
        }
        while(timeInt == '\0');
        timeInt_str[0] = timeInt;
        lcd.print(timeInt_str);
    
        hour = (timeInt - '0') + hour;//get second digit.
        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;//get first digit and convert to int
          do{
            timeInt = keypad.getKey();
          }
          while(timeInt == '\0');
          minute = (timeInt - '0') + minute;//get second digit.
          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;//get first digit and convert to int
          do{
            timeInt = keypad.getKey();
          }
          while(timeInt == '\0');
          second = (timeInt - '0') + second;//get second digit.
          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);  
         // ---------------------- Put randomize here --------------------------
          repeatTimerEdit = 1;
        }//end of getAdminCode == true
      
        if(resultOfGetAdmCode == false){
         tryAgainMsg();
         // Do nothing if pwd is false / Parent function send tryAgin msg
        
       }
        lcd.clear();
      }//end of timer edit function
}






/****************************************************************
 *                     serialOutput();                           *
 *    prints the values of the timer over the serial connection  *
 *         and onto the 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); // the hour, sent to the screen in decimal format
    }
    else{
    lcd.print(hour_str);
   }
    lcd.print(":"); // a colon between the hour and the minute
    if (minute <=9) {
    lcd.print("0");
    lcd.print(minute_str); // the minute, sent to the screen in decimal format
    }
    else{
    lcd.print(minute_str);
    }
    lcd.print(":"); // a colon between the minute and the second
    if (second <=9) {
    lcd.print("0");
    lcd.print(second_str); // the minute, sent to the screen in decimal format
    }
    else{
      lcd.print(second_str);
    }
    //termination condition
  }
  if (second == 0 && minute == 0 && hour == 0) {
    lcd.clear();
    
    bombState = DETONATED; //clear LCD and set bomb state to "detonated" when timer runs out
  }


  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);  
}
Revenir en haut
fillou
Débutant

Hors ligne

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

MessagePosté le: Mer 2 Avr - 00:18 (2014)    Sujet du message: compte a rebours Répondre en citant

help me !! lol 
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: Mer 2 Avr - 12:17 (2014)    Sujet du message: compte a rebours Répondre en citant

Bonjour Filou je viens de voir ton code de plus j'ai le même shield LCD que toi.

Dans ton code , quand je le compile j'ai une erreur que voici ( 'Keypad' does not name a type )

sketch_apr02a:901: error ' keypad' was not declared in this scope.

Bon c'est comme si il manquer une librairie a rajouté , ou une mauvaise déclaration.

A tu cette erreur là ???


éditer à: 13h21


Re oui en effet je viens de trouvé, il y a bien une librairie a prendre ici http://playground.arduino.cc/uploads/Code/keypad.zip
Revenir en haut
Admin
Fondateur

Hors ligne

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

MessagePosté le: Mer 2 Avr - 12:36 (2014)    Sujet du message: compte a rebours Répondre en citant

M'ouai c'est bizarre...
J'ai l'impression que c'est l'incompatibilité entre la librairie et les pins analogiques.
Tu as quoi de branché sur tes pins numériques ?
Si il te manque encore des sorties, il faudra soit se tourner vers des registres à décalages ou alors l'Arduino MEGA, selon ce que tu contrôle.
____________________________
http://simple-duino.com
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: Mer 2 Avr - 12:51 (2014)    Sujet du message: compte a rebours Répondre en citant

Je viens de faire le teste , en enclenchant mon LCD sur ma carte Arduino Duemilanove 328,

plus le buzzer sur la pin 4, est cela fonctionne de mon coté , mise a par le faite de rentré les

numéro a l'aide des bouton du LCD qui ne fonctionne pas ( bon c'est déjà un début ).

Bon il ne faut pas oublier que sur se LCD il y a le  réglage du contraste qui se fait sur

le petit bloque de couleur bleu a l'aide d'un tournevis.
Revenir en haut
Admin
Fondateur

Hors ligne

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

MessagePosté le: Mer 2 Avr - 16:25 (2014)    Sujet du message: compte a rebours Répondre en citant

seb --> On parle ici de la librairie keypad que fillou utilise pour gérer son clavier matriciel.


Je penche vraiment pour une incompatibilité de la librairie avec les pins analogiques. Il faudrait nous dire ce qui est branché sur ton arduino et sur quels pins.
____________________________
http://simple-duino.com
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: Mer 2 Avr - 17:39 (2014)    Sujet du message: compte a rebours Répondre en citant

A ok d'accor je n'avais pas compris , est bien je me suis renségnier il savaire que les pins ne son pas utilisable dessus, tu a que quelque pin digital que tu peux convoité mais c'est tous.

pc je corigeré mais faute orthographique se soir
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: Mer 2 Avr - 18:08 (2014)    Sujet du message: compte a rebours Répondre en citant

Et t'il possible de mettre une photo de tes branchement de tout tes module ???

édité à: 21h21

Je me disais , mais pour quoi ne pas utilisé les boutons de la carte LCD qui son déjà intégré,

pour faire se que tu veux faire, un compte a rebours
???
Revenir en haut
fillou
Débutant

Hors ligne

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

MessagePosté le: Mer 2 Avr - 20:31 (2014)    Sujet du message: compte a rebours Répondre en citant

en fait  il me Reste juste a  mettre le buzzer à la fin comment fait on ?
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: Mer 2 Avr - 21:03 (2014)    Sujet du message: compte a rebours Répondre en citant

quelle est le buzzer que tu possède , une photo???

Puis si de ton coté cela fonctionne pour toi , c'est se que je comprend quand tu écrit se si:


 
Citation:
 en fait  il me Reste juste a  mettre le buzzer à la fin comment fait on ?

Donc qui veut dire que tu a réussi a faire fonctionné ton clavier matriciel ???
Revenir en haut
fillou
Débutant

Hors ligne

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

MessagePosté le: Mer 2 Avr - 21:08 (2014)    Sujet du message: compte a rebours Répondre en citant

j ai commande Un Autre Clavier neuf et aveC SEULEMENT 7 fils et la ca FONCTIONNE!
et le buzzer c celui là:
http://www.gotronic.fr/art-sirene-piezo-ps583-12680.htm
Revenir en haut
Admin
Fondateur

Hors ligne

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

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

en 12Vcc 300mA c'est impossible de brancher direct sur l'Arduino.
Il faut , soit passer par un relais, soit par un transistor.
____________________________
http://simple-duino.com
Revenir en haut
Admin
Fondateur

Hors ligne

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

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

Pour infos, tu nous aurait dit les broches utilisés et par quoi, on aurait sans doute réussi à te faire éviter l'achat d'un nouveau clavier matriciel.
Je dis ça...
____________________________
http://simple-duino.com
Revenir en haut
Contenu Sponsorisé






MessagePosté le: Aujourd’hui à 19:41 (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 3 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