voila mon problème j'ai une arduino uno mais il me manque un port digital pour un bouton poussoir qui est essentiel. j'ai entendu dire que l'on pouvais utiliser des port analogique comme port digitale est-ce vrais si oui comment ???
Mieux qu'un long discours un schéma : regardes celui de la page 5 de la spec de l'atmega328p (gogole recherche "atmega328p datasheet").
Tu verra que les broches physiques des accès "dit analogiques" sont reliés aux entrées digitales ET aux entrées du convertisseur analogique/digital.
Ce qui veut dire que si tu écris dans ton programme digitalWrite(Ax , HIGH) ou digitalRead(Ax) l'accès Ax sera automatiquement considéré comme digital, exactement comme pour les pins 1 à 13. Si tu écrit analogRead(Ax) l'accès sera considéré comme analogique et c'est le convertisseur analogique/digital qui sera automatiquement actionné.
C'est transparent pour toi, c'est la librairie Arduino associée qui envoie les ordres qui vont bien.
Le problème c'est qu'il faut envisager toutes les possibilités appui sur un bouton, deux, trois.... juste un tableau qui fera plus de 10^10 possibilité
Désolé de te contredire, Jean-François , mais pourquoi compter 10^10 solutions ou 11^11 ?
Dans le schéma que j'ai posté, quand on presse un Switch, cela a pour effet de shunter les autres (SW6 shunte les SW5 a SW1), même si on appuis sur 2 boutons.
Pour moi, on ne peux détecter qu'un bouton a la fois, et si on appuis sur un second bouton, non ?
Je suis léger en électronique, et pour moi, le courant va au moins résistif.
Je pense que l’étalonnage de chaque bouton (loi d'ohm, et des mailles), doit être bien chiant, et doit être testé avant de finaliser le projet (par contre).
Ayant déjà réalisé un montage de ce type sur un vieux projet, je n'avais pas trouvé de solution simple pour supporter la lecture de plusieurs boutons simultanément. Ou alors, il faut partir sur une solution de type matrice mais qui ne sera rentable qu'avec un grand nombre de boutons.
Pour répondre à cyberfred91, quand deux résistances sont mises en parallèle (ce qui est le cas ici quand deux boutons sont appuyés) on obtient une résistance de (R1*R2)/(R1+R2). Donc, pas simple de déterminer qui est appuyé en même temps qu'un autre.
Il est aussi nécessaire de vérifier si on est dans une certaine fourchette pour chaque boutons et pas faire un test trop ciblé, le courant et le convertisseur analogique/digital n'étant pas toujours très stables et pouvant varier suivant certains paramètres. Il m'est arrivé sur ce projet de devoir changer les fourchettes de tests après une modification du montage.
Sinon, il est toujours possible d'utiliser un multiplexer digital du genre PCF 8574 quand on est en manque de pins digitales, c'est simple à utiliser et ça ajoute 8 nouvelles entrées/sorties par CI ... Et il existe aussi des versions 16 entrées/sorties aussi en I2C.