Go Down

Topic: 2 choix  sur 1 pin (Read 1 time) previous topic - next topic

KiliYaBB

Aug 12, 2009, 10:45 am Last Edit: Aug 12, 2009, 11:28 am by KiliYaBB Reason: 1
Bonjour,

Dans mon montage j'ai deux iinterrupteurs poussoirs qui permettent a lutilisateur de faire un choix entre A et B. Pour économiser une PIN j'ai pensé a mettre les deux poussoirs sur la même PIN, en parallèle mais avec des resistances différentes. Voici l'idée:


ANALOG INPUT
           |
           |
      ----------
      |         |
    -|        -|  poussoirs
      |         |
     #        #
R1 #        # R2
     #        #
      |         |
     -------------
           |
          + 5 volts

Et donc dans le programme je lis la valeur de LINPUT.

Supposons que R1 donne au final un analogread de 430 et la R2 donne  870

Il me suffit de faire un code me disant:

si analogRead compris entre 400 et 500 alors choix A
si analogRead compris entre 800 et 900 alors choix B

Qu'en pensez vous ? Y aurait-il plus simple ?

PS : Il y aurait même posssiblité de définir un 3e choix qd les 2 poussoirs sont préssés.


Merci!

Sebelec

Oui tu peux, grâce à la résistance équivalente aux 2 résistances en parallèles.

Mes cours d'élec sont loin, mais il me semble que tu peux la calculer comme ceci : 1/R = 1/R1 + 1/R2

R1 étant la résistance au 1er bouton
R2 étant la résistance au 2nd bouton
R étant la résistance équivalente lorsque les 2 boutons sont appuyés

KiliYaBB

Merci pour ta réponse Sebélec !

Mais ma question porte plus sur le principe d'utiliser une seule PIN pour deux choix (jai d'ailleurs modifié un peu mon post pour quece soit plus compréhensibles pour les futurs lecteurs).

En fait le fond de ma question c'est de savoir si utiliser un tel montage est une bonne idée, avantages/inconvénients, éventuellement dangerosité.

-Gil-

Bonjour,

Non, il n'y a pas de problème avec ton montage, si ce n'est que je mettrais une résistance pulldown entre le ANALOG INPUT et le ground. Sans cela, ton entrée risque de te renvoyer un peu n'importe quoi quand rien n'est appuyé vu qu'elle sera 'flottante'.

Tu peux même gagner une résistance en ayant un des deux boutons qui connecte directement le +5v à l'entrée et laisser une résistance sur le deuxième bouton ..

J'ai déjà utilisé le même principe mais en série plutôt qu'en parallèle basé sur le post suivant : http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1226896251. A partir du moment ou tu n'as pas besoin de pouvoir pousser plusieurs bouttons en même temps c'est très simple et te permet de gagner des pins IO.

Si tu veux vraiment savoir si on appuie sur plusieurs boutons, c'est un peu plus compliqué, mais tout à fait gérable avec 2 boutons, mais pour plus que 2, je choisirais une autre voie.

J'espère que cela répond à ta question.

++

yalefe

Aucun pb avec ton montage....

En revanche, comme tu l'as suggéré, il te faudra prévoir dans ton code, le cas où les deux BP seraient activés en meme temps.

Si tu as un analogread de 430 pour R1 et de 870 pour R2, tu obtiendras un analogread de 288 ( arrondi à la dec. superieure) pour R1 + R2

KiliYaBB

Merci pour ces retours!

ca m'aide bien !

fdufnews

#6
Aug 16, 2009, 05:08 pm Last Edit: Aug 16, 2009, 05:10 pm by fdufnews Reason: 1
Tu devrais aller voir là, il y a une note d'application sur les claviers un fil,ce n'est pas pour un processeur Atmel mais le principe reste le même:
http://www.st.com/stonline/products/literature/an/5704.htm
il y a aussi un outil pour aider au calcul des résistances nécessaires:
http://www.rau-deaver.org/1-wire%20keyboard.html

Go Up