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 :

Question bête sur les entrées et les claviers


Sujet :

Arduino

  1. #1
    Membre régulier
    Homme Profil pro
    retraité développement loisirs
    Inscrit en
    janvier 2012
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : retraité développement loisirs

    Informations forums :
    Inscription : janvier 2012
    Messages : 147
    Points : 85
    Points
    85
    Par défaut Question bête sur les entrées et les claviers
    Bonjour et merci pour votre soutien aux ignares comme moi...
    question qui je le parie sera stupide mais tant pis.
    je débute et j'ai j'aurai naturellement pensé que pour vérifier une action sur un bouton je l'aurai branché sur une entrée et aurai détecté qu'il la mettait en 5V quand j'appuyais.
    je vois sur des tutos que surtout pas à cause des signaux parasites et que donc on demande au bouton de mettre l'entrée à 0v (avec une résistance pour éviter les courts circuits et un condo pour palier les rebonds)...
    Bon, ça va, ça j'ai compris.... ouf
    ce que je ne comprend pas alors, c'est pourquoi, quand on branche un clavier 4*4 on ne fait pas comme ca pourtant il doit bien y avoir les mêmes parasites, non ?
    merci à vous de me rendre moins bête

  2. #2
    Expert éminent sénior
    Avatar de Auteur
    Profil pro
    Inscrit en
    avril 2004
    Messages
    7 476
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : avril 2004
    Messages : 7 476
    Points : 10 591
    Points
    10 591
    Par défaut
    bonjour,

    ces questions ne sont pas bêtes Tu trouveras les réponses en ouvrant la bibliothèque Arduino keypad en particulier le fichier keypad.cpp.

    1- Tu trouveras la fonction scanKeys() où il y a cette boucle :
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    	for (byte r=0; r<sizeKpd.rows; r++) {
    		pin_mode(rowPins[r],INPUT_PULLUP);
    	}
    ce qui répond à ta première question : toutes les entrées sont en pull-up, tu n'as pas besoin d'ajouter des résistances.

    2- Plus loin il y a cette fonction :
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    nextKeyState(byte idx, boolean button)
    avec ce commentaire
    // This function is a state machine but is also used for debouncing the keys.
    . Un peu plus loin encore :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     // Minimum debounceTime is 1 mS. Any lower *will* slow down the loop().
    void Keypad::setDebounceTime(uint debounce) {
    	debounce<1 ? debounceTime=1 : debounceTime=debounce;
    }

    ce qui veut dire que les entrées sont temporisées pour justement éliminer les rebonds (debounce). Ce qui répond à ta seconde question : pas besoin de condensateurs




    [edit]
    Par contre, ce qui me surprend un peu c'est qu'ils ont utilisé des fonctions Arduino (pinMode(), millis(), etc.) pour construire cette bibliothèque. Je m'attendais à trouver des choses plus élaborées comme des accès directs au E/S, même si pour un clavier on ne demande pas forcément une vitesse d'exécution élevée pour le code.
    [/edit]

  3. #3
    Membre régulier
    Homme Profil pro
    retraité développement loisirs
    Inscrit en
    janvier 2012
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : retraité développement loisirs

    Informations forums :
    Inscription : janvier 2012
    Messages : 147
    Points : 85
    Points
    85
    Par défaut
    merci "Auteur" ta réponse est claire et super détaillée.
    mais encore juste une petite... Et si je veux mettre mon entrée en normalement low et que je mets du 5v qui vient par exemple d'ailleurs que l'arduino lui meme, c'est à dire d'un bouton alimenté par une alim quelconque ou une autre carte, je peux ou pas ?

  4. #4
    Responsable Modération

    Homme Profil pro
    Ingénieur électricien
    Inscrit en
    septembre 2008
    Messages
    1 110
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : Suisse

    Informations professionnelles :
    Activité : Ingénieur électricien

    Informations forums :
    Inscription : septembre 2008
    Messages : 1 110
    Points : 4 058
    Points
    4 058
    Par défaut
    Bonjour

    Oui cela reste possible en respectant les conditions suivantes:
    - La tension extérieur ne doit jamais dépasser de 0.3V la tension d'alimentation de l'Arduino, et le 5V n'est pas toujours 5V avec une alim sur USB
    - La tension extérieur ne doit jamais arriver sur l'Arduino si celui-ci n'est pas alimenté
    Car dans les deux cas il y aura destruction de la pin d'entrée, voir du microcontrôleur de l'Arduino

    Pour ces raisons on préfère de loin la mise à la masse de la part du contact distant.

    Delias

  5. #5
    Modérateur

    Avatar de Vincent PETIT
    Homme Profil pro
    Consultant en Systèmes Embarqués
    Inscrit en
    avril 2002
    Messages
    3 073
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Pas de Calais (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Systèmes Embarqués
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : avril 2002
    Messages : 3 073
    Points : 11 132
    Points
    11 132
    Par défaut
    Salut,
    Il faut aussi que les GND soient communs entre le Arduino et l'alimentation externe.
    La science ne nous apprend rien : c'est l'expérience qui nous apprend quelque chose.
    Richard Feynman

  6. #6
    Membre régulier
    Homme Profil pro
    retraité développement loisirs
    Inscrit en
    janvier 2012
    Messages
    147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : retraité développement loisirs

    Informations forums :
    Inscription : janvier 2012
    Messages : 147
    Points : 85
    Points
    85
    Par défaut
    Bonjour,
    merci à vous 3 Vincent PETIT, Delias et Auteur pour votre aide précieuse

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Question bête sur les conteneurs
    Par jadey dans le forum C++
    Réponses: 21
    Dernier message: 04/05/2006, 01h09
  2. [VB6]Question bête sur les paramètres optionels
    Par méphistopheles dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 17/10/2005, 21h33
  3. Réponses: 7
    Dernier message: 05/10/2005, 12h29
  4. [MFC] Question bête sur les CListBox
    Par gwendo dans le forum MFC
    Réponses: 1
    Dernier message: 10/08/2005, 17h43

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