Niveau d'un réservoir d'eau avec un microcontrôleur

24

Comment mesurer le niveau d'un réservoir d'eau avec un microcontrôleur?

mad_z
la source
1
Ce n'est pas digne d'une réponse, mais un de mes amis l'a fait pour un projet artistique il y a quelques années. Toute personne intéressée serait heureuse de vous présenter et je suis sûr qu'il serait heureux d'expliquer comment il l'a fait. Son projet est ici: unixarts.com/sealevel.html Cela combinait à la fois les pompes et les capteurs et nécessitait suffisamment de précision pour boucler de haut en bas sans trop de biais
cyphunk
7
Lorsque le microcontrôleur cesse de fonctionner, il est sous l'eau.
John U

Réponses:

23

Eh bien, en supposant que vous opérez ici sur terre (plutôt qu'en orbite), vous pouvez utiliser un capteur à flotteur que vous mesurez en utilisant le micro. La question est: avez-vous besoin de connaître le niveau exact, ou avez-vous simplement besoin d'une sorte de voyage quand il atteint le niveau haut / bas?

Sur le thème `` voyage à un niveau spécifique '', vous pouvez obtenir des commutateurs comme celui-ci - généralement, le flotteur contient une sorte de commutateur de détection d'attitude. Lorsque le niveau d'eau est plus bas, le flotteur se retrouve sur le côté et l'interrupteur est sur «off», tandis que l'élévation du niveau force le flotteur à la verticale, et donc «on». Ils sont souvent utilisés pour les pompes de puisard. Ils sont assez fiables et très faciles à manipuler, mais vous devez faire attention à les ancrer correctement, et vous devez être sûr que rien ne gêne le flotteur.

Si vous avez besoin de connaître le niveau réel, vous avez beaucoup de choix, mais c'est moins simple. Vous pouvez aller avec quelque chose comme un capteur à ultrasons (faisceau d'ultrasons tirant du haut du réservoir pour réfléchir le niveau de l'eau).

Ces gars-là semblent faire des indicateurs de niveau pour les gros réservoirs qui se composent d'un flotteur et d'un poids externe câblés ensemble. Lorsque le flotteur monte et descend sur le fluide, l'indicateur externe se déplace de manière appropriée. Vous pourriez construire quelque chose de similaire, sans rien de plus compliqué que des cellules photoélectriques pour lire le niveau (si c'est un grand réservoir, ou si vous voulez beaucoup de granularité, vous auriez besoin de beaucoup de cellules photoélectriques).

Alternativement, en prenant l'idée du flotteur câblé, vous pouvez mettre une roue folle qui se déplace chaque fois que le câble se déplace, puis y attacher un encodeur. Cela vous permettrait de suivre le niveau avec une précision assez élevée.

Michael Kohne
la source
15

Je sais que le livre à paraître prochainement Practical Arduino comprend un projet de capteur de profondeur de réservoir d'eau , qui utilise un transducteur de pression différentielle pour mesurer la pression de l'eau au fond du réservoir, et à partir de cela pour calculer le niveau de remplissage du réservoir.

Les schémas sont sur le lien ci-dessus, avec un lien vers le code source sur github.

(Divulgation complète: je n'ai aucun lien avec le livre, mais j'ai rencontré l'un des auteurs à quelques reprises dans nos hackerspaces locaux.)

Evan
la source
11

Une méthode que j'aime, mais que je n'ai pas essayée, c'est de mettre deux plaques isolantes dans le liquide. Aucune condution, électrolose, contanimation ....... Ils forment les plaques d'un bonnet. et sont utilisés dans une sorte d'oscillateur (à vous de choisir) Parce que l'eau est une bonne dialectique, la fréquence dépend fortement de la quantité d'eau entre les plaques. Mesurez la fréquence pour obtenir la profondeur.

Vous pourriez être en mesure d'obtenir un résultat similaire en appliquant un signal alternatif et en mesurant le courant à travers le capuchon.

russ_hensel
la source
Attention, cela dépend beaucoup de la constante dialectrique du fluide. Sauf erreur, la détection capacitive est davantage utilisée pour la détection de présence / absence que de niveau. Il semble cependant que toutes les méthodes que j'ai rencontrées dépendent de la gravité spécifique. Les réservoirs contenant des fluides de composition variable sont difficiles à réguler.
wackyvorlon
Les capteurs de niveau de liquide basés sur la capacité fonctionnent mieux pour détecter la présence ou l'absence de fluide. Afin de lire le niveau d'eau, chargez / déchargez les plaques à l'aide d'une résistance fixe et mesurez le temps. Comme mentionné ci-dessus, l'ajout de contaminants à l'eau (comme le sel) peut provoquer un changement drastique de capacité et donc votre lecture pour un niveau de liquide fixe. Si le liquide que vous mesurez est homogène, c'est beaucoup moins un problème.
mjh2007
J'ai fabriqué un oscillateur dynatron avec une simple bobine SMD standard qui résonnait avec des plaques isolées comme le postulait russ.
Autistique du
10

Plus de détails aideraient, mais je pense que la méthode par ultrasons est probablement la plus simple, conceptuellement, de toute façon (d'où le besoin de plus de détails: -]). J'ai jeté ensemble un capteur de niveau pour le réservoir de mazout dans mon sous-sol à l'aide d'un transducteur à ultrasons MaxSonar. Je passe à un capteur Parallax Ping, dès que je peux en mettre un sur mes mains. L'unité MaxSonar s'est avérée quelque peu pénible; se révèle qu'il n'a qu'une résolution d'un pouce (2,54 cm), ce qui équivaut à près de 7 gallons dans mon réservoir. J'ai mis l'unité MaxSonar dans un capuchon en PVC en haut du réservoir pointant vers le bas (hors de portée du liquide).

blalor
la source
7

Une façon de le faire est de placer une led en bas du réservoir pointant vers le haut et une photodiode en haut du réservoir, face à la LED. La LED sera atténuée par l'eau dans le réservoir, vous devrez expérimenter pour déterminer combien. En outre, il est préférable de prendre une série de mesures rapides et de les calculer en moyenne lorsque vous utilisez cette méthode.

Un gars
la source
1
semble très sujet aux erreurs, à la lumière ambiante, au ballottement, etc.
Jason S
7

J'utilise un capteur de goujon bon marché de la quincaillerie locale avec un transistor photo pour détecter l'indicateur LED. Avec cela collé sur le côté du réservoir, il détecte quand le niveau monte au-dessus du capteur et nous avertit d'une condition d'eau élevée.

John D
la source
6

Il existe un nombre surprenant de façons de vérifier le niveau. Il existe des capteurs qui utilisent la RF, envoyant une impulsion dans un guide d'onde et détectant la réflexion sur la surface du liquide dans le réservoir. Il y a des ultrasons, des flotteurs, des tubes à bulles, des prises de pression ... La méthode utilisée dépend de la taille du réservoir, du contenu, de l'environnement ambiant et d'autres facteurs.

wackyvorlon
la source
4

Je suis surpris de toutes les solutions électroniques compliquées ici, j'utiliserais un simple potentiomètre. La plupart des micro-contrôleurs ont un i / p analogique de base.

 +V
-----
  |
  |
  /
  \
  /<----------> to analog i/p
  \
  |
  |
-----
 GND

Utilisez un flotteur de valve de réservoir d'eau standard (il peut déjà y en avoir un). Le problème restant est de coupler le flotteur au pot pour obtenir un swing maximum (vous pouvez également utiliser un pot coulissant).

                  |-|
                  | |
                  |o| <--------Slider pot.
                  |||
                  |||
                   |
                   |  <--------Coupling.
                   |
   ____            |
  (float)----------o-----o  <--Anchor point of float.
   ----
ttt
la source
Comment vous assurez-vous que le pot revient à sa position d'origine?
Le poids du flotteur le tirera vers le bas lorsque le niveau d'eau baissera ...
ttt
Pas si sûr de ça. Trouver le poids correct du flotteur tel qu'il flotte en présence d'eau et laisse tomber le pot en l'absence d'eau n'est pas si facile. La plupart des pots ont un frottement statique assez élevé. Je suppose que c'est possible, cependant, étant donné la bonne configuration mécanique.
La plupart des pots de slider plus longs ont un très faible frottement (utilisé dans les mixers contrôlés du bout des doigts et les platines DJ). J'ai utilisé un curseur de 4 "de ma boîte à bits et l'ai testé avec un flotteur de réservoir d'eau normal. Il a même fonctionné sur un plus petit flotteur de réservoir de toilette! Au fait, j'utiliserais une résistance fixe en série avec le pot de sorte que même si elle dans un environnement humide, il ne dépassera pas la sortie d'un port de contrôleur (ou ne tirera pas trop de courant d'un Vref fixe). J'ai utilisé une résistance 10k avec un pot 10k dans ma configuration de test.
ttt
Lors des tests, je viens d'utiliser un morceau de fil plié pour s'accrocher au bras du flotteur. Dans le réservoir des toilettes, le bras est en plastique de section carrée, il serait donc très facile de percer un petit trou pour faire la fixation.
ttt
4

Approche la plus simple

Placez un petit tube dans un coin du réservoir qui est légèrement plus grand en diamètre qu'une balle de ping-pong.

Placez une LED infrarouge sur un côté du tube et une photorésistance à l'opposé de la LED (en perçant un trou dans le tube de c'est opaque ou en le plaçant à l'extérieur si c'est transparent). Collez à chaud les pièces électriques pour les imperméabiliser et déposez la balle de ping-pong dans le tube.

Lorsque le niveau d'eau monte ou descend au point que la balle de ping-pong brise le faisceau infrarouge, vous saurez qu'elle atteint le niveau souhaité. Cela fonctionne si vous avez juste besoin d'un indicateur de niveau discret (marche / arrêt).

Ce système est également utilisé dans les pistolets de paintball conçus pour vous empêcher de couper des balles en garantissant que la balle entière est dans la chambre de tir avant de permettre à la gâchette électronique d'armer le solénoïde de tir.

C'est simple, efficace et nécessite peu ou pas d'étalonnage.

Plie d'Evan
la source
1

Une approche plus intelligente: Profitez de la plus grande conductivité thermique de l'eau (fluide). L'idée est d'avoir un capteur de température et de mesurer la différence de son auto-échauffement lorsqu'il est immergé et lorsqu'il est à l'air libre.

mazurnification
la source
Cela a effectivement été fait dans CHCH Nouvelle-Zélande où je suis, mais je ne l'ai pas fait, je pense qu'il a environ 20 ans. Il y avait une rangée de nombreuses thermistances à l'extérieur du réservoir.
Autistique du
1

Une autre solution (sans jeu de mots);

Utilisez un potentiomètre comme suggéré ci-dessus. La plage de rotation normale est de 270 degrés. Fixez un flotteur au potentiomètre à l'aide d'un bras de flèche. (longueur = 1 unité)

Entre plein et vide, le bras de la flèche se déplacera de 90 degrés.

L'ADC sur un PIC est de 256 ou 1024 étapes (oui, zéro est une étape).

Je vais utiliser 256 étapes pour plus de clarté.

270 degrés = 256 étapes ADC. 270/90 = 3 (un tiers de la plage du potentiomètre)
255/3 = 85 étapes ADC

Programmer un code pour marquer le point 0 degré (réservoir vide) lorsqu'un bouton est enfoncé.

Cela stocke un point de décalage dans l'eeprom PIC. Maintenant, le potentiomètre n'a pas besoin d'être exactement à zéro car ce point d'étalonnage peut être réglé.

À l'aide de la trigométrie, calculez une table de recherche (indice: script php) pour correspondre à chaque étape de l'ADC.

Astuce: chaque étape ADC correspond à 90/85 = 1,0588 degrés.

Oui, vous auriez dû faire plus attention en cours de mathématiques. stupide perte de temps à l'époque, indescriptible maintenant. engager le cerveau. apprendre la trigonométrie. enseigner aux autres.

Acronyme: le vieil arabe portait un lourd sac de foin.

L'hyponténuse est la longueur du bras de la flèche. Faites-en 1 unité de long. Le tableau de recherche fournit ensuite le pourcentage de la profondeur du réservoir. (multiplier par 100 bien sûr)

Rikkitikki
la source