IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Arduino Discussion :

Enregistrer un nombre à l'aide d'un keypad 12 touches et un afficheur LCD


Sujet :

Arduino

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Lycéen
    Inscrit en
    Mai 2021
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 20
    Localisation : France, Finistère (Bretagne)

    Informations professionnelles :
    Activité : Lycéen

    Informations forums :
    Inscription : Mai 2021
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Enregistrer un nombre à l'aide d'un keypad 12 touches et un afficheur LCD
    Bonjour tous le monde, j'ai une petite difficultés actuellement dans mon code arduino et j'aimerais si possible qu'une personne généreuse puise m’éclaircir dans mon programme.
    Je suis actuellement en classe de Term STI2D et lors de mon projet je dois réaliser un programme arduino qui permet de choisir un nombre (de max 2 chiffres) à l'aide d'un keypad pour que ce nombre s'affiche par la suite sur un écran lcd.
    Mon projet étant de créer un coupe gâteaux automatique qui nous permettra de choisir un nombre de parts souhaité pour qu'il nous coupe le gâteaux tous seul en nombre de parts choisie.
    Actuellement je m'occupe du choix du nombre de parts ( keypad 12 touches reliés à un écran lcd ).
    Mon problèmes actuellement est de faire en sorte qu'on ne puisse pas écrire plus de 2 chiffres et de pouvoirs valider le nombre avec la touche ( * ).
    voici mon code pour le moment:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
     // --- Inclusion des librairies utilisées ---
     
    #include <LiquidCrystal.h> // Inclusion de la librairie pour afficheur LCD
     
    #include <Keypad.h> // inclusion de la librairie pour clavier matriciel
     
    // --- Déclaration des constantes ---
     
    //--- Constantes utilisées avec le clavier 4x4
    const byte LIGNES = 4; // 4 lignes
    const byte COLONNES = 3; //3 colonnes
     
     
    // --- constantes des broches ---
     
    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 RS=8; //declaration constante de broche
    const int E=9; //declaration constante de broche
    const int D4=10; //declaration constante de broche
    const int D5=11; //declaration constante de broche
    const int D6=12; //declaration constante de broche
    const int D7=13; //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éclaration des variables globales ---
     
    //--- Définition des touches
    char touches[LIGNES][COLONNES] = {
      {'1','2','3'},
      {'4','5','6'},
      {'7','8','9'},
      {'*','0','#'}
    };
     
    // 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}; //connexions utilisées pour les broches de colonnes du clavier
     
    char touche; // variable de stockage valeur touche appuyée
     
     
    // --- Déclaration des objets utiles pour les fonctionnalités utilisées ---
     
    LiquidCrystal lcd(RS, E, D4, D5, D6, D7);// Création d'un objet LiquidCrystal = initialisation LCD en mode 4 bits
     
     
    // 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
     
     
    //**************** FONCTION SETUP = Code d'initialisation *****
    // La fonction setup() est exécutée en premier et 1 seule fois, au démarrage du programme
     
    void setup()   { // debut de la fonction setup()
     
    // --- ici instructions à exécuter au démarrage ---
     
    lcd.begin(20,4); // Initialise le LCD avec 20 colonnes x 4 lignes
     
    delay(10); // pause rapide pour laisser temps initialisation
     
    // Test du LCD
     
    lcd.print("LCD OK") ; // affiche la chaîne texte - message de test
    delay(2000); // pause de 2 secondes
     
    lcd.clear(); // // efface écran et met le curseur en haut à gauche
    delay(10); // pour laisser temps effacer écran
     
     
     
    // les broches de lignes et d'entrée sont configurées automatiquement lors de l'initialisation du clavier
     
    // ------- Broches en sortie -------  
     
     
    // ------- Broches en entrée -------  
     
     
    // ------- Activation du rappel au + interne des broches en entrée si nécessaire -------  
     
     
    } // fin de la fonction setup()
    // ********************************************************************************
     
    //*************** FONCTION LOOP = Boucle sans fin = coeur du programme *************
    // la fonction loop() s'exécute sans fin en boucle aussi longtemps que l'Arduino est sous tension
     
    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=='#') lcd.clear(); else lcd.print(touche); // efface écran si appui # sinon  affiche touche
      delay(300); // pause entre 2 appuis
     
    } // fin gestion de la touche appuyée
     
    } // fin de la fonction loop() - le programme recommence au début de la fonction loop sans fin
    // ********************************************************************************
     
    // --- Fin programme ---
    Merci,
    Cordialement Awixxx

  2. #2
    Membre émérite
    Avatar de jpbbricole
    Homme Profil pro
    Retraité des réseaux informatiques
    Inscrit en
    Février 2013
    Messages
    1 012
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Retraité des réseaux informatiques
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2013
    Messages : 1 012
    Points : 2 341
    Points
    2 341
    Par défaut
    Bonjour Awixxx

    Il y a un bon exemple ici.
    Résultat de la recherche Keypad.h input string.

    Faire une machine à couper un gâteau est un sujet alléchant, moi je serai, plutôt, une machine à les manger
    Bonne continuation.

    Cordialement
    jpbbricole
    L'expérience est la seule chose qu'il ne faut acheter que d'occasion!

Discussions similaires

  1. Enregistrer un nombre avec virgule
    Par mitnick2006 dans le forum MySQL
    Réponses: 3
    Dernier message: 05/02/2009, 20h36
  2. [MySQL] enregistrement de nombre decimal
    Par fey dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 19/11/2008, 16h09
  3. Ajout d'enregistrements en nombre
    Par aldrou dans le forum ASP
    Réponses: 2
    Dernier message: 13/06/2007, 11h35
  4. nombre d'enregistrements ou nombre de table ?
    Par grinder59 dans le forum Administration
    Réponses: 3
    Dernier message: 26/08/2006, 00h51
  5. Réponses: 2
    Dernier message: 28/06/2006, 08h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo