Commutateur rotatif 1 circuit 12 positions

Bonjour tout le monde,

Je souhaite utiliser un commutateur comme celui-ci

Sachant que je veux gérer seulement 8 des 12 positions (c'est un prototype et j'avais des 12 positions sous la main)

Aussi voici ce que j'ai fait intuitivement :

  • je relis A au 5V
  • je relis 1 à 8 chacun à un input Arduino Mega que je définis en INPUT_PULLUP pour profiter de la résistance interne

En testant un giditalRead sur un input, je constate qu'il est bien à 1, mais ne passe jamais à 0.
Pire, en partant de la position 1, à partir de la position 6, j'ai une fluctuation 0 | 1

J'ai aussi testé :

  • je relis A au 5V
  • je relis 1 à 8 chacun à un input et au GND via une résistance 10K et je définis en INPUT
    Cette fois-ci je lis uniquement des 0, aucun passage à 1

Alors avant d'y passer 3h, je vous demande des explications théoriques sur ce que je constate et idéalement comment je dois utiliser un tel composant.

Note : après quelques recherches je suis tombé sur un post anglais

J'avais espoir de pouvoir utiliser sur ma logique pour éviter de devoir trouver 12 valeurs de résistance différentes pour faire diviseur de tension...

Merci beaucoup pour vos lumières :slight_smile:

EDIT : ne faudrait-il pas tout simplement que je relis A à 1 sur le commutateur ?

Bonjour,
Il faut simplement relier A à GND et 1 à 8 directement aux inputs de l'Arduino.
Puis configurer les pins arduino en INPUT_PULLUP.

C'est l'arduino et la résistance de pullup interne qui fournit l'état 1, et le contacteur qui met la broche à la masse quand il se ferme.

J'utilise un 2x6 positions sur mon dernier projet Adruino :slight_smile:

dzean:
Aussi voici ce que j'ai fait intuitivement :

  • je relis A au 5V
  • je relis 1 à 8 chacun à un input Arduino Mega que je définis en INPUT_PULLUP pour profiter de la résistance interne

Dans ce cas, A aurait du être connecté à GND pour que le montage fonctionne.

dzean:
J'ai aussi testé :

  • je relis A au 5V
  • je relis 1 à 8 chacun à un input et au GND via une résistance 10K et je définis en INPUT
    Cette fois-ci je lis uniquement des 0, aucun passage à 1

Cette configuration aurait du fonctionner.

On ne peut pas non plus exclure:

  • une erreur de câblage
  • une erreur dans le code
  • un commutateur pourri

Merci pour vos réponses à tous les 2 !

Pfff en effet pour la version avec les résistances 10K, il s'agit d'une erreur de câblage (no comment :frowning: )

Pour la version avec PULLUP, je viens de tester mais j'ai une alternance 0 1 sur chaque pin je dois avoir un problème de câblage bizarre.
Je regarderai plus tard

C'est vrai que ça évite d'utiliser des tonnes de résistances 10K !

Merci