Pb Capteurs de niveau d'eau

Bonjour,
j'ai acheté deux capteurs de niveau sur ali

ce modèle :
51-pYCmJ4nS.AC_SX425

https://fr.aliexpress.com/item/1005005759618287.html?spm=a2g0o.order_list.order_list_main.5.4b905e5bmrLuDs&gatewayAdapt=glo2fra

Le code pour les tests :

const int entreeNH = 7; //entrée Niveau Haut
const int entreeNB = 8; //entrée Niveau Bas
boolean NB, NH;

void setup() {
  Serial.begin(115200);
  pinMode(entreeNH, INPUT_PULLUP);
  pinMode(entreeNB, INPUT_PULLUP);
}

void loop() {
  {
    NB = digitalRead(entreeNB);
    Serial.println(NB);
    NH = digitalRead(7);
    Serial.println(NB);

    if (NB == 1 && NH == 1) {
      Serial.println("VERT");
    } else if (NB != NH) {
      Serial.println("ORANGE");
    } else {
      Serial.println("ROUGE");
    }
  }
  delay(2000);
}

une photo du montage :

le problème : que les sondes soient dans l'eau ou pas, les sorties restent à 1. Au multimètre j'ai 4.7v dans l'eau ou pas.

Je n'arrive pas à trouver l'erreur.

Merci par avance pour votre aide.

Cette sonde est un interrupteur à flotteur, la partie filetée doit être solidement fixée au réservoir, je ne pense pas que le simple fait de plonger l'ensemble dans l'eau fonctionnera correctement. Suivez les instructions de montage du vendeur.

la sonde marche sans doute par diffraction sur la petite pointe diamant.

vous faites deux fois l'impression de NB

outre le montage correctement effectué par intégration sur la surface de la cuve (et sans mettre les fils dans l'eau !) - avez vous essayé sans le PULLUP ?

const int pinNiveauHaut = 7;  // entrée Niveau Haut
const int pinNiveauBas = 8;   // entrée Niveau Bas

void setup() {
  Serial.begin(115200);
  pinMode(pinNiveauHaut, INPUT);
  pinMode(pinNiveauBas, INPUT);
}

void loop() {

  int etatNiveauBas = digitalRead(pinNiveauBas);
  Serial.print("etatNiveauBas=");    Serial.println(etatNiveauBas);
  
  int etatNiveauHaut = digitalRead(pinNiveauHaut);
  Serial.print("etatNiveauHaut=");    Serial.println(etatNiveauHaut);

  if (etatNiveauBas == HIGH && etatNiveauHaut == HIGH) {
    Serial.println("VERT");
  } else if (etatNiveauBas != etatNiveauHaut) {
    Serial.println("ORANGE");
  } else {
    Serial.println("ROUGE");
  }

  delay(2000);
}

@J-M-L
En effet ça fonctionne par diffraction.
J’avais essayé sans le pull Up mais pas de changement.
Merci pour le double NB ça vient d’un copier coller
J’ai juste un doute sur la tension d’alimentation car je n.ai rien trouvé à ce sujet. Là je suis en 5V.
Je n.arrive pas à trouver la datasheet du capteur pour tenter oser une autre alimentation.

@ gonpezzi
Je cherche encore le flotteur

Merci pour votre aide

Par curiosité, où avez-vous lu cela ?
Cet autre vendeur indique qu'il s'agit d'un type de flotteur :

Capteur de niveau d'eau de type flotteur, liquide de subdivision, facile à installer - AliExpress

Je vois aussi un boîtier d'un diamètre de 21,2mm :

alojamiento

Pour un "Switch body" (pour moi le flotteur), de 20,8 mm. Cette différence m'indique une certaine liberté de mouvement pour le "Switch body"

jamiento

Avez-vous vérifié s'il existe une telle liberté de mouvement entre le "Switch body" et le corps de la sonde ? et s'il existe, Est-ce que cela provoque un changement dans la sortie de la sonde ?

Mais il est possible que j'aie mal compris et que je me sois trompé.

PS :
Dans le test que vous faites avec le verre, plongez un peu plus le capteur dans l'eau.

Bonsoir EGT59

Pour moi, ces sondes sont à mettre le long de la citerne, sur la hauteur (au travers), et indiquera par un 1 ou un 0, si le niveau du liquide la dépasse ou pas. Si l'on veut 4 niveaux, il faut en mettre 4.

Cordialement
jpbbricole

@ gonpezzi
Oui. vous faites fausse route. pas de flotteur. C.est l.eau, qui se trouve devant le capteur ou pas, qui reflète la lumière d.une led ou pas, et qui indique le niveau. Ali n.est pas très fort en traduction, les termes utilisés ne sont pas forcément adéquats.
@ jpbbricole
Oui chaque capteur indique un niveau qu.il signale par 1 ou 0. On peut les installer en dessous, sur le côté ou au dessus. C’est la présence d.eau qui déclenche le capteur. Je pourrais tenir le capteur entre les doigts et poser une goutte d.eau dessus pour provoquer le passage de l.etat 0 a 1.

Comme je n.ai pas réussi à trouver la doc tech sur le capteur, je reste dans le flou au niveau de l.alim et des composants internes

Bonjour à tous,

J'ai réalisé un capteur de niveau d'eau en deux temps trois mouvements à l'aide d'une sonde à micro-ondes. Ça fonctionne selon le principe du changement de densité.
Avec un Pico W, je transmets en Wifi à mon cellulaire.
Voici la pièce que j'ai achetée: Cartoon ultrasonique HC-SR04 module capteur support fixe pour voiture HC-SR04

Si ça peut t'aider!

Écris-moi si tu veux tu code.

Ce n’est pas juste la réflexion sur la surface du liquide ? (Qui effectivement est de densité différente)

Le SR04 n’est pas étanche c’est généralement un problème

PS:

40KHz ça ne nous met pas encore dans les micro-ondes (plutôt au niveau du GHz) et les sons et donc les ultrasons ne sont et ne sont pas des ondes électromagnétiques. Un son est une onde de pression. Elle ne se propage que dans un milieu matériel, alors qu’une onde électromagnétique peut se propager dans le vide et n'est pas une onde de pression (Bernouilli et Navier Stokes versus Maxwell))

Bonjour,
J'ai trouvé un capteur similaire :

https://wiki.dfrobot.com/Liquid_Level_Sensor-FS-IR02_SKU__SEN0205

les miens ont 3 fils noir blanc rouge. j'alimente le tout en 5V comme indiqué.

Le seul truc qui pourrait gêner, d'après la doc, serait la quantité de lumière ambiante qui pourrait influer sur l'etat de sortie.

je ferais des essais tout à l'heure en mettant le montage dans le noir

la doc montre bien qu'il ne faut pas être en INPUT_PULLUP - juste INPUT et vous avez HIGH si de l'eau touche suffisamment le "diamant en plastique" et LOW sinon.

le principe est optique, le rayon "lumineux" (infrarouge) qui rebondit à l'intérieur du module sur la pointe de diamant va rebondir différemment si de l'eau entoure la pointe et cette variation du rebond va être mesurée par le capteur.

il semble selon cette vidéo que l'on n'ait pas besoin de bien visser le système à la paroi, le fait de tremper juste la pointe suffit

Oui, vous aviez raison, il s'agit d'un capteur IR et voici sa datasheet.

Bonjour EGT59

Dans le même genre de capteur, mais sans mécanique à faire, ça mesure à travers la paroi du bassin (non métallique), c'est la série XKC Y25:
image

Cordialement
jpbbricole

Merci pour la datasheet. je vais devoir modifier mon circuit imprimé car ils préconisent deux condensateurs sur le schéma.
Pour l'instant je commence à obtenir des indications de présence ou pas d'eau sur les capteurs mais les résultats ne sont pas stables du tout.
je ferais des tests demain avec les condensateurs.

Oui je les avais vu mais j4aurais du les coller alors que les autres sont plus faciles à fixer tout en restant réglables en hauteur. Je les ai quand même gardés dans mon panier au cas où.

merci encore pour votre aide

Faut faire quand même un trou dans la cuve…

Surtout pas de trou dans la cuve. J’ai fabriqué un petit support en inox qui s’accroche sur le bord de la cuve.

Bonsoir EGT59

Ah oui! ça rigole pas, beau boulot :+1:

Cordialement
jpbbricole

:wink:
Je suis moins bon en code ….

Chacun sa spécialité

Je parlais du capteur mentionné au premier post avec la « pointe diamant »

Impressionnant votre support - c’est du travail de pro. Comment faites vous cela ? (Ce n’est pas que du pliage et découpe - les vis ont un petit tube on dirait ??)
Bravo !

Je me contente des petits supports acryliques qu’on trouve dans le commerce… je suis petit joueur :slight_smile:


image

Si, si , de la découpe, du percage-taraudage, pliage, soudure et passivation.

je ne savais pas que ça existait tout fait :joy:

Pour les condensateurs préconisés’ leurs valeurs est à respecter à la lettre ou je peux mettre des valeurs approchantes en fonction des condensateurs que je possède ? (En s.éloignant pas trop quand même bien sûr)