2 choix  sur 1 pin

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!

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

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

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.

++

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

Merci pour ces retours!

ca m'aide bien !

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:

il y a aussi un outil pour aider au calcul des résistances nécessaires:
http://www.rau-deaver.org/1-wire%20keyboard.html