Quand je mesure la tension aux bornes 4 et 6 du compteur de consommation je m'attendais à mesurer une tension qui apparaît au moment de la transmission du pulse. Mais il n'y a rien et pas de contact non plus.
Par contre aux bornes du datalogger il y a du 24V en continu. Je ne comprends pas le fonctionnement et ma question :
Quel montage réaliser sur l'Arduino pour détecter ces pulses ?
Merci pour votre temps
CHARACTERISTICS OF THE PULSE OUTPUT /
CARACTERISTIQUES DE LA SORTIE
According to IEC 62053-31 Class A and Class B
Maximum voltage 30VDC, maximum current 27mA Open collector output / Load resistor : 1kOhms
Le compteur gazpar à le même et l'impulsion est de 300ms.
Attention à la longueur du câble. Pour le gazpar c'est maximum 3m entre le contact impulsion et le récepteur (Arduino, esp32..)
Je te conseille donc de lire la doc s'il y a des caractéristiques à prendre en compte)
Mais que faut-il faire au niveau du montage ?
Pin 6 Arduino > Compteur à impulsions
Compteur à impulsions > retourne à GRD
Ou faut-il quand même une résistance quelque part ?
Vous l'aurez compris mes connaissances en électronique sont très limitées. Donc désolé si les questions sont basiques. Merci
Hello
Ton compteur: envoie un pulse de 300ms lorsqu'il a vu passer 10 Wh . Si ta consommation est faible et régulière, nous allons imaginer que le pulse de 10Wh se produit toutes les 5 mn.
Ton montage: possède des résistances internes qui te permettent d'en programmer une en Pullup. C'est ce que tu fais avec l'instruction :
PinMode (6,INPUT_PULLUP).
Le GND de ton montage doit " entrer" dans ton compteur de Wh et en ressort sous forme d'impulsion pour aller sur l'entrée 6 du montage.
Ton programme: il est mal fait car tu lis l'entrée D6 très fugitivement une fois par seconde.
Pour résumer, tu lis une fois par seconde pour saisir un pulse qui ne dure que 300ms et qui ne se produit qu'une fois toutes les 5 mn ( pour reprendre l'exemple de consommation faible et régulière).
Pour être sûr de voir un pulse lorsqu'il y en a un qui se présente, il faut lire D6 toutes les 250 ms.
Et pour tester ton montage, tu dois faire des pulses de 300ms espacés d'une ou deux secondes.
Hello un grand merci pour cette explication qui m'a permis de mieux comprendre.
Et effectivement le code est incohérent dans ce cas.
Je teste rapidement.
Pour éviter de te prendre la tête avec des temps d'interrogation du signal de ton compteur, tu le connectes sur la pin 2 ou la 3 et tu travail en interruption.
Ainsi tu n'a pas besoin de t'inquiéter est ce que l'impulsion est la, c'est l'impulsion qui te dit, je suis là.
Bonjour, merci pour vos suggestions.
J'ai fait différents essais notamment en utilisant des interruptions.
Toujours pas de pulse.
Je vais tester avec un datalogger du commerce pour m'assurer qu'il reçoit bien les pulses du compteur de consommation.
Ci-dessous le code utilisé :
J'ai ajouté un écran lcd pour afficher les pulses.
Montage : pin 2 Arduino va vers compteur - retour compteur vers GRD Arduino.
L'usage de l'interruption simplifie le code, une contingence est de déclarer les variables traitées dans l'interruption et utilisées ailleurs, volatile, ainsi: volatile unsigned int erg = 0;
Bonjour
Merci pour votre suggestion.
J'ai modifié le code comme proposé. Mais aucun pulse n'est capté de ce module Diris A10
Ci-dessous le montage actuel. Le problème semble venir de ce montage.
Le "open output collector" côté DIRIS A10 n'est pas activé et ne renvoie rien.
Quand on mesure au multimètre la tension aux bornes P04 et P05 celle-ci vaut 0.83v et ne varie pas quand il y a un pulse.
Ton montage me semble "rudement" compliqué, il y a un sujet similaire sur ce forum, si ça peut t'aider. Le câblage est un peu plus simple, typique d'un collecteur ouvert.
hello
547 => NPN et 557 => PNP
le brochage que tu donnes correspond au 557
mais:
je pense que tu n'as pas besoin de cet intermédiaire
le transistor en collecteur ouvert doit probablement être en interne du Diris.
donc, tu raccordes GND arduino à la borne moins du Diris, qui (GND) doit être reliée en interne à l'émetteur du transistor et tu raccordes la sortie du Diris à l'entrée D2 de la platine arduino.
D2 est déclarée en PULLUP dans le prg, donc pas de résistance extérieure.
et c'est tout
une fois que tu as raccordé les deux platines, tu mesureras 5V entre GND et D2
les pulses attendus passeront la sortie de Diris à GND pendant 300ms.
tu mesureras 0V pendant ces 300ms
voici ton prg revu pour les interruptions
pour le tester, tu peux avant de le raccorder au Diris, faire des contacts fugitifs entre GND et D2
tu verras l'affichage évoluer sur le moniteur, lequel doit être réglé sur 115200 bauds
Merci pour le lien. Merci pour vos commentaires et merci d'avoir pris le temps de corriger le code.
J'avais commencé par un montage très simple similaire qui ne fonctionnait pas.
J'ai refait ce montage proposé et utilisé le code modifié.
Quand je fais un pontage entre les 2 bornes qui vont au DIRIS le compteur s'incrémente et le buzzer s'active.
Mais quand le montage est connecté au DIRIS, en moyenne, sur 50 pulses il y en a 1 qui est capté par l'Arduino.
Je pensais qu'à chaque fois que la led du DIRIS s'allume, un pulse arrive sur les bornes. Mais apparemment ce n'est pas le cas. Ce serait un pulse tous les 100 wh. Il se pourrait donc que cela fonctionne
Donc je vais le laisser tourner toute la nuit et comparer le matin avec l'index du compteur général de l'installation.
Encore merci.