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
    invite82939336

    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
    invite1d577638

    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.

  3. #3
    invite82939336

    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  

  4. #4
    invite1d577638

    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 ?

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

    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
    invite1d577638

    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...

  8. #7
    invite82939336

    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
    invite82939336

    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
    invite1d577638

    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 ?

  11. #10
    invite82939336

    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
    invite82939336

    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
    invite1d577638

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

    C'est le même code qu'en #1 ? Redonne le si non...

  14. #13
    invite82939336

    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
    invite1d577638

    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 !

  16. #15
    invite1d577638

    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 ?

  17. #16
    invite82939336

    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
    invite1d577638

    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 ?

  19. #18
    invite82939336

    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
    invite1d577638

    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é.

  21. #20
    invite82939336

    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
    invite1d577638

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

    En plus de mes remarques en #19, je dirais qu'il manque 2 "}" à la fin.

  23. #22
    invite82939336

    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
    invite1d577638

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

    ça fonctionne ?

  25. #24
    invite82939336

    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
    invite82939336

    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
    invite82939336

    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?

  28. #27
    invite1d577638

    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 !

  29. #28
    invite82939336

    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
    invite1d577638

    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é.

  31. #30
    invite82939336

    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 inviteaba88869 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
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...