Remplissage auto : je bloquemj j’ai j’ai la sonde et le bouton !”



Bonjour,

J’ai besoin d’un coup de main pour brancher trois choses ensemble :
• une sonde qui détecte l’eau (Npn)
• un bouton poussoir,
• et un relais 24V qui ouvre ou ferme une valve.

:bullseye: Ce que je veux faire

Je veux un système très simple :
1. J’appuie sur le bouton → ça ouvre la valve → le contenant commence à se remplir.
2. Quand l’eau touche la sonde → la valve se ferme toute seule.
3. Je change le contenant pour un vide.
4. Je réappuie sur le bouton pour recommencer un autre remplissage.

Le bouton sert juste à lancer un remplissage.
La sonde sert à arrêter automatiquement quand c’est plein.

C’est tout ce que je veux faire, ni plus ni moins.

:red_question_mark: Ce que je voudrais vérifier

Je voudrais m’assurer que je branche :
• le bouton au bon endroit,
• la sonde à la bonne borne pour qu’elle arrête le relais,
• et la valve au bon endroit sur la sortie du relais.

Si quelqu’un peut me dire comment brancher ça simplement, étape par étape, ce serait vraiment apprécié.

Merci beaucoup !

:warning:

Post mis dans la mauvaise section, on parle anglais dans les forums généraux. ➜ je l’ai déplacé vers le forum francophone pour vous pour cette fois...

Merci de prendre en compte les recommandations listées dans « Les bonnes pratiques du Forum Francophone”

Pour vos questions

Y-a-t’il toujours un opérateur devant le système ou la cuve met très longtemps à se remplir et personne ne regarde ? Je demande parce qu’un seul capteur c’est prendre un risque de débordement en cas de panne. Un mécanisme physique (comme dans les cuvettes des WC et éventuellement un double containeur avec trop plein serait une sécurité supplémentaire (si votre récipient déborde, ça part dans un second containeur qui le contient et qui dispose d’un trop plein / mercanisme d'arrêt physique). Un timeout pourrait aussi être utile.

Sinon c’est du basique :

Le bouton est connecté en entrée sur l’arduino en contact sec (le courant fort ne passe pas par là)

Le relais (protégé et bien dimensionné) qui a une commande compatible (3.3V ou 5V tout ou rien) et isolée galvaniquement est connecté à l’arduino et sert à piloter la vanne

Le détecteur qui doit être compatible aussi aura sa sortie connectée à l’arduino

Le code est alors équivalent à ce que l’on trouve un peu partout et c’est typiquement une définition de programme qui se prête bien à la programmation par machine à états (cf mon tuto éventuellement)

Ça donnerait un truc comme cela

#include <Toggle.h>

const byte pinBouton = 2;
const byte pinRelais = 3;
const byte pinDetecteur = 4;

#define cuvePleine LOW

enum Etat { AU_REPOS, EN_REMPLISSAGE };
Etat etat = AU_REPOS;

enum Relais { RELAIS_ACTIF = LOW, RELAIS_INACTIF = HIGH };

unsigned long debutRemplissage = 0;
const unsigned long dureeMax = 10000ul; // 10s

Toggle bouton(pinBouton);

bool detectionArret() {
  return digitalRead(pinDetecteur) == cuvePleine || millis() - debutRemplissage > dureeMax;
}

void activerRemplissage() {
  digitalWrite(pinRelais, RELAIS_ACTIF);
  debutRemplissage = millis();
  etat = EN_REMPLISSAGE;
}

void arreterRemplissage() {
  digitalWrite(pinRelais, RELAIS_INACTIF);
  etat = AU_REPOS;
}

void setup() {
  pinMode(pinDetecteur, INPUT_PULLUP);
  pinMode(pinRelais, OUTPUT);
  digitalWrite(pinRelais, RELAIS_INACTIF);
  bouton.begin(pinBouton);
}

void loop() {
  switch (etat) {
    case AU_REPOS:
      bouton.poll();
      if (bouton.onPress()) activerRemplissage();
      break;
    case EN_REMPLISSAGE:
      if (detectionArret()) arreterRemplissage();
      break;
  }
}

(Tapé ici, non testé)

A noter qu’on peut faire un montage sans arduino, vous pouvez utiliser un relais bistable ou un relais avec latch et quelques composants logiques pour obtenir le même comportement. Le bouton sert à activer la vanne, et le capteur à l’arrêter automatiquement.

Une solution simple avec un relais standard : le bouton et le capteur sont câblés à une bascule SR électrique : le bouton met la bascule à 1 (ouvre la vanne), et le capteur ou un temporisateur remet la bascule à 0 (ferme la vanne).

Bonjour,

Suivant le mode de fonctionnement du capteur NPN, vous pouvez aussi peut-être faire un montage sans composant électronique ni code, juste 1 ou 2 relais (selon le capteur), 1 capteur, 1 ou 2 BP (dont 1 BP AU pour la sécu).

Pouvez vous nous en dire plus sur le capteur?

Sa fiche technique ou sa marque et reférence?

A suivre.

PS:
J'oubliais, rajouter une alimentation compatible capteur et relais (12V, 24V?)

Bonjour J-M-L

C'est testé, ça fonctionne :+1:

Une toute belle journée à vous!
jpbbricole

Bonjour louissioul

Pour la sonde qui fonctionne entre 10 et 30 Volts, il faudra un diviseur résistif afin d'adapter cette tension au standard Arduino qui est de 5 Volts.

Pour le bouton poussoir, pour qu'il soit adapté au programme de @J-M-L d'un côté à GND et de l'autre à la pin 2 de l'Arduino, c'est un câblage en PULLUP, si l'endroit est "bruité" du point de vue électronique, prévoir une résistance de PULLUP plus "basse" comme 4,7K.

Pour le relais, il te faudra un transistor NPN comme le 2N2222 pour passer la commande de 5V à 24V. ainsi que d'une diode de protection.

Veux tu un schéma?

A+
Cordialement
jpbbricole

merci pour le test !

La sonde BC1N12 à plusieurs variantes.

  • C'est une sonde 3 fils ou 4 fils?
  • Si 3 fils, la sortie est normalement ouverte ou normalement fermée?

Je m'auto répond

Ce capteur NPN est un 4 fils, on peut s'en servir sans Arduino ni code, avec une commande électromécanique.

J'y reviens plus tard avec un schéma propre.

@jef59 - manque plus que le timer pour la sécurité :)

@J-M-L

On n'est pas à l'abri non plus d'un relais ou d'un BP qui restent collés, d'une valve qui reste coincée, d'un Arduino qui plante.

Il faudrait faire une évaluation des risques avant de définir ce qui serait le + sécuritaire (un Time Out, un trop plein, doubler le capteur...).

Ce qui n'empéche pas de présenter différents schémas.

Bien sûr

J'étais simplement intéressé pour voir comment régler l'ajout d'un timeout en pur matériel

Ce n' est bien-sûr pas stupide, on peut effectivement penser que l'élement le + sensible est le capteur, et personnellement j'y rajouterais le "plantage" Arduino.

Donc un Time Out hard non piloté par l'Arduino, serait je pense une solution efficace.

Par exemple avoir un relais avec un contact temporisé, vous pilotez le relais, et son contact temporisé se ferme ou s'ouvre avec un certain délais aprés la commande.

Ça a un coût, comme la sécurité, c'est juste une idée.

J’ai laissé le sujet en stand by car il y a effectivement une multitude de solutions à contacts temporisés pour faire un Time Out, mais en petits relais pas trop cher, ça manque d’info de la part des vendeurs et/ou fabricants sur leurs modes de fonctionnement.

J’ai trouvé ça chez Conrad, en désespoir de cause, mais peut mieux faire en cherchant plus.

Le M113A “Time Switch 13-15V DC”.

J’en reste là pour l’instant de ma solution sans Arduino et avec Time Out car je ne sais pas si elle reste dans la course.

D’un autre côté, ajouter un Arduino, ça permet plein d'extension, comme compter et afficher le nombre de bouteilles remplies, mesurer le temps, et autres.

Il y a des dizaines de solutions possibles.

L’absence totale de @louissioul sur son sujet me laisse à penser que ce n’est pas sa priorité donc je quitte ce sujet.

J’ai cette option là

Bonsoir.

A premiére vue, c’est une option qui marche.

Il y a un ARRET disons de “secours” avec SW5, en série avec SW5, on peut rajouter un 2éme capteur de niveau au cas où l’un des 2 plante, ou un contact de minuteur enclenché par K1 pour faire le Time Out proposé par @J-M-L

RAJOUT DE TEXTE APRÉS PREMIÉRE PUBLICATION:

Ce contact de minuteur serait NF (normalement fermé), la minuterie activée en même temps que K1 ouvrirait ce contact aprés un temps T correspondant au temps nécessaire (+ marge) pour remplir un récipient.

Ainsi si le capteur de niveau est en panne, on ne remplit pas indéfiniment le récipient.