Le forum a migré vers l'adresse suivante:

Forum

Masquer ce message

Simple-Duino Index du Forum



problème de code


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

Hors ligne

Inscrit le: 03 Juin 2013
Messages: 60
Masculin
Niveau d'éléctronique: Débutant

MessagePosté le: Sam 25 Jan - 15:37 (2014)    Sujet du message: problème de code Répondre en citant

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);
  }
}




Dernière édition par oneill le Mer 29 Jan - 21:40 (2014); édité 1 fois
Revenir en haut
Admin
Fondateur

Hors ligne

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

MessagePosté le: Sam 25 Jan - 19:19 (2014)    Sujet du message: problème de code Répondre en citant

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

Hors ligne

Inscrit le: 03 Juin 2013
Messages: 60
Masculin
Niveau d'éléctronique: Débutant

MessagePosté le: Sam 25 Jan - 19:36 (2014)    Sujet du message: problème de code Répondre en citant

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

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

Hors ligne

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

MessagePosté le: Dim 26 Jan - 09:37 (2014)    Sujet du message: problème de code Répondre en citant

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

Hors ligne

Inscrit le: 03 Juin 2013
Messages: 60
Masculin
Niveau d'éléctronique: Débutant

MessagePosté le: Lun 27 Jan - 14:21 (2014)    Sujet du message: problème de code Répondre en citant

Tien le voilà.
Revenir en haut
Admin
Fondateur

Hors ligne

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

MessagePosté le: Lun 27 Jan - 16:02 (2014)    Sujet du message: problème de code Répondre en citant

tu cartonnes merci
____________________________
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: Lun 27 Jan - 16:05 (2014)    Sujet du message: problème de code Répondre en citant

T'as essayé avec for ?
____________________________
http://simple-duino.com
Revenir en haut
oneill
Débutant

Hors ligne

Inscrit le: 03 Juin 2013
Messages: 60
Masculin
Niveau d'éléctronique: Débutant

MessagePosté le: Lun 27 Jan - 17:00 (2014)    Sujet du message: problème de code Répondre en citant

oui mais même probleme, sa enregistre pas toute les touche.
Revenir en haut
oneill
Débutant

Hors ligne

Inscrit le: 03 Juin 2013
Messages: 60
Masculin
Niveau d'éléctronique: Débutant

MessagePosté le: Mer 29 Jan - 21:18 (2014)    Sujet du message: problème de code Répondre en citant

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.

Citation:

#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;
      }
    }
  }
}


Revenir en haut
Admin
Fondateur

Hors ligne

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

MessagePosté le: Jeu 30 Jan - 12:55 (2014)    Sujet du message: problème de code Répondre en citant

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
Revenir en haut
oneill
Débutant

Hors ligne

Inscrit le: 03 Juin 2013
Messages: 60
Masculin
Niveau d'éléctronique: Débutant

MessagePosté le: Jeu 30 Jan - 16:40 (2014)    Sujet du message: problème de code Répondre en citant

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.
Revenir en haut
Contenu Sponsorisé






MessagePosté le: Aujourd’hui à 19:37 (2017)    Sujet du message: problème de code

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
Page 1 sur 1

 
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