[RESOLU] Commutateur 3 positions pour un mode Auto/Off/Forcé

Bonjour

Pour mon projet, je souhaite utiliser des commutateurs rotatifs 3 positions comme ceux-ci :
https://www.banggood.com/19mm-3-Position-12V-Waterproof-Stainless-Steel-Latching-Metal-Selector-Switch-p-1221904.html

Ces commutateurs ont un brochage assez particulier. Il va commander le mode Auto/Off/Forcé d’un relais (carte relais que l’on trouve partout où il faut mettre l’entrée à la masse pour activer le relais)

Bref, je cherche à câbler ceci sachant que :

  • Je veux que le mode soit 100% électrique : si l’arduino est éteint/en panne, le mode off/forcé doit continuer à fonctionner. Idem : si je mets sur Off, le relais ne doit jamais s’activer.

  • Je veux faire remonter le mode à l’arduino via 2 broches.

Un petit schéma du montage que j'avais pensé :

Voici donc la question :

En mode auto : l’entrée Ar4 sera « en l’air » ce qui n’est pas bien car l’état est indéterminé.

Je ne peux pas mettre un pull-up (Ar4 sera a +5v en mode auto) sinon, je ne peux plus différentier le mode auto et le mode off.

Je ne peux pas mettre un pull-down sinon, en mode off, le relai va s’activer.

Bref : J’ai essayé de mettre un pull-down avec une résistance de 100k mais je ne sais pas si ce sera suffisant pour l’entrée de l’arduino. Avec cette résistance, la led du relais s’allume en mode off : je dois être à la limite du déclenchement de l’opto ce qui n’est pas très bon.

Peut-être avec un transistor ?

Si vous avez une idée de génie ou une autre manière de câbler ceci.

j'attends vos suggestions

RESOLU : Solution élégante avec résistance et transistor post #8 par @leptro

je me réponds a moi même :

d'après ici et mes tests
DigitalPins

une résistance pull-down de 1 MO (voir 10Mo) est suffisant pour détecter la tension de l'entrée du relais et abaisse suffisamment le courant et ne pas saturé l'optiocoupleur.

Maintenant, il faut que je regarde ce qu'il se passe si l'arduino est alimenté mais pas le bouton de commande (défaillance des cables)

je reviens ici pour trouver une autre solution.
En ajoutant une résitance pull-down de 1Mo, j'ai peur que cette entrée soit trop sensible au parasite.

Si un pro de l’électronique à une autre idée à me soumettre, ce ne serait pas de refus.

J'avais pensé a un transistor (npn 2n2222 ?) mais en effectuant mes essais, celui-ci travaille en linéaire.

J'avoue : j'ai du mal à calculer le courant limite pour la saturation de l'optocoupleur.

je pense que vos manipulations sont assez mystérieuses voire nébuleuses
comme vous dites, cet interrupteur à un mode de fonctionnement tres particulier
Ar1 est-elle une entrée ou une sortie ?

Pourtant,je trouve qu'il n'y a rien de nebuleux dans ce que je veux faire. Je pense plus que j'ai du mal a expliquer ce que je cherche.
La methode simple serait de monter le commutateur pour commander 2 entrees de l'arduino et que l'arduino commande le relai via une sortie.
Mais j'aime la complication.
Ce que je cherche, c'est :

  • si l'arduino tombe en panne, je puisse utiliser le mode forcé.
  • si l'arduino fonctionne et qu'il commande le relai, je puisse "electriquement" le couper le relai
  • que l'arduino reçoive l'information du mode dans lequel est le commutateur.

Au niveau du schéma :
ar1 (ne pas en tenir compte)
Ar2 et ar4 sont des entrees de l'arduino qui donne le mode
Ar3 est une sortie de l'arduino qui commande le relais en mode auto.

Mon interrogation se portait sur ar4 car si je laisse le schéma tel quel, en mode auto, ar4 ne sera pas connecté donc impossible de determiner le mode.

Mon idee est donc d'ajouter sur ar4 une resistance de pull-down pour tirer vers la masse en mode auto.
Je chercher a calculer cette resistance sachant que si je prends une valeur trop petite (10k), en mode auto, le courant sera suffisant pour declancher le relais, quelque soit l'état de la commande.
(Apres test, 500k est suffisant pour ne pas declancher le relai mais est ce que ce sera suffisant pour eviter les erreur lié au parasites

J'espère que c'est plus clair.

Mais j'aime la complication.

Oui, on avait remarqué.

(Apres test, 500k est suffisant pour ne pas declancher le relai mais est ce que ce sera suffisant pour eviter les erreur lié au parasites

Comment veux-tu que l'on réponde à une question pareille ?
Tout dépendra de l'amplitude des parasites et donc du milieu ambiant, que personne ne connaît, à part toi.
Conclusion : tu testes.

Bonjour,

lecture 3 états
auto_off_on.gif
sélection mode

(partant de la solution on doit pouvoir trouver le problème)

auto_off_on.gif

@Trimarco232 : sympa mais comme je l'ai dit, le contacteur 3 positions que j'ai ne se comporte pas comme un double inverseur (ce serait trop simple)

voila le fonctionnement :

et voila le schéma du montage auquel j'avais pensé

  • ARIN2 et ARIN4 sont des entrées de l'arduino qui me permet de savoir la position du contacteur
  • AROut est la sortie de l'arduino qui pilote le relais en mode auto

et le point "compliqué" pour moi est de trouver la bonne valeur de la résistance R2 tel que :

  • le courant soit suffisant pour lire un etat 1 sur ARIN4 en mode OFF
  • le courant soit suffisant pour lire un état 0 sans trop de perturbation en mode Auto (tirage vers la masse)
  • Mais surtout que le courant soit suffisamment faible pour ne pas déclencher le relais en mode OFF

A moins qu'il y ai une autre manière de faire que je ne connais pas

Pour l'environnement, ce sera dans un local piscine et le relai va commander la pompe donc un environnement relativement perturbé.

Bonjour
Voici une solution rapide à main levée.
Bonne bidouille.

@leptro : genial comme solution !
Merci beaucoup.

Pour les composants, je prends du standard ?
2n2222 et 3 resistances a 10k ?
(Voir je passe les ar2 ar4 en pull up dans l'arduino mais perso je prefere laisser les resistances)

De rien.

Les deux résistances sur AR2 et AR4 sont des pull-up de 10K ou éventuellement utiliser les pull-up de l'Arduino.

Un 2N2222 suffit mais pour la résistance de base, il faut normalement la calculer selon le courant de commande relais (courant dans le collecteur) , la tension d'alimentation de l'Arduino.

Mais 10k ou 15k devrait fonctionner.

en repartant sur mon principe, on économise du travail et des composants :
(100k pour la résistance)
Scan auto off on.jpg

Scan auto off on.jpg

merci trimarco232.
L'idée est interressante aussi

je vais quand même partir sur la version de leptro car on ne peux pas distinguer le mode [off] du mode [auto + commande off] avec votre proposition (ce qui n'est pas forcement nécessaire mais je préfère avoir la distinction des deux, même si je ne m'en sert pas)

pourquoi au moins 100 k pour la résistance ?

pas de souci, tu fais comme tu l'entends :slight_smile:

en mode off la lecture de la résistance en pull down donne un + (forcé par la led de l'opto)

en mode auto off la même lecture donne un -, le distingo est donc fait

la valeur de 100k est commune et assez élevée pour que le courant intempestif qu'elle génère soit assez faible pour ne pas perturber la lecture de l'état en mode off, voire pour ne pas actionner la led

trimarco232:
en mode auto off la même lecture donne un -, le distingo est donc fait

je crois que je n'ai pas compris le schéma
a quoi est relié la résistance en haut et en bas ? (en haut, je dirais +5 et en bas, l'entrée a lire)
si c'est ça : en mode auto, la lecture de l'entrée donnera un + via la résistance

Edit : je crois avoir compris mais cela signifie que la résistance est branché a la masse tout en haut.
Si c'est le cas, cela revient a peu de chose près à mon schéma avec le calcule de la résistance qui risque de poser problème.
Ca me rassure dans le sens ou l'on est 2 à avoir pensé à la même chose. Je me dis que je ne suis pas complètement à la masse !

Allez, une petite vidéo du montage de Leptro sur breaboard
(il me manque une troisième main)

le poussoir simule la sortie de commande de l'arduino
les led sont les entrées

Par contre, a 0:50, il y a un phénomène étrange : en mode auto, le relais se met a osciller si je touche la base du transistor avec mon doigt.

J'ai cherché une explication mais je n'ai rien trouvé de concret. ce doit être le même phénomène que de laisser des entrées de l'arduino en l'air : lecture aléatoire.
Bref : ça surprend au départ. Au final, en branchant une vrai sortie d'arduino, il n'y a plus ces parasites.

par contre, je serais curieux de savoir comment je peux faire électroniquement pour simuler une sortie d'arduino

Par contre, a 0:50, il y a un phénomène étrange : en mode auto, le relais se met a osciller si je touche la base du transistor avec mon doigt.

Cela rejoint la question :

(Apres test, 500k est suffisant pour ne pas declancher le relai mais est ce que ce sera suffisant pour eviter les erreur lié au parasites

Et ma réponse :

Tout dépendra de l'amplitude des parasites et donc du milieu ambiant, que personne ne connaît, à part toi.

Avec ton doigt tu introduis un max de parasites (50Hz en particulier).
C'est une situation à ne pas prendre en compte, car non naturelle dans un montage.

de la theorie à la pratique.. bien. Même si le montage n'était pas bien compliqué c'est bien de vérifier le fonctionnement.

le relais se met a osciller si je touche la base du transistor avec mon doigt.

En supprimant le 50Hz ça fait un bouton tactile! :slight_smile: