Perturbation lors de la lecture d'un ouput analogique

J'utilise un ardiuno pour piloter un lave vaisselle.

J'ai des capteurs du lave vaisselle en basse tension et un circuit de commande de puissance pour les moteurs de la machine. J'ai aussi des transformateurs 12V et 24V pour alimenter des valves.

Par exemple, un capteur pour détecter le niveau dans la machine.

Le problème:

Quand je ne branche pas le circuit de puissance (sur le 240V), le capteur me donne une valeur stable. ( je l'affiche dans le Moniteur Serie)
Dès que je branche le circuit de puissance, le capteur me donne des valeurs qui changent en permanence. Même une moyenne me parait difficile à exploiter.

Dans le log ci-dessus, c'est le valeur Hum,

17:33:30.745 -> #T=902 TReel=7/ Hum=554/ lum=589/ but=1/ mem=2299
17:33:30.811 -> #T=902 TReel=7/ Hum=345/ lum=586/ but=1/ mem=2299
17:33:30.844 -> #T=902 TReel=7/ Hum=996/ lum=594/ but=1/ mem=2299
17:33:30.911 -> #T=902 TReel=7/ Hum=542/ lum=588/ but=1/ mem=2299
17:33:30.978 -> #T=903 TReel=7/ Hum=277/ lum=586/ but=1/ mem=2299
17:33:31.011 -> #T=903 TReel=7/ Hum=1023/ lum=594/ but=1/ mem=2299
17:33:31.077 -> #T=902 TReel=7/ Hum=547/ lum=589/ but=1/ mem=2299
17:33:31.111 -> #T=902 TReel=7/ Hum=292/ lum=586/ but=1/ mem=2299
17:33:31.177 -> #T=903 TReel=7/ Hum=1023/ lum=594/ but=1/ mem=2299
17:33:31.243 -> #T=901 TReel=8/ Hum=560/ lum=588/ but=1/ mem=2299
17:33:31.277 -> #T=902 TReel=7/ Hum=301/ lum=586/ but=1/ mem=2299
17:33:31.343 -> #T=903 TReel=7/ Hum=1018/ lum=593/ but=1/ mem=2299

J'ai fait des tests avec la lib GitHub - fitzterra/PrecisionADC: Library for precision ADC readings on Arduino based platforms mais sans succès. J'ai l'impression que c'est du à des variations moins importantes.

Quand je teste la tension au borne du capteur, elle reste stable. (rien à voir avec les variations constatée). Si je debranche les 2 transfo, je retrouve le comportement attendu.

: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.

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

Bienvenue,

A mon humble avis ce n'est pas une question de précision, mais de perturbation de l'alimentation de la carte microcontrôleur.
Le mélange de 230V de puissance avec des circuits intégrés proches est toujours délicat.

Déjà, c'est quelle carte ?
La société Arduino SA développe des dizaines de cartes utilisant un grand nombre de microcontrôleurs de différents fabricants.

Il faut donner tous les renseignements sur la totalité du matériel et le code intégral mis entre balises code ( </> ).
Avant de copier le code ne pas oublier de faire "Ctr T" pour l'indenter.
Il sera plus facile à lire. Surtout pour ceux qui répondent sur tablette ou smartphone.
Il serait dommage de se priver de leur aide.

Un schéma est aussi nécessaire.
Un dessin papier, règle, stylo, scanné ou photographié est suffisant.
Inutile d'aller chercher du Fritzing.

Bonjour,

Merci pour la réponse rapide (et les conseils pour un nouveau dans les forums).

La carte : Arduino Uno
Le code : csapublicproject / lavebouteille · GitLab

Pour le code, il n'a rien de particulier mais je peux mettre les lignes en particulier qui configure et lit le pin A2 du capteur d'humidité

const int PIN_IN_HUMIDITE = A2;

void  setupSensor() {
  pinMode(PIN_IN_HUMIDITE, INPUT);
}

void loop() {
  int valeurHumidite = analogRead(PIN_IN_HUMIDITE);
  Serial.print(F("/ Hum="));
  Serial.print(valeurHumidite);
}

Bonjour

Pourrait-on en savoir un peu plus sur le capteur de niveau , considéré comme ayant une sortie analogique ? capteur de pression ?
image

Quand je ne branche pas le circuit de puissance (sur le 240V), le capteur me donne une valeur stable. ( je l'affiche dans le Moniteur Serie)

Quelles sont ces valeurs ? Sont elles réellement représentatives du niveau ?

La valeur du capteur varie bcp, de 277 à 1018. Qd je debranche le 240V, je ne constate pas ces variations.

Le capteur est de ce style là:
capteur

Ce type de capteur avec un ensemble d'électrodes reliées à la base d'un transistor (base sans autre connection) parait sensible à l'environnement électromagnétique , surtout quand il n'est pas immergé
image

source du schéma : https://circuitdigest.com/microcontroller-projects/interfacing-water-level-sensor-with-arduino

C'est un capteur.... comment dire......'ludique' qui serta avant tout à faire des petites expériences dans un verre d'eau

S'agit-ll réellement d'un capteur installé à l'origine dans le lave-vaisselle ? (si oui quelle est sa marque ?)

Les perturbations pouraient peut être diminuer en éloignant le capteur des élements reliés au secteur

Bonjour,
J’ai utilisé plusieurs de ces capteurs mais je les ai vite abandonné : peu fiable dans la mesure et les pistes s’oxydent très rapidement dans de l’eau PH7 -7.2.
Pour une mesure de niveau d’eau, j’utilise maintenant des capteurs à base de VL6180X qui me donnent entière satisfaction. Il faut juste penser à bien les protéger de l.humidité.
Pour mon compte, je les enferme dans des vieux boîtiers de montres étanches et ça fonctionne très bien au travers du verre de la montre.

Édit : je viens de lire que tout ça va dans un lave vaisselle, c’est bizarre mais bon. Tout ça pour dire que ma méthode ne fonctionnera pas. L.environnement corrosif et chaud d.un lave vaisselle aura raison de mes pauvres capteurs même bien protégés.

Non, il n'était pas présent sur la machine d'origine. Il y avait un pressostat mais il était défectueux.
J'ai trouvé cette solution qui marchait bien lors de mes premiers tests mais dès que l'ensemble est connecté, ca bugge.
Par contre avec un simple volt-metre directement sur le capteur, je ne constate pas les variations que détecte l'arduino. De plus le capteur est sur le côté de la machine et donc relative éloigné (50cm) des transformateurs.

Est ce que de l'enfermer dans une boite métalique peut réduire les perturbations ?

Je ne le met pas dans le lave vaisselle mais sur le côté. La solution a base de VL6180X est effectivement difficilement réalisation dans une lave-vaisselle.

J'ai l'impression que la solution du pressostat est la meilleure mais je n'ai jamais réussi à réutiliser des pressostats d'autres modèles. Ce sont des capteurs mécaniques et ils ne se déclenchaient jamais.

Sur le côté, à l'extérieur du lave vaisselle ?

Ce capteur fonctionne par immersion dans l'eau qui , si elle est conductrice, établit un contact entre les électrodes. Placé horizontalement en bas il pourrait tout au plus de servir à la détection de fuite, là où sont en souvent placés des petits détecteurs à flotteurs.

Quelle est la fonction de ce 'capteur de niveau d'eau' dans le cycle de lavage ?
arrêt du remplissage ?

En général les pressostats font leur job.

https://atelier.sos-accessoire.com/tester-pressostat-dun-lave-vaisselle/

Oui, sur le côté à l'extérieur. J'utilise l'ancien tuyau du pressostat pour capter le niveau d'eau.

C'est pour remplir la machine avec un niveau d'eau suffisant.

C'est original !

En éloignant le capteur de l'habilage métalique du lave-vaisselle (relié à la terre) , les perturbations baissent-elles d'intensité ?

Pourquoi ne pas insister avec le pressostat qui est 'étudié pour' , et le remplacer s'il est HS au lieu de compter sur un 'capteur jouet'?

J'ai insisté sur la solution pressostat avec d'autres modèles et ca n'a jamais marché. Cette solution (bon, ok, qui ne tiendra peut être pas dans le temps) marchait assez bien. Je n'avais pas anticipé les perturbations électromagnétiques des transformateurs.
Je n'ai pas essayé d'éloigner le capteur mais je peux faire un test. Je ne suis pas trop convaincu car il me semble déjà assez loin de tout le reste puisqu'il est sur le côté. Je vais essayer et je vous dirais.

Ça sent l’inondation tout ça.
Va vite acheter un pressostat et connecte le correctement

1 Like

Bonjour
Je me permets de mettre mon grain de sel. J'avais songé piloter un lave-linge avec un arduino à une époque. EGT59 a raison. Le système d'origine fonctionne très bien et est durable; les alternatives ne sont que complications. Ce que tu as acheté n'est pas assez fiable pour une telle machine à cause des variations de température, de la présence de produits etc. Le fonctionnement d'un pressostat est relativement simple et il serait dommage de saccager un tel projet pour un tel détail.

Le problème du pressostat est qu'il est à l'état zéro ou un et que je n'ai pas compris exactement comment il est utilisé dans la lave vaisselle. Qd le niveau monte, le pressostat ne se déclenche pas forcément. si il y a des bulles d'air ca l’empêche de se déclencher. Si vous avez des infos, je suis preneur.

Quand le niveau monte dans la cuve, la pression augmente dans le pressiostat et il déclenche. Si rien ne se passe c’est qu.il est défectueux.
Tu parles de bulles d.air. C’est normal qu il y a de l.air dans le tuyau, c.est la compression de cet air qui fait déclencher le pressiostat.
Si c’était l.eau qui actionnait directement le pressiostat tu devrais purger le pressiostat après chaque vidange/remplissage de la machine.

En soufflant dedans, on constate qu'il fonctionne. Il se déclenche même avec une pression pas trop importante. Mais ce n'était pas le même modèle qu'à l'origine, avec un tuyau d'une section plus importante.