Table des matières:

Contrôleur de niveau de liquide UltraSonic : 6 étapes (avec photos)
Contrôleur de niveau de liquide UltraSonic : 6 étapes (avec photos)

Vidéo: Contrôleur de niveau de liquide UltraSonic : 6 étapes (avec photos)

Vidéo: Contrôleur de niveau de liquide UltraSonic : 6 étapes (avec photos)
Vidéo: Le principe de la mesure de niveau capacitive 2024, Juillet
Anonim
Contrôleur de niveau de liquide ultrasonique
Contrôleur de niveau de liquide ultrasonique

IntroductionComme vous le savez probablement, l'Iran a un temps sec et il y a un manque d'eau dans mon pays. Parfois, surtout en été, on constate que le gouvernement coupe l'eau. Ainsi, la plupart des appartements disposent d'un réservoir d'eau. Il y a un réservoir de 1500 litres dans notre appartement qui fournit de l'eau. En outre, il y a 12 unités résidentielles dans notre appartement. En conséquence, on peut s'attendre à ce que le réservoir se vide très bientôt. Il y a une pompe à eau attachée au réservoir qui envoie de l'eau dans le bâtiment. Chaque fois que le réservoir est vide, la pompe fonctionne sans eau. Cette situation provoque une augmentation de la température du moteur, et pendant le temps, elle peut provoquer une panne de la pompe. Il y a quelque temps, cette panne de pompe s'est produite pour nous pour la deuxième fois, et après avoir ouvert le moteur, nous avons vu que les fils de la bobine étaient brûlés. Après avoir remplacé la pompe, pour éviter à nouveau ce problème, j'ai décidé de fabriquer un contrôleur de niveau d'eau. J'ai prévu de faire un circuit pour couper l'alimentation électrique de la pompe chaque fois que l'eau descendait en dessous de la limite basse dans le réservoir. La pompe ne fonctionnera pas tant que l'eau n'aura pas atteint une limite élevée. Après avoir dépassé la limite supérieure, le circuit reconnectera l'alimentation. Au début, j'ai cherché sur Internet pour voir si je pouvais trouver un circuit approprié. Cependant, je n'ai rien trouvé d'approprié. Il y avait des indicateurs d'eau basés sur Arduino, mais ils ne pouvaient pas résoudre mon problème. En conséquence, j'ai décidé de concevoir mon contrôleur de niveau d'eau. Un package tout-en-un avec une interface utilisateur graphique simple pour définir les paramètres. De plus, j'ai essayé de prendre en compte les normes EMC pour être sûr que l'appareil fonctionne correctement dans différentes situations.

Étape 1: Principe

Principe
Principe

Vous connaissez probablement le principe avant. Lorsque le signal d'impulsion ultrasonore est émis vers un objet, il est réfléchi par l'objet et l'écho revient à l'expéditeur. Si vous calculez le temps parcouru par l'impulsion ultrasonore, vous pouvez trouver la distance de l'objet. Dans notre cas, l'élément est l'eau.

Notez que lorsque vous trouvez la distance à l'eau, vous calculez le volume d'espace vide dans le réservoir. Pour obtenir le volume d'eau, vous devez soustraire le volume calculé du volume total du réservoir.

Étape 2: Capteur, alimentation et contrôleur

Capteur, alimentation et contrôleur
Capteur, alimentation et contrôleur
Capteur, alimentation et contrôleur
Capteur, alimentation et contrôleur
Capteur, alimentation et contrôleur
Capteur, alimentation et contrôleur
Capteur, alimentation et contrôleur
Capteur, alimentation et contrôleur

Matériel

Pour le capteur, j'ai utilisé le capteur à ultrasons étanche JSN-SR04T. La routine de travail est comme HC-SR04 (écho et broche de déclenchement).

Spécifications:

  • Distance: 25cm à 450cm
  • Tension de fonctionnement: DC 3.0-5.5V
  • Courant de travail: <8mA
  • Précision: ± 1 cm
  • Fréquence: 40khz
  • Température de fonctionnement: -20 ~ 70

Notez que ce contrôleur a quelques limitations. par exemple: 1- JSN-SR04T ne peut pas mesurer une distance inférieure à 25 CM, vous devez donc installer le capteur à au moins 25 CM au-dessus de la surface de l'eau. De plus, la mesure de distance maximale est de 4,5M. Ce capteur n'est donc pas adapté aux énormes réservoirs. 2- la précision est de 1 CM pour ce capteur. En conséquence, en fonction du diamètre du réservoir, la résolution du volume que l'appareil affichera peut varier. 3- la vitesse du son peut varier en fonction de la température. Par conséquent, la précision peut être affectée par différentes régions. Cependant, ces limitations n'étaient pas cruciales pour moi, et la précision était convenable.

Le controlle

J'ai utilisé STM32F030K6T6 ARM Cortex M0 de STMicroelectronics. Vous pouvez trouver les spécifications de ce microcontrôleur ici.

L'alimentation

La première partie consiste à convertir 220V/50Hz (Iran Electricity) en 12VDC. À cette fin, j'ai utilisé le module d'alimentation abaisseur abaisseur HLK-PM12. Ce convertisseur AC/DC peut convertir 90 ~ 264 VAC en 12VDC avec un courant de sortie de 0,25A.

Comme vous le savez probablement, la charge inductive sur le relais peut causer plusieurs problèmes sur le circuit et l'alimentation, et des difficultés d'alimentation peuvent entraîner des inconstances, en particulier dans le microcontrôleur. La solution est d'isoler les alimentations. De plus, vous devez utiliser un circuit d'amortissement sur les contacts de relais. Il existe plusieurs méthodes pour isoler les alimentations. Par exemple, vous pouvez utiliser un transformateur avec deux sorties. De plus, il existe des convertisseurs DC/DC isolés dans une taille minuscule qui peuvent isoler la sortie de l'entrée. J'ai utilisé MINMAX MA03-12S09 à cet effet. Il s'agit d'un convertisseur DC/DC 3W avec isolation.

Étape 3: Le superviseur IC

Le superviseur IC
Le superviseur IC

Selon la note de l'application TI: un superviseur de tension (également appelé circuit intégré de réinitialisation [IC]) est un type de moniteur de tension qui surveille l'alimentation d'un système. Les superviseurs de tension sont souvent utilisés avec des processeurs, des régulateurs de tension et des séquenceurs - en général, lorsqu'une détection de tension ou de courant est requise. Les superviseurs surveillent les rails de tension pour assurer la mise sous tension, détecter les défauts et communiquer avec les processeurs intégrés pour garantir la santé du système. vous pouvez trouver cette note d'application ici. Bien que les microcontrôleurs STM32 aient des superviseurs intégrés tels qu'un moniteur d'alimentation sous tension, j'ai utilisé une puce de supervision externe pour m'assurer que tout fonctionnera correctement. Dans mon cas, j'ai utilisé le TL7705 de TI. Vous pouvez voir la description sur le site Web de Texas Instruments pour ce CI ci-dessous: La famille TL77xxA de superviseurs de tension d'alimentation de circuit intégré est conçue spécifiquement pour être utilisée comme contrôleurs de réinitialisation dans les systèmes de micro-ordinateurs et de microprocesseurs. Le superviseur de la tension d'alimentation surveille l'alimentation pour les conditions de sous-tension à l'entrée SENSE. Lors de la mise sous tension, la sortie RESET devient active (faible) lorsque VCC atteint une valeur approchant 3,6 V. À ce stade (en supposant que SENSE est au-dessus de VIT+), la fonction de temporisation active une temporisation, après quoi les sorties RESET et RESET(NOT) deviennent inactifs (haut et bas, respectivement). Lorsqu'une condition de sous-tension se produit pendant le fonctionnement normal, RESET et RESET (NOT) deviennent actifs.

Étape 4: La carte de circuit imprimé (PCB)

La carte de circuit imprimé (PCB)
La carte de circuit imprimé (PCB)
La carte de circuit imprimé (PCB)
La carte de circuit imprimé (PCB)
La carte de circuit imprimé (PCB)
La carte de circuit imprimé (PCB)
La carte de circuit imprimé (PCB)
La carte de circuit imprimé (PCB)

J'ai conçu le PCB en deux parties. Le premier est le PCB LCD qui est connecté à la carte mère avec un câble plat/ruban. La deuxième partie est le PCB du contrôleur. Sur ce PCB, j'ai placé l'alimentation, le microcontrôleur, le capteur à ultrasons et les composants associés. Et aussi la partie puissance qui est le relais, la varistance et le circuit d'amortissement. Comme vous le savez probablement, les relais mécaniques tels qu'un relais que j'ai utilisé dans mon circuit peuvent se briser s'ils fonctionnent toujours. Pour surmonter ce problème, j'ai utilisé un contact normalement fermé (NC) du relais. Ainsi, dans une situation normale, le relais n'est pas actif et un contact normalement fermé peut conduire l'alimentation vers la pompe. Chaque fois que l'eau descend en dessous de la limite basse, le relais s'allume, ce qui coupe l'alimentation. Cela dit, c'est la raison pour laquelle j'ai utilisé le circuit d'amortissement sur les contacts NC et COM. Concernant le fait que la pompe avait une puissance élevée, j'ai utilisé le deuxième relais 220 pour cela, et je l'entraîne avec le relais sur PCB.

Vous pouvez télécharger des fichiers PCB tels que des fichiers Altium PCB et des fichiers Gerber à partir de mon GitHub ici.

Étape 5: Coder

Image
Image
Installation sur réservoir
Installation sur réservoir

J'ai utilisé l'IDE STM32Cube, qui est une solution tout-en-un pour le développement de code de STMicroelectronics. Il est basé sur Eclipse IDE avec le compilateur GCC ARM. En outre, il contient STM32CubeMX. Vous pouvez trouver plus d'informations ici. Au début, j'ai écrit un code qui comprenait nos spécifications de réservoir (hauteur et diamètre). Cependant, j'ai décidé de le changer en GUI pour définir les paramètres en fonction de différentes spécifications.

Étape 6: Installation sur le réservoir

Installation sur réservoir
Installation sur réservoir
Installation sur réservoir
Installation sur réservoir

Au final, j'ai fait un simple boitier pour qu'il protège le PCB de l'eau. Aussi, j'ai fait un trou sur le dessus du réservoir pour y mettre le capteur.

Conseillé: