compteur impulsions contact effet hall piface

Python est le langage de prédilection du Raspberry Pi

Modérateurs : Francois, Manfraid

MSG
Raspinaute
Messages : 119
Enregistré le : ven. 26 déc. 2014 18:31

Re: compteur impulsions contact effet hall piface

Message par MSG » dim. 21 août 2022 11:12

Bonjour ,

La réponse se trouve dans la documentation indiquée par le vendeur !
https://asset.conrad.com/media10/add/16 ... amme-5.pdf

Je ne lis pas l'Allemand , mais il semble qu'on ait affaire à une turbine dont la sonde envois 2 impulsion / unité .
Hall-Sensor (2 x Imp./U)
Il y a aussi l'indication de 2500 impulsions par litre.
ca. 2.500 Impulse/Liter / H2O 20°C
Si l'application à développer est la mesure du débit , il faudra passer par la détection des fronts et de mesurer le temps .
Si c'est juste faire un compteur de consommation , il serait préférable d'utiliser un compteur rapide binaire (avec des diviseurs suffisants) et de venir le lire à la volé .
Comme par exemple le PCF8593 qui peut servir d'horloge ou de compteur d'évènements .
https://www.mouser.com/datasheet/2/302/ ... 127704.pdf

Artemus24
Raspinaute
Messages : 1077
Enregistré le : ven. 15 sept. 2017 19:15

Re: compteur impulsions contact effet hall piface

Message par Artemus24 » dim. 21 août 2022 16:19

Salut MSG.

Merci pour les liens mais ils sont aussi en anglais. A vrai dire, je n'ai fait que survoler les documents sans comprendre ce que l'on mesure réellement.

Je peux me tromper, mais on mesure la vitesse de rotation du rotor.
La vitesse est proportionnelle au débit de l'eau qui s'écoule dans le tuyau.
La quantité d'eau déplacée sera un calcul proportionnelle à la vitesse et au temps mis jusqu'à la prochaine mesure.

La mesure de la vitesse est un nombre compris entre 0 et 4095.
La volumétrie d'eau déplacée au maximum est de 3 litres/minute ou 3000 cm3/minute ou encore 50 cm3/seconde.
La fréquence des mesures est de 3000 lectures par minute soit 50 par seconde.
La volumétrie maximale entre deux mesures est de 50 cm3/seconde * (1/50 seconde) = 1 cm3.

Si je lis disons 2500 comme vitesse, je peux estimer l'échantillon d'eau à :
--> (2500/4095) * 1 cm3
--> 0,6105 cm3.

L'introduction de l'erreur dans le calcul sera considéré comme minime.
Le point sensible du calcul est l'estimation de la volumétrie d'eau déplacée entre deux mesures.
La consommation total est le cumul de tous ces calculs. Plus la fréquence est élevée, plus le calcul sera précis.

Cordialement.
Artemus24.
@+
RPI4B/8GB + Argon FanHAt
Rpi3A+, Rpi3B+
RPi 2B + Joy-It I2C Serial 20x4 2004 LCD Module
RPi 2B + PIM273 Unicorn HAT HD 16x16 Leds RGB
RPi0v1.3, RPi0W + LibreElec/Kodi, Rpi0WH + Tuner TV HAT
NodeMCU ESP32

MSG
Raspinaute
Messages : 119
Enregistré le : ven. 26 déc. 2014 18:31

Re: compteur impulsions contact effet hall piface

Message par MSG » dim. 21 août 2022 17:06

Mais pourquoi tu restes bloqué avec tes 12 bits (0 à 4095) ? Le RPi n'est-il pas un processeur à 64 bits ? ou alors il a une fonction que je ne connais pas .

En principe , c'est les CAN (convertisseur de tension) qui sont bridés eux à 8, 10 ou 12 bits (voir plus peut-être) , pas les compteurs , enfin ça dépend du nombre d'étages binaire , ça peut aller de 4 , 8 ,16 voir plus pour les horloges temps réel . Il est possible de les réaliser , si l'on veut , avec une succession de bascules D , il n'y a plus qu'à venir lire la valeur binaire en parallèle sur les bits qui changent le moins .
Ou alors utiliser des registres à décalage à chargement parallèle et sortie série , comme ça on peut lire tous les bits sans altérer le travail du compteur .
Ça déchargera le processeur d'une tache ingrate qu'un compteur externe effectuera sans faille .

Image

La notice dit 2500 impulsion par litre , soit 1 / 2500 = 0,0004 litres , soit 0,4ml par tour (ou 0,4 cm3) .
On a aussi l'indication de 3 l/min , 3 / 0,0004 = 7500 impulsion/min , soit 7500/60 = 125 impulsions/sec , d'où une impulsion toutes les 1/125 = 0,008sec (8ms) .
Débit mini est de 0,05 l/min , 0,05 / 0,0004 = 125 impulsions/min , soit 125/60 = 2,08333 impulsions/sec , d'où une impulsion toute les 1/2.0833 = 0,480sec (480ms) .
Si on mesure le temps entre deux impulsions , on peut faire le calcul inverse et trouver le débit .
Modifié en dernier par MSG le dim. 21 août 2022 17:57, modifié 1 fois.

Artemus24
Raspinaute
Messages : 1077
Enregistré le : ven. 15 sept. 2017 19:15

Re: compteur impulsions contact effet hall piface

Message par Artemus24 » dim. 21 août 2022 17:44

Salut MSG.
MSG a écrit :Mais pourquoi tu restes bloqué avec tes 12 bits (0 à 4095) ?
C'est ce que tu lis au travers du débitmètre qui est relié à ta Raspberry.
Dans le titre de ce sujet, il est question d'un PiFace, que je ne connais pas. Il doit faire le lien avec le débitmètre.
MSG a écrit :Le RPi n'est-il pas un processeur à 64 bits ? ou alors il a une fonction que je ne connais pas .
Je ne te parle pas des caractéristiques de la Raspberry mais de la lecture de la mesure qui a été faite.
C'est une hypothèse de ma part car je n'ai pas ce genre de périphérique entre les mains et je ne sais pas comment cela fonctionne.
D'où mes questions !
MSG a écrit :En principe , c'est les CAN (convertisseur de tension) qui sont bridés eux à 8, 10 ou 12 bits (voir plus peut-être)
C'est un convertisseur de la vitesse de rotation du débitmètre, en tension analogique, et traduite en numérique afin que la Raspberry puisse l'exploiter directement.
MSG a écrit :pas les compteurs , enfin ça dépend du nombre d'étages binaire , ça peut aller de 4 , 8 ,16 voir plus pour les horloges temps réel
Je ne parle pas de compteurs, mais de la mesure faite du débitmètre.
Je ne vois pas le rapport avec une horloge, comme celle que tu as indiqué en lien : PCF8593.

Pour effectuer la mesure, tu as besoin d'un timer (issue de la raspberry) qui va cadencer chaque mesure à la fréquence que tu vas lui indiquer.
C'est d'ailleurs la question posée par christophe27 car en faisant une boucle, il monopolise le CPU de sa raspberry.

Ton image n'et pas lisible.

Cordialement.
Artemus24.
@+
RPI4B/8GB + Argon FanHAt
Rpi3A+, Rpi3B+
RPi 2B + Joy-It I2C Serial 20x4 2004 LCD Module
RPi 2B + PIM273 Unicorn HAT HD 16x16 Leds RGB
RPi0v1.3, RPi0W + LibreElec/Kodi, Rpi0WH + Tuner TV HAT
NodeMCU ESP32

MSG
Raspinaute
Messages : 119
Enregistré le : ven. 26 déc. 2014 18:31

Re: compteur impulsions contact effet hall piface

Message par MSG » dim. 21 août 2022 18:09

J'ai complété par des calculs mon idée et tu as répondu entre temps .

Fréquence (rotations) = 1 / Temps et Temps = 1 / Fréquence (rotation) ;)

Si la pi-face est ce modèle , il n'a que des entrées digitales soit du tout ou rien .
http://www.piface.org.uk/products/piface_digital/

Et sur le modèle suivant , pareil que des entrées tout ou rien .
http://www.piface.org.uk/products/piface_digital_2/

MSG
Raspinaute
Messages : 119
Enregistré le : ven. 26 déc. 2014 18:31

Re: compteur impulsions contact effet hall piface

Message par MSG » dim. 21 août 2022 18:43

Concernant le PCF8593 , il est indiqué dans ses fonctions :
Page 1 :
Automatic word address incrementing
Page 3 :
OSCI , Pin= 1 , Type= input , Description= oscillator input, 50 Hz or event-pulse input
Donc on peut le programmer pour faire autre chose que donner l'heure , compter des évènements (impulsions) .

Page 5 : le bit 4 et 5 à l'adresse 00H servent à programmer l'horloge :
function mode:
00 clock mode 32.768 kHz
01 clock mode 50 Hz
10 event-counter mode
11 test modes
6.8 Event counter mode
Event counter mode is selected by bits 4 and 5 which are logic 10 in the control and status
register. The event counter mode is used to count pulses externally applied to the oscillator input (OSCO left open-circuit).
The event counter stores up to 6 digits of data, which are stored as 6 hexadecimal values
located in the registers 1h, 2h, and 3h. Therefore, up to 1 million events may be recorded.
6 digits , ce qui permet de compter jusqu'à 1 million (0 à 999999) .
1'000'000 / 2500 = 400 litres , ça va y a de la marge si c'est pour un réservoir de voiture ou de moto .
Avec un débit de 2 l/min (qu'il a dit , si constant) , le compteur tient 3h20 avant de revenir à 0 .

Artemus24
Raspinaute
Messages : 1077
Enregistré le : ven. 15 sept. 2017 19:15

Re: compteur impulsions contact effet hall piface

Message par Artemus24 » dim. 21 août 2022 19:40

Salut MSG.

Je ne cherche pas à refaire le projet, car cela ne m'intéresse pas car je n'ai aucune utilité à mesurer le débit de l'eau.

J'ai vu tes calculs mais par contre, je ne vois toujours pas l'image que tu as mis en pièce jointe.

Je n'ai pas besoin d'une horloge externe (le PCF8593) car tu peux programmer un timer dans ta raspberry pour déclencher un sous-programme qui va effectuer la lecture de la mesure et de stocker le cumul du calcul. J'ai juste besoin de comprendre ce que l'on mesure avec ce débitmètre et c'est tout.

Autre point que je ne comprends pas, ce sont ces impulsions. A quoi cela sert, si ma raspberry demande au débitmètre la lecture de la mesure ? Si c'est une indication sur la limite de mes lectures, je veux bien.

Bonne soirée MSG. :D

Cordialement.
Artemus24.
@+
RPI4B/8GB + Argon FanHAt
Rpi3A+, Rpi3B+
RPi 2B + Joy-It I2C Serial 20x4 2004 LCD Module
RPi 2B + PIM273 Unicorn HAT HD 16x16 Leds RGB
RPi0v1.3, RPi0W + LibreElec/Kodi, Rpi0WH + Tuner TV HAT
NodeMCU ESP32

MSG
Raspinaute
Messages : 119
Enregistré le : ven. 26 déc. 2014 18:31

Re: compteur impulsions contact effet hall piface

Message par MSG » dim. 21 août 2022 20:21

Bizarre que tu ne la vois pas .

C'est des bascules de Type D en série qui permettent de créer un compteur de la taille que l'on veut , chaque bascule représente un bit du compteur , ça sert aussi de diviseur binaire pour les bits que tu ne lira pas . L'utilisation d'un compteur externe , évite de monopoliser les ressources du RPi pour une tache ingrate et le risque de louper des impulsions . On peut venir lire le compteur externe quand on veut sans le déranger dans sa tâche de comptage .

Le débitmètre ne te donnera pas le débit car il n'a pas l'électronique ni de base de temps . En sortie , tu n'as que des impulsions correspondant à un tour .
Donc si tu les totalises , ce qu'ils ont fait dans leur programme , tu n'as que la quantité cumulé , mais pas le débit .

Pour avoir le débit , il te faut une base de temps , soit en heure (trop long) , en minutes (encore trop long) , en secondes (rapide mais pas assez) , en temps par tour (mais c'est là que plus personne ne suit) .

On utilise pour cela la formule F= 1 / T , d'où T = 1 / F .
F en Hz ou RPM
T en secondes

Dans tous les cas , tu es obligé de totaliser les impulsions , sauf la dernière méthode où on chronomètre (comme un coureur de fond) le temps effectué par tour . Pour cela , il faut détecter les Fronts montants OU descendant des impulsions pour donner un top de départ (T0=timer) puis un top d'arrivé (T1=timer) , la différence de ces valeur te donne le temps par tour . Comme le RPi est assez rapide , il doit pouvoir donner des mesure précises bien en dessous du milli-seconde .

MSG
Raspinaute
Messages : 119
Enregistré le : ven. 26 déc. 2014 18:31

Re: compteur impulsions contact effet hall piface

Message par MSG » lun. 22 août 2022 09:47

Bonjour ,

Autre chose , as t-on besoin d'une précision à 0,0004 litres/min (2500 impulsions/litres ) pour afficher un résultat en litre/min à + ou - 0,4 litres (2,5 impulsions/litre) ?

C'est à ça que sert un compteur externe , il fera le boulot de comptage parfaitement et on peut lui faire diviser les impulsions ainsi reçus par 10, par 100 ou par 1000 .
Suffit de savoir faire un diviseur de fréquence (diviseur d'impulsions) .

J'ai trouvé cette vidéo qui explique comment créer un compteur avec des bascules D et comment le faire compteur de 0 à 9 . En ajoutant en série des compteurs décimaux , on va diviser ainsi le nombre d'impulsions par la valeur souhaité .
https://www.youtube.com/watch?v=dypF4hG-3f0

Artemus24
Raspinaute
Messages : 1077
Enregistré le : ven. 15 sept. 2017 19:15

Re: compteur impulsions contact effet hall piface

Message par Artemus24 » lun. 22 août 2022 16:38

Salut MSG.

Je ne vois toujours pas l'image. Je vois une petite icône avec le mot "image" juste après.
MSG a écrit :Le débitmètre ne te donnera pas le débit car il n'a pas l'électronique ni de base de temps . En sortie , tu n'as que des impulsions correspondant à un tour . Donc si tu les totalises , ce qu'ils ont fait dans leur programme , tu n'as que la quantité cumulé , mais pas le débit .
Si c'est un compteur, c'est encore mieux car tu n'es pas obligé d'avoir une fréquence élevée pour lire la mesure, ni de faire un calcul savant pour obtenir ta consommation.

Cordialement.
Artemus24.
@+
RPI4B/8GB + Argon FanHAt
Rpi3A+, Rpi3B+
RPi 2B + Joy-It I2C Serial 20x4 2004 LCD Module
RPi 2B + PIM273 Unicorn HAT HD 16x16 Leds RGB
RPi0v1.3, RPi0W + LibreElec/Kodi, Rpi0WH + Tuner TV HAT
NodeMCU ESP32

Répondre

Retourner vers « Python »