Programme arduino, relais et clavier matriciel 4*4
Répondre à la discussion
Page 1 sur 5 12 3 4 DernièreDernière
Affichage des résultats 1 à 30 sur 142

Programme arduino, relais et clavier matriciel 4*4



  1. #1
    jmjim

    Programme arduino, relais et clavier matriciel 4*4


    ------

    Bonsoir à tous,

    Je viens demander de l'aide car je suis débutant dans le domaine de la programmation et en attendant de recevoir la arduino uno que j'ai commandé je me suis avancé dans mon projet et j'ai fais un programme mais je voudrais savoir si il est correct.

    Mon programme consiste à piloter un shield relais 4 canaux avec un clavier matriciel 4*4.

    Quand j'appuie sur le bouton 1 puis A je mets à l'état bas le relais 1 pendant 300ms
    Quand j'appuie sur le bouton 2 puis A je mets à l'état bas le relais 1 pendant 400ms
    Quand j'appuie sur le bouton 1 puis B je mets à l'état bas le relais 2 pendant 300ms
    Etc...etc..

    Les boutons 1, 2 et 3 correspondent aux temps.
    Les boutons A, B, C, D corresponde aux relais 1, 2, 3, 4.

    Le délais est à titre d'exemple et pourra être changé.

    Voici mon programme :
    Code:
    #define RELAY_1 6
    #define RELAY_2 7
    #define RELAY_3 8
    #define RELAY_4 9
    
    #include <Keypad.h>
    
    //--- Constantes utilisées avec le clavier 4x4
    const byte LIGNES = 4; // 4 lignes
    const byte COLONNES = 4; //4 colonnes
    
    const int C4=2; //declaration constante de broche 
    const int C3=3; //declaration constante de broche 
    const int C2=4; //declaration constante de broche 
    const int C1=5; //declaration constante de broche 
    const int L4=16; //declaration constante de broche 
    const int L3=17; //declaration constante de broche 
    const int L2=18; //declaration constante de broche 
    const int L1=19; //declaration constante de broche 
    
    //--- Définition des touches 
    char touches[LIGNES][COLONNES] = {
      {'1','2','3','A'},
      {'4','5','6','B'},
      {'7','8','9','C'},
      {'*','0','#','D'}
    };
    
    // tableaux de lignes et colonnes
    byte BrochesLignes[LIGNES] = {L1, L2, L3, L4}; //connexions utilisées pour les broches de lignes du clavier
    byte BrochesColonnes[COLONNES] = {C1, C2, C3, C4}; //connexions utilisées pour les broches de colonnes du clavier
    
    char touche; // variable de stockage valeur touche appuyée
    
    // création d'un objet keypad = initialisation clavier 
    Keypad clavier = Keypad( makeKeymap(touches), BrochesLignes, BrochesColonnes, LIGNES, COLONNES );
    // les broches de lignes sont automatiquement configurées en ENTREE avec pullup interne activé 
    // les broches de colonnes sont automatiquement configurées en SORTIE
    
    
    void setup() {
    // on initialise les sorties et on éteind les leds connectées
        pinMode(RELAY_1, OUTPUT);  
        digitalWrite(RELAY_1, HIGH);
        pinMode(RELAY_2, OUTPUT);  
        digitalWrite(RELAY_2, HIGH);
        pinMode(RELAY_3, OUTPUT);  
        digitalWrite(RELAY_3, HIGH);
        pinMode(RELAY_4, OUTPUT);    
        digitalWrite(RELAY_4, HIGH);
        
      }
    
    void loop() { // debut de la fonction loop()
    
    // --- ici instructions à exécuter par le programme principal --- 
    
    touche = clavier.getKey(); // lecture de la touche appuyée
    
    
    if(touche != NO_KEY){ // si une touche a été frappée -- gestion de la touche appuyée 
      
      if(touche=='1','A') //si les touches '1' et touche 'A' sont tapées 
        {digitalWrite(RELAY_1, LOW) // alors RELAY_1 est activé (LOW)
          delay(300) //pendant 30secondes
          digitalWrite(RELAY_1, HIGH)};
      
      if(touche=='2','A') //si les touchse '2' et 'A' sont tapées
        {digitalWrite(RELAY_1, LOW) //alors le RELAY_1 est activé (LOW)
          delay(400)
          digitalWrite(RELAY_1, HIGH)}
          
      if(touche=='3','A')
        {digitalWrite(RELAY_1, LOW)
          delay(500)
          digitalWrite(RELAY_1, HIGH)}
          
       if(touche=='1','B')
        {digitalWrite(RELAY_1, LOW)
          delay(300)
          digitalWrite(RELAY_1, HIGH)}
        
        if(touche=='2','B')
        {digitalWrite(RELAY_1, LOW)
          delay(400)
          digitalWrite(RELAY_1, HIGH)}
        
        if(touche=='3','B')
        {digitalWrite(RELAY_1, LOW)
          delay(500)
          digitalWrite(RELAY_1, HIGH)}
          
        if(touche=='1','C')
        {digitalWrite(RELAY_1, LOW)
          delay(300)
          digitalWrite(RELAY_1, HIGH)}
          
        if(touche=='2','C')
        {digitalWrite(RELAY_1, LOW)
          delay(400)
          digitalWrite(RELAY_1, HIGH)}
        
        if(touche=='3','C')
        {digitalWrite(RELAY_1, LOW)
          delay(500)
          digitalWrite(RELAY_1, HIGH)}
          
        if(touche=='1','D')
        {digitalWrite(RELAY_1, LOW)
          delay(300)
          digitalWrite(RELAY_1, HIGH)}
          
        if(touche=='2','D')
        {digitalWrite(RELAY_1, LOW)
          delay(400)
          digitalWrite(RELAY_1, HIGH)}
          
        if(touche=='3','D')
        {digitalWrite(RELAY_1, LOW)
          delay(500)
          digitalWrite(RELAY_1, HIGH)}
        }
    Je vous remercie par avance de votre aide précieuse.

    -----
    Dernière modification par Antoane ; 20/04/2015 à 22h30. Motif: Ajout balises [code]

  2. #2
    Yoruk

    Re : Programme arduino, relais et clavier matriciel 4*4

    Salut,

    Un petit schéma et une description des problèmes rencontrés avec ce code serait un plus.
    La robotique, c'est fantastique !

  3. #3
    jmjim

    Re : Programme arduino, relais et clavier matriciel 4*4

    Bonjour,
    Merci de votre réponse.

    Voici le schéma de câblage.

    Est-ce que mon programme est correct par rapport a ce que je veux faire?

    Les problèmes que j'ai rencontré sont que c'est mon premier programme du coup je ne savais pas trop par ou commencer, j'ai du piqué des lignes sur un autre programme pour intégrer le clavier.

    Mais du coup mon souci est de savoir si ce que j'ai fais tient la route (et fonctionne) ou si tout est à refaire. Il me faut donc l'avis d'un connaisseur pour me dire ce qui va ou qui va pas.
    Images attachées Images attachées  
    Dernière modification par jmjim ; 21/04/2015 à 14h01.

  4. #4
    Yoruk

    Re : Programme arduino, relais et clavier matriciel 4*4

    Vu la complexité du code, il m'est difficile (sans le matériel) de savoir ce qui pourrait poser problème. Mais là comme ça, rien ne me choque.

    Il se passe quoi quand tu testes ?
    La robotique, c'est fantastique !

  5. A voir en vidéo sur Futura
  6. #5
    jmjim

    Re : Programme arduino, relais et clavier matriciel 4*4

    Je n'ai pas encore reçu la arduino...

    Quand je clique sur verifier j'ai le message d'erreur suivant :

    Arduino : 1.6.2 (Windows XP), Carte : "Arduino Uno"


    C:\Program Files\Arduino\libraries\Keypad/Keypad.h:36:22: fatal error: WProgram.h: No such file or directory

    #include <WProgram.h>

    ^

    compilation terminated.

    Erreur lors de la compilation.

    Ce rapport contiendrait plus d'informations si l'option
    "Montrer les informations de sortie pendant la compilation"
    était activée dans Fichier > Préférences.

  7. #6
    Yoruk

    Re : Programme arduino, relais et clavier matriciel 4*4

    Le message d'erreur est très clair... Il lui manque le fichier WProgram.h.

    Regardes à l'endroit où tu as trouvé ton exemple de code...
    La robotique, c'est fantastique !

  8. #7
    jmjim

    Re : Programme arduino, relais et clavier matriciel 4*4

    Dans la librairie j'ai rajouté un dossier keypad.
    Dans ce dossier il y a Keypad.h mais il n'y a pas WProgram.h

  9. #8
    jmjim

    Re : Programme arduino, relais et clavier matriciel 4*4

    Voici le lien ou j'ai trouvé la librairie keypad.h
    http://tiptopboards.free.fr/arduino_...c.php?f=2&t=20

    Je crois que j'ai pas fais ce qu'il fallait.

    Dois-je la suprimer?

  10. #9
    Yoruk

    Re : Programme arduino, relais et clavier matriciel 4*4

    Donc, faut le rajouter ! C'est bien pour ça qu'il te le réclame...

    PS : je viens de jeter un œil à ton schéma. Brancher le clavier sur des entrées analogique, bof bof... C'est mieux d'utiliser les entrées digitales.

    EDIT : ils disent sur ta page que :

    Corriger cette librairie kaypad.h (pour IDE 1.0)
    et remplacer la ligne 36 "#include <WProgram.h>" par #include <Arduino.h>
    C'est à tenter non ?
    Dernière modification par Yoruk ; 21/04/2015 à 16h23.
    La robotique, c'est fantastique !

  11. #10
    jmjim

    Re : Programme arduino, relais et clavier matriciel 4*4

    C'est bon j'ai modifier le fichier... erreur à la c**.
    Maintenant il ecrit comme erreur :

    Arduino : 1.6.2 (Windows XP), Carte : "Arduino Uno"

    Mon_projet.ino:2:2: error: invalid preprocessing directive #inclure

    Mon_projet.ino: In function 'void loop()':

    Mon_projet.ino:67:7: error: expected ';' before 'delay'

    Mon_projet.ino:72:7: error: expected ';' before 'delay'

    Mon_projet.ino:77:7: error: expected ';' before 'delay'

    Mon_projet.ino:82:7: error: expected ';' before 'delay'

    Mon_projet.ino:87:7: error: expected ';' before 'delay'

    Mon_projet.ino:92:7: error: expected ';' before 'delay'

    Mon_projet.ino:97:7: error: expected ';' before 'delay'

    Mon_projet.ino:102:7: error: expected ';' before 'delay'

    Mon_projet.ino:107:7: error: expected ';' before 'delay'

    Mon_projet.ino:112:7: error: expected ';' before 'delay'

    Mon_projet.ino:117:7: error: expected ';' before 'delay'

    Mon_projet.ino:122:7: error: expected ';' before 'delay'

    Mon_projet.ino:124:5: error: expected '}' at end of input

    Erreur lors de la compilation.

    Ce rapport contiendrait plus d'informations si l'option
    "Montrer les informations de sortie pendant la compilation"
    était activée dans Fichier > Préférences.

  12. #11
    jmjim

    Re : Programme arduino, relais et clavier matriciel 4*4

    J'ai utilisé ce site pour le code du clavier : http://www.mon-club-elec.fr/pmwiki_m...ierAppuiTouche

    Je vais donc changer les broches du clavier si cela n'est pas bon.

  13. #12
    Yoruk

    Re : Programme arduino, relais et clavier matriciel 4*4

    C'est le même code qu'en #1 ? Redonne le si non...
    La robotique, c'est fantastique !

  14. #13
    jmjim

    Re : Programme arduino, relais et clavier matriciel 4*4

    Voici le nouveau programme. J'ai modifié L1 L2 L3 et L4 du clavier et les ai mis au broches 6 7 8 et 9.
    Comme ca c'est bon?
    Code:
    #include <Keypad.h>
    #inclure <WProgram.h>
    
    #define RELAY_1 10
    #define RELAY_2 11
    #define RELAY_3 12
    #define RELAY_4 13
    
    
    //--- Constantes utilisées avec le clavier 4x4
    const byte LIGNES = 4; // 4 lignes
    const byte COLONNES = 4; //4 colonnes
    
    const int C4=2; //declaration constante de broche 
    const int C3=3; //declaration constante de broche 
    const int C2=4; //declaration constante de broche 
    const int C1=5; //declaration constante de broche 
    const int L4=9; //declaration constante de broche 
    const int L3=8; //declaration constante de broche 
    const int L2=7; //declaration constante de broche 
    const int L1=6; //declaration constante de broche 
    
    //--- Définition des touches 
    char touches[LIGNES][COLONNES] = {
      {'1','2','3','A'},
      {'4','5','6','B'},
      {'7','8','9','C'},
      {'*','0','#','D'}
    };
    
    // tableaux de lignes et colonnes
    byte BrochesLignes[LIGNES] = {L1, L2, L3, L4}; //connexions utilisées pour les broches de lignes du clavier
    byte BrochesColonnes[COLONNES] = {C1, C2, C3, C4}; //connexions utilisées pour les broches de colonnes du clavier
    
    char touche; // variable de stockage valeur touche appuyée
    
    // création d'un objet keypad = initialisation clavier 
    Keypad clavier = Keypad( makeKeymap(touches), BrochesLignes, BrochesColonnes, LIGNES, COLONNES );
    // les broches de lignes sont automatiquement configurées en ENTREE avec pullup interne activé 
    // les broches de colonnes sont automatiquement configurées en SORTIE
    
    
    void setup() {
    // on initialise les sorties et on éteind les leds connectées
        pinMode(RELAY_1, OUTPUT);  
        digitalWrite(RELAY_1, HIGH);
        pinMode(RELAY_2, OUTPUT);  
        digitalWrite(RELAY_2, HIGH);
        pinMode(RELAY_3, OUTPUT);  
        digitalWrite(RELAY_3, HIGH);
        pinMode(RELAY_4, OUTPUT);    
        digitalWrite(RELAY_4, HIGH);
        
      }
    
    void loop() { // debut de la fonction loop()
    
    // --- ici instructions à exécuter par le programme principal --- 
    
    touche = clavier.getKey(); // lecture de la touche appuyée
    
    
    if(touche != NO_KEY){ // si une touche a été frappée -- gestion de la touche appuyée 
      
      if(touche=='1','A') //si les touches '1' et touche 'A' sont tapées 
        {digitalWrite(RELAY_1, LOW) // alors RELAY_1 est activé (LOW)
          delay(300) //pendant 30secondes
          digitalWrite(RELAY_1, HIGH)};
      
      if(touche=='2','A') //si les touchse '2' et 'A' sont tapées
        {digitalWrite(RELAY_1, LOW) //alors le RELAY_1 est activé (LOW)
          delay(400)
          digitalWrite(RELAY_1, HIGH)}
          
      if(touche=='3','A')
        {digitalWrite(RELAY_1, LOW)
          delay(500)
          digitalWrite(RELAY_1, HIGH)}
          
       if(touche=='1','B')
        {digitalWrite(RELAY_2, LOW)
          delay(300)
          digitalWrite(RELAY_2, HIGH)}
        
        if(touche=='2','B')
        {digitalWrite(RELAY_2, LOW)
          delay(400)
          digitalWrite(RELAY_2, HIGH)}
        
        if(touche=='3','B')
        {digitalWrite(RELAY_2, LOW)
          delay(500)
          digitalWrite(RELAY_2, HIGH)}
          
        if(touche=='1','C')
        {digitalWrite(RELAY_3, LOW)
          delay(300)
          digitalWrite(RELAY_3, HIGH)}
          
        if(touche=='2','C')
        {digitalWrite(RELAY_3, LOW)
          delay(400)
          digitalWrite(RELAY_3, HIGH)}
        
        if(touche=='3','C')
        {digitalWrite(RELAY_3, LOW)
          delay(500)
          digitalWrite(RELAY_3, HIGH)}
          
        if(touche=='1','D')
        {digitalWrite(RELAY_4, LOW)
          delay(300)
          digitalWrite(RELAY_4, HIGH)}
          
        if(touche=='2','D')
        {digitalWrite(RELAY_4, LOW)
          delay(400)
          digitalWrite(RELAY_4, HIGH)}
          
        if(touche=='3','D')
        {digitalWrite(RELAY_4, LOW)
          delay(500)
          digitalWrite(RELAY_4, HIGH)}
        }
    Dernière modification par Antoane ; 21/04/2015 à 17h27. Motif: Ajout balises [code]

  15. #14
    Yoruk

    Re : Programme arduino, relais et clavier matriciel 4*4

    Regarde bien ta 2ème ligne.... (et compare avec celle du dessus).

    PS, le prochain coup que tu postes du code, met-le entre balises [C O D E ] histoire de le rendre plus lisible !
    La robotique, c'est fantastique !

  16. #15
    Yoruk

    Re : Programme arduino, relais et clavier matriciel 4*4

    J'ajouterai qu'il y a peu de chances que ce code compile.

    Regarde et réfléchis. Tu as eu une erreur indiquant qu'un fichier était manquant (WProgram.h). On trouve sur internet qu'il est nécessaire de modifier ce nom afin de rendre l'ensemble fonctionnel, et là tu me recolles un appel à cette librairie (qu'il ne va toujours pas trouver...). Tu vois le soucis ?
    La robotique, c'est fantastique !

  17. #16
    jmjim

    Re : Programme arduino, relais et clavier matriciel 4*4

    Je ne sais pas comment on fait pour mettre en balise code.

    Le schéma modifier. (dsl les traits sont pas droit je l'ai vite fait)
    Images attachées Images attachées  

  18. #17
    Yoruk

    Re : Programme arduino, relais et clavier matriciel 4*4

    Citation Envoyé par jmjim Voir le message
    Je ne sais pas comment on fait pour mettre en balise code.
    Va en mode avancé, sélectionne ton code et clique sur l’icône "#".

    Que dit le compilateur ?
    La robotique, c'est fantastique !

  19. #18
    jmjim

    Re : Programme arduino, relais et clavier matriciel 4*4

    Je viens de supprimer la librairie keypad, de la télécharger cette fois sur arduino.cc et de l'inclure dans le menu ide.
    J'ai plus le message d'erreur de la librairie mais j'ai celui la :

    Arduino : 1.6.2 (Windows XP), Carte : "Arduino Uno"

    Mon_projet.ino: In function 'void loop()':

    Mon_projet.ino:66:7: error: expected ';' before 'delay'

    Mon_projet.ino:71:7: error: expected ';' before 'delay'

    Mon_projet.ino:76:7: error: expected ';' before 'delay'

    Mon_projet.ino:81:7: error: expected ';' before 'delay'

    Mon_projet.ino:86:7: error: expected ';' before 'delay'

    Mon_projet.ino:91:7: error: expected ';' before 'delay'

    Mon_projet.ino:96:7: error: expected ';' before 'delay'

    Mon_projet.ino:101:7: error: expected ';' before 'delay'

    Mon_projet.ino:106:7: error: expected ';' before 'delay'

    Mon_projet.ino:111:7: error: expected ';' before 'delay'

    Mon_projet.ino:116:7: error: expected ';' before 'delay'

    Mon_projet.ino:121:7: error: expected ';' before 'delay'

    Mon_projet.ino:123:5: error: expected '}' at end of input

    Erreur lors de la compilation.

    Ce rapport contiendrait plus d'informations si l'option
    "Montrer les informations de sortie pendant la compilation"
    était activée dans Fichier > Préférences.

  20. #19
    Yoruk

    Re : Programme arduino, relais et clavier matriciel 4*4

    Ton schéma semble bon.

    Pour l'erreur, il te manque des ";" après les digitalWrite et les delay.

    Il doit aussi manquer un "}" quelque part, mais dur de le voir sans code indenté.
    La robotique, c'est fantastique !

  21. #20
    jmjim

    Re : Programme arduino, relais et clavier matriciel 4*4

    Code:
    #include <Keypad.h>
    
    #define RELAY_1 10
    #define RELAY_2 11
    #define RELAY_3 12
    #define RELAY_4 13
    
    
    //--- Constantes utilisées avec le clavier 4x4
    const byte LIGNES = 4; // 4 lignes
    const byte COLONNES = 4; //4 colonnes
    
    const int C4=2; //declaration constante de broche 
    const int C3=3; //declaration constante de broche 
    const int C2=4; //declaration constante de broche 
    const int C1=5; //declaration constante de broche 
    const int L4=9; //declaration constante de broche 
    const int L3=8; //declaration constante de broche 
    const int L2=7; //declaration constante de broche 
    const int L1=6; //declaration constante de broche 
    
    //--- Définition des touches 
    char touches[LIGNES][COLONNES] = {
      {'1','2','3','A'},
      {'4','5','6','B'},
      {'7','8','9','C'},
      {'*','0','#','D'}
    };
    
    // tableaux de lignes et colonnes
    byte BrochesLignes[LIGNES] = {L1, L2, L3, L4}; //connexions utilisées pour les broches de lignes du clavier
    byte BrochesColonnes[COLONNES] = {C1, C2, C3, C4}; //connexions utilisées pour les broches de colonnes du clavier
    
    char touche; // variable de stockage valeur touche appuyée
    
    // création d'un objet keypad = initialisation clavier 
    Keypad clavier = Keypad( makeKeymap(touches), BrochesLignes, BrochesColonnes, LIGNES, COLONNES );
    // les broches de lignes sont automatiquement configurées en ENTREE avec pullup interne activé 
    // les broches de colonnes sont automatiquement configurées en SORTIE
    
    
    void setup() {
    // on initialise les sorties et on éteind les leds connectées
        pinMode(RELAY_1, OUTPUT);  
        digitalWrite(RELAY_1, HIGH);
        pinMode(RELAY_2, OUTPUT);  
        digitalWrite(RELAY_2, HIGH);
        pinMode(RELAY_3, OUTPUT);  
        digitalWrite(RELAY_3, HIGH);
        pinMode(RELAY_4, OUTPUT);    
        digitalWrite(RELAY_4, HIGH);
        
      }
    
    void loop() { // debut de la fonction loop()
    
    // --- ici instructions à exécuter par le programme principal --- 
    
    touche = clavier.getKey(); // lecture de la touche appuyée
    
    
    if(touche != NO_KEY){ // si une touche a été frappée -- gestion de la touche appuyée 
      
      if(touche=='1','A') //si les touches '1' et touche 'A' sont tapées 
        {digitalWrite(RELAY_1, LOW) // alors RELAY_1 est activé (LOW)
          delay(300) //pendant 30secondes
          digitalWrite(RELAY_1, HIGH)};
      
      if(touche=='2','A') //si les touchse '2' et 'A' sont tapées
        {digitalWrite(RELAY_1, LOW) //alors le RELAY_1 est activé (LOW)
          delay(400)
          digitalWrite(RELAY_1, HIGH)}
          
      if(touche=='3','A')
        {digitalWrite(RELAY_1, LOW)
          delay(500)
          digitalWrite(RELAY_1, HIGH)}
          
       if(touche=='1','B')
        {digitalWrite(RELAY_2, LOW)
          delay(300)
          digitalWrite(RELAY_2, HIGH)}
        
        if(touche=='2','B')
        {digitalWrite(RELAY_2, LOW)
          delay(400)
          digitalWrite(RELAY_2, HIGH)}
        
        if(touche=='3','B')
        {digitalWrite(RELAY_2, LOW)
          delay(500)
          digitalWrite(RELAY_2, HIGH)}
          
        if(touche=='1','C')
        {digitalWrite(RELAY_3, LOW)
          delay(300)
          digitalWrite(RELAY_3, HIGH)}
          
        if(touche=='2','C')
        {digitalWrite(RELAY_3, LOW)
          delay(400)
          digitalWrite(RELAY_3, HIGH)}
        
        if(touche=='3','C')
        {digitalWrite(RELAY_3, LOW)
          delay(500)
          digitalWrite(RELAY_3, HIGH)}
          
        if(touche=='1','D')
        {digitalWrite(RELAY_4, LOW)
          delay(300)
          digitalWrite(RELAY_4, HIGH)}
          
        if(touche=='2','D')
        {digitalWrite(RELAY_4, LOW)
          delay(400)
          digitalWrite(RELAY_4, HIGH)}
          
        if(touche=='3','D')
        {digitalWrite(RELAY_4, LOW)
          delay(500)
          digitalWrite(RELAY_4, HIGH)}
        }

  22. #21
    Yoruk

    Re : Programme arduino, relais et clavier matriciel 4*4

    En plus de mes remarques en #19, je dirais qu'il manque 2 "}" à la fin.
    La robotique, c'est fantastique !

  23. #22
    jmjim

    Re : Programme arduino, relais et clavier matriciel 4*4

    Effectivement je ne les avais pas mit derrier tout les delay et les digitalWrite. Merci.

  24. #23
    Yoruk

    Re : Programme arduino, relais et clavier matriciel 4*4

    ça fonctionne ?
    La robotique, c'est fantastique !

  25. #24
    jmjim

    Re : Programme arduino, relais et clavier matriciel 4*4

    Presque.. En m'en manque encore un que je trouve pas...

    Arduino : 1.6.2 (Windows XP), Carte : "Arduino Uno"

    Mon_projet.ino: In function 'void loop()':

    Mon_projet.ino:67:34: error: expected ';' before '}' token

    Erreur lors de la compilation.

    Ce rapport contiendrait plus d'informations si l'option
    "Montrer les informations de sortie pendant la compilation"
    était activée dans Fichier > Préférences.

  26. #25
    jmjim

    Re : Programme arduino, relais et clavier matriciel 4*4

    C'est bon....j'ai enfin trouve le dernier. J'avais mit '' }; '' au lieu du contraire.
    Trop cool.

    Compilation terminée.
    Le croquis untilisé 9% de l'espace de stockage de programmes et 7% de mémoire dynamique.

    Merci beaucoup Yoruk de m'avoir aidé. c'est vraiment gentil. J'aurais pas trouvé tout seul.

  27. #26
    jmjim

    Re : Programme arduino, relais et clavier matriciel 4*4

    J'ai une autre question :
    J'ai mis :
    Code:
    if(touche=='1','A') //si les touches '1' et touche 'A' sont tapées 
        {digitalWrite(RELAY_1, LOW); // alors RELAY_1 est activé (LOW)
          delay(300); //pendant 30secondes
          digitalWrite(RELAY_1, HIGH);}
    Est-ce que je vais pouvoir appuis la touche '1' puis sur la touche 'A' ou bien je vais devoir appuyé sur les deux touches en même temps?
    Dernière modification par jmjim ; 21/04/2015 à 17h54.

  28. #27
    Yoruk

    Re : Programme arduino, relais et clavier matriciel 4*4

    Cette syntaxe est étrange. ça compile ? Avec le IF, tu peux gérer des OU si tu as besoin (appui sur "A" ou sur "1").

    A priori, ton code n'est pas optimisé pour gérer des appuis simultanés. Il faudra tester !
    La robotique, c'est fantastique !

  29. #28
    jmjim

    Re : Programme arduino, relais et clavier matriciel 4*4

    Le programme c'est bien vérifier..
    Y-a-t-il une différence entre vérifier et compiler?

    Justement je ne veux pas appuyer simultanément sur les bouton '1' et 'A' mais bien appuyé sur '1' puis 'A'.

    Mon but était de faire :

    Si j'appuis sur le bouton '1' puis sur le bouton 'A' alors digitalWrit ce met à l'état bas et "m'active" le relais pendant X secondes.

    Comment j'aurais du faire pour faire cela?

  30. #29
    Yoruk

    Re : Programme arduino, relais et clavier matriciel 4*4

    Citation Envoyé par jmjim Voir le message
    Le programme c'est bien vérifier..
    Y-a-t-il une différence entre vérifier et compiler?
    De ton point de vue, pas vraiment. Dans tout les cas il compile et vérifie, ce n'est que quand tu cliques sur "téléverser" qu'il recompile et flashe la carte.

    Citation Envoyé par jmjim Voir le message
    Justement je ne veux pas appuyer simultanément sur les bouton '1' et 'A' mais bien appuyé sur '1' puis 'A'.

    Mon but était de faire :

    Si j’appuie sur le bouton '1' puis sur le bouton 'A' alors digitalWrite ce met à l'état bas et "m'active" le relais pendant X secondes.
    C'est plus compliqué... Il faut enregistrer l'état des touches dans une variable (comprendre qu'il ne faut rien faire), attendre un nouvel appui, si nouvel appui avant XX secondes, comparer touche précédente + nouvelle touche et agir en conséquence. Et remettre le cache à zéro au bout de quelques secondes (exactement comme sur une zapette de TV. Tu tapes 1 puis 8 pour aller à la chaine 18. Mais si tu tapes seulement 1, le système va comprendre que tu souhaites uniquement la première chaine.)

    En gros, compter le nombre de secondes entre 2 appuis pour voir s'il s'agit d'un ordre comprenant 2 chiffres ou non.

    Bref, c'est un peu plus compliqué.
    La robotique, c'est fantastique !

  31. #30
    jmjim

    Re : Programme arduino, relais et clavier matriciel 4*4

    A la base je voulais faire :

    1) J'appuis sur
    -'1' pour sélectionner 300ms
    -'2' pour sélectionner 400ms
    -'3' pour sélectionner 500ms

    et après j'appuyé sur
    -'A' pour le relais 1
    -'B' pour le relais 2
    -'C' pour le relais 3
    -'D' pour le relais 4

    Je sélectionne en premier un temps puis un relais mais ca je ne sais pas du tout comment faire.
    Comment vous l’écririez vous ca?

Page 1 sur 5 12 3 4 DernièreDernière

Discussions similaires

  1. Clavier matriciel !
    Par yass7 dans le forum Électronique
    Réponses: 17
    Dernier message: 03/01/2014, 22h39
  2. Fonctionnement d'un montage clavier matriciel
    Par invite8191e5b5 dans le forum Électronique
    Réponses: 1
    Dernier message: 25/04/2010, 23h20
  3. Clavier matriciel
    Par invitefc343bc7 dans le forum Électronique
    Réponses: 1
    Dernier message: 01/04/2009, 17h54
  4. [PPE] langage C et clavier matriciel
    Par invitedcc7860a dans le forum Logiciel - Software - Open Source
    Réponses: 7
    Dernier message: 02/05/2008, 20h04
  5. gestion de clavier matriciel i2c
    Par invite6d875316 dans le forum Électronique
    Réponses: 2
    Dernier message: 26/01/2007, 23h49
Découvrez nos comparatifs produits sur l'informatique et les technologies.