Plusieurs boutons sur une seule entrée

Bonjour à tous,

Après plusieurs recherches dans les entrailles du forum 2010 et sur google, je n'ai pas trouver de tutoriel ou d'exemple sur la mise en place de plusieurs BP sur une seule entrée analogique... Je souhaiterai pouvoir différencier quel contacteur est actionné individuellement et même si il y en a plusieurs d'actionner à la fois.

J'ai eu un début de solution ici : http://www.arduino.cc/cgi-bin/yabb2/YaBB.pl?num=1208384208/all mais il semble que sa ne marche pas pour les appuies multiples ?

En vous remerciant par avance.

Combien de boutons tu veux utiliser ?

Pourquoi forcement sur l'analogique ?

Hi, j'ai fait un petit tutoriel sur la carte Romeo (idem 328), elle a des boutons poussoirs sur une entrée analogique. On peut en déduire un seul bouton à la fois , ils sont aussi prioritaire dans un sens. S1..S7. La doc est consultable ici : http://www.zartronic.fr/doc/E2/E2N1P214/Guide_Utilisateur_Romeo_2010.pdf

A+ Teiva

Jean françois : six microrupteurs reliés sur les pattes de mon hexapode.

B@tto : Pas forcément sur l'analogique, je cherche juste à optimiser mes entrées.

Teiva : merci, mais dommage que je ne puisse pas déduire plusieurs appuis.

Salut,

Voici un tutoriel de TronixStuff sur le sujet. Son design n'est pas particulièrement efficace par contre. http://tronixstuff.wordpress.com/2011/01/11/tutorial-using-analog-input-for-multiple-buttons/

Pour faire toi même le circuit, voici en quoi il pourrait consister: 1. Chaque bouton agit comme un diviseur de voltage quand il est pressé. 2. La pin analogique de l'Arduino est "pulled high" quand aucun bouton n'est pressé.

Pour t'aider regarde ceci: (en anglais) http://www.sparkfun.com/tutorials/218 http://www.sparkfun.com/tutorials/207

Bonne réflexion!

Si tu veux t'amuser un moment... tu peux faire ton propre module.

Tu fais un arduino standalone qui va "sonder" tes interrupteurs (en digital). Ensuite tu fais une liaison entre ton standalone et l'arduino qui gère ton robot avec le protocole que tu choisis (série,i2c...).

@ Binette228, si tu utilise tes inter en diviseur de tensions, et que tu as des appuis multiples, jusquà deux ça va, mais à partir de trois appuis, ça devient fastidieux de coder chaque possibilité (pour 6 boutons ça fait beaucoup de possibilités :sweat_smile:)

Binette : Merci, un peu de lecture :)

Jean François : Je viens tt juste de recommencer à m'amuser en programmation, peu être plus tard ;)

Faut prendre un extender I/O genre PCF8547 : 8 entrées/sorties par puce commandée en i2c (donc extension quasi illimitée ...)

et en utilisant un réseau R/2R comme sur un CNA ? Chaque bouton représentant un "bit", la tension résultante mesurée par l'arduino permet de "reconstituer" les boutons appuyés (dans ce cas, on peut gérer un nombre de boutons important, puisque tout dépend de la résolution du CNA et de la précision de la mesure de la tension résultante). Il faut aussi ne prendre en compte la mesure que si celle-ci est stable pendant un certain temps (pour éviter les effets de rebond)

Euh, je dis une bétise ?

B@tto: Faut prendre un extender I/O genre PCF8547 : 8 entrées/sorties par puce commandée en i2c (donc extension quasi illimitée ...)

Je ne suis pas d'accord la dessus... I2C = adresses (donc limité)

Comme là dis taddot, il s'agit de tension résultante... Il est donc possible de détecter des pressions simultanées... Cela dépend du nombre de boutons à gérer et quels sont les boutons pressé en même temps... :)

Dafra:

B@tto: Faut prendre un extender I/O genre PCF8547 : 8 entrées/sorties par puce commandée en i2c (donc extension quasi illimitée ...)

Je ne suis pas d'accord la dessus... I2C = adresses (donc limité)

1) on a pas parlé de combien il en fallait, donc quelle limite ? 2) il y a plusieurs versions avec un prefixe d'adresse qui change + 3 pins pour modifier l'adresse. Avant que t'arrive à en voir le bout ... 3) j'ai dit "extender I/O genre PCF8574" : il y a le grand frère à 16 I/O (avec le même système d'adressage) + des dizaines d'autres chez tous les fondeurs .... Encore une fois, avant que t'en vois le bout ....