Le forum a migré vers l'adresse suivante:

Forum

Masquer ce message

Simple-Duino Forum Index



problème de code


 
Post new topic   Reply to topic    Simple-Duino Forum Index -> Arduino & Électronique -> Questions
Previous topic :: Next topic  
Author Message
oneill
Débutant

Offline

Joined: 03 Jun 2013
Posts: 60
Masculin
Niveau d'éléctronique: Débutant

PostPosted: Sat 25 Jan - 15:37 (2014)    Post subject: problème de code Reply with quote

PublicitéSupprimer les publicités ?
Bonjour, voila mon problème, j'aimerais pouvoir changer le password quand j'appuie sur # . Voila mon code mais sa marche pas.

Code:


#include <Password.h> //http://www.arduino.cc/playground/uploads/Code/Password.zip
#include <Keypad.h> //http://www.arduino.cc/playground/uploads/Code/Keypad.zip
#include "pitches.h"

Password password = Password( "1379" ); // Le code
char code[4];

const int Buzzer = 10; // sortie alarme
int i = 0, j = 0, k = 0; // variables de boucle
int melody[] = {
  NOTE_C4, NOTE_G3, NOTE_G3, NOTE_A3, NOTE_G3, 0, NOTE_B3, NOTE_C4
};
int noteDurations[] = {
  4, 8, 8, 4, 4, 4, 4, 4
};

const byte ROWS = 4; // 4 lignes
const byte COLS = 3; //  3colonnes
// Position des touches
char keys[ROWS][COLS] = {
  {
    '1', '2', '3'
  }
  ,
  {
    '4', '5', '6'
  }
  ,
  {
    '7', '8', '9'
  }
  ,
  {
    '*', '0', '#'
  }
};

byte rowPins[ROWS] = {43, 41, 39, 37}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {35, 33, 31}; //connect to the column pinouts of the keypad


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

void setup() {
  pinMode(Buzzer, OUTPUT);
  Serial.begin(9600);
  keypad.addEventListener(keypadEvent); //ajout d'un event sur le keypad
}

void loop() {
  keypad.getKey(); // Appel de l'event du keyPad
}

//D'eclaration de l'events keyPad
void keypadEvent(KeypadEvent eKey) {
  switch (keypad.getState()) {
    case PRESSED:
      Serial.print("Pressed: ");
      Serial.println(eKey);
      switch (eKey) {
        case '*':
          checkPassword();
          break;
        case '#':
          while(k <= 4) {
            code[k] = eKey;
            k++;
          }
          password.reset();
          break;
        default:
          password.append(eKey);
      }
  }
}

//Fonction checkPassword
void checkPassword() {
  if (password.evaluate()) {
    Serial.println("Code bon");
    password.reset();
    Serial.println(code[0]);
    Serial.println(code[1]);
    Serial.println(code[2]);
    Serial.println(code[3]);
    for (int thisNote = 0; thisNote < 8; thisNote++) {
      int noteDuration = 1000 / noteDurations[thisNote];
      tone(Buzzer, melody[thisNote], noteDuration);
      int pauseBetweenNotes = noteDuration * 1.30;
      delay(pauseBetweenNotes);
      noTone(Buzzer);
    }
    delay(10);
  }
  else {
    Serial.println("Code mauvais");
    password.reset();
    alarme1();
  }
}

//Fonction alarme1
void alarme1() {
  for (j = 0; j < 5; j++) {
    for (i = 2000; i < 3000; i++) {
      tone(Buzzer, i);
      delay(1);
    }
    for (i = 3000; i > 2000; i--) {
      tone(Buzzer, i);
      delay(1);
    }
    pinMode(Buzzer, INPUT);
  }
}




Last edited by oneill on Wed 29 Jan - 21:40 (2014); edited 1 time in total
Back to top
Admin
Fondateur

Offline

Joined: 12 Apr 2012
Posts: 860
Masculin
Niveau d'éléctronique: Pro

PostPosted: Sat 25 Jan - 19:19 (2014)    Post subject: problème de code Reply with quote

Tu as des erreurs ou c'est juste ton script qui marche pas ?
____________________________
http://simple-duino.com
Back to top
oneill
Débutant

Offline

Joined: 03 Jun 2013
Posts: 60
Masculin
Niveau d'éléctronique: Débutant

PostPosted: Sat 25 Jan - 19:36 (2014)    Post subject: problème de code Reply with quote

En gros c'est surment une erreur de prog la dedans

        case '#':
          while(k <= 4) {
            code[k] = eKey;
            k++;
          }
          password.reset();
          break;
Back to top
Admin
Fondateur

Offline

Joined: 12 Apr 2012
Posts: 860
Masculin
Niveau d'éléctronique: Pro

PostPosted: Sun 26 Jan - 09:37 (2014)    Post subject: problème de code Reply with quote

Tu peux me joindre le fichier pitches.h Si possible ?
____________________________
http://simple-duino.com
Back to top
oneill
Débutant

Offline

Joined: 03 Jun 2013
Posts: 60
Masculin
Niveau d'éléctronique: Débutant

PostPosted: Mon 27 Jan - 14:21 (2014)    Post subject: problème de code Reply with quote

Tien le voilà.
Back to top
Admin
Fondateur

Offline

Joined: 12 Apr 2012
Posts: 860
Masculin
Niveau d'éléctronique: Pro

PostPosted: Mon 27 Jan - 16:02 (2014)    Post subject: problème de code Reply with quote

tu cartonnes merci
____________________________
http://simple-duino.com
Back to top
Admin
Fondateur

Offline

Joined: 12 Apr 2012
Posts: 860
Masculin
Niveau d'éléctronique: Pro

PostPosted: Mon 27 Jan - 16:05 (2014)    Post subject: problème de code Reply with quote

T'as essayé avec for ?
____________________________
http://simple-duino.com
Back to top
oneill
Débutant

Offline

Joined: 03 Jun 2013
Posts: 60
Masculin
Niveau d'éléctronique: Débutant

PostPosted: Mon 27 Jan - 17:00 (2014)    Post subject: problème de code Reply with quote

oui mais même probleme, sa enregistre pas toute les touche.
Back to top
oneill
Débutant

Offline

Joined: 03 Jun 2013
Posts: 60
Masculin
Niveau d'éléctronique: Débutant

PostPosted: Wed 29 Jan - 21:18 (2014)    Post subject: problème de code Reply with quote

voila j'ai fait un truc comme ça, mais je pense qu'il y a plus simple ou que le code peut être mieux arranger.

Quote:

#include <Keypad.h>

int code[4];
int coded[4];
int i = 0;
int u = 0;
const byte ROWS = 4; // Four rows
const byte COLS = 3; // Three columns
// Define the Keymap
char keys[ROWS][COLS] = {
  {
    '1', '2', '3'  }
  ,
  {
    '4', '5', '6'  }
  ,
  {
    '7', '8', '9'  }
  ,
  {
    '*', '0', '#'  }
};
// Connect keypad ROW0, ROW1, ROW2 and ROW3 to these Arduino pins.
byte rowPins[ROWS] = {
  43, 41, 39, 37 };
// Connect keypad COL0, COL1 and COL2 to these Arduino pins.
byte colPins[COLS] = {
  35, 33, 31 };

// Create the Keypad
Keypad kpd = Keypad( makeKeymap(keys), rowPins, colPins, ROWS, COLS );

#define ledpin 13

void setup()
{
  pinMode(ledpin, OUTPUT);
  Serial.begin(9600);
}

void loop()
{
  char key = kpd.getKey();
  if (key) // Check for a valid key.
  {
    switch (key)
    {
    case '*':
      for (int j = 0; j <= 3; j++) {
        Serial.println(char(code[j]));
      }
      if (coded[0] == code[0]) {
        if (coded[1] == code[1]) {
          if (coded[2] == code[2]) {
            if (coded[3] == code[3]) {
              digitalWrite(ledpin, HIGH);
              delay(20);
              digitalWrite(ledpin, LOW);
              for (int j = 0; j <= 3; j++) {
                coded[j] = ' ';
              }
            }
            else {
              i, u = 0;
            }
          }
          else {
            i, u = 0;
          }
        }
        else {
          i, u = 0;
        }
      }
      else {
        i, u = 0;
      }
      break;
    case '#':
      if ( i <= 3 ) {
        code[i] = kpd.waitForKey();
        i = i + 1;
      }
      break;
    default:
      if ( u <= 3 ) {
        coded[u] = key;
        u = u + 1;
      }
      else {
        u = 0;
      }
    }
  }
}


Back to top
Admin
Fondateur

Offline

Joined: 12 Apr 2012
Posts: 860
Masculin
Niveau d'éléctronique: Pro

PostPosted: Thu 30 Jan - 12:55 (2014)    Post subject: problème de code Reply with quote

Du coup tu as réussi ?Je suis vraiment désolé de ne pas pouvoir t'aider mais je n'ai pas de "keaypad" et je connais pas la librairie password ...


En revanche, tu m'as informé d'un bon truc, c'est le fichier pioches.h qui permet de jouer des notes justes avec tome()     Je vais voir si je fais une version française de ce fichier avec les notes que nous connaissons ( do ré mi fa sol la si ) parce que les notes anglaises ne me chantent  Mort de Rire  pas trop
____________________________
http://simple-duino.com
Back to top
oneill
Débutant

Offline

Joined: 03 Jun 2013
Posts: 60
Masculin
Niveau d'éléctronique: Débutant

PostPosted: Thu 30 Jan - 16:40 (2014)    Post subject: problème de code Reply with quote

oui, je un peut réussi même si faut réinitialisée l'arduino si on une fois le code mis il et mis lol et j utilise plus la librairie password car elle permet pas de faire ce que je veux ou je comprend rien a cette lib.
Back to top
Display posts from previous:   
Post new topic   Reply to topic    Simple-Duino Forum Index -> Arduino & Électronique -> Questions All times are GMT + 1 Hour
Page 1 of 1

 
Jump to:  

Index | Xooit.com free forum | Free support forum | Free forums directory | Report a violation | Cookies | Charte | Conditions générales d'utilisation
Powered by phpBB
Propulsé par Simple-Duino