Go Down

Topic: Besoin d'info pour interfacer un compteur d'eau à émetteur d'impulsion (Read 4 times) previous topic - next topic

gnomathibus

Bonjour à tous, je dispose d'un compteur d'eau qui est équipé d'un émetteur d'impulsion, je souhaite l'interfacer avec mon arduino mais je rencontre quelques difficultés car je suis pas très doué en électronique   :smiley-sad-blue:,  les caractéristiques de la sortie «impulsion» sont les suivantes :

- Sortie transistor à collecteur ouvert de type NPN
- Etat fermé en présence d'une impulsion.
je dispose de deux fil l'un pour les impulsions l'autre pour la masse

pour mon code j'ai besoin impérativement d'utiliser un interruption de ce faite j'ai bêtement connecté le fils impulsion sur la broche 2 et le fils de masse sur mon arduino, pour le code j' ais utilisé celui-ci dessous issu d'un tuto, le compteur envoi 1 impulsion lorsque 1L d'eau est consommée le problème étant que quand l'arduino reçois l'impulsion elle m'en compte trois au lieu d'une

si quelqu'un peut m'aiguiller sur mon pb merci d'avance

Code: [Select]


volatile int comptageImpulsion=0;

void setup()   {

digitalWrite(2, HIGH);
Serial.begin(115200);

attachInterrupt(0, gestionINT0, CHANGE);

}


void loop(){

}

void gestionINT0() {

comptageImpulsion=comptageImpulsion+1;

Serial.print("Nombre impulsions = ");
Serial.println(comptageImpulsion);

}

Snootlab

Bonjour,

Je ne sais pas pourquoi 3 mais 2 ça parait normal puisqu'il me semble que ce code
Code: [Select]
attachInterrupt(0, gestionINT0, CHANGE);
contenant les modes de déclenchement possibles = LOW, CHANGE, RISING, FALLING (cf. mon club elec)

va compter les changements d'état, donc il y en a au moins 2 (passage de 0 à 1 puis de 1 à 0),
a la place de CHANGE, un RISING me parait plus approprié.

mais 3 ?? un oscillo sous la main peut être ?? ou sinon un arduino :) avec un snapshot du signal pour valider son fonctionnement ?

Lionel
- Distributeur officiel Arduino - France

gnomathibus

merci pour ta réponse, pour la partie interrupt j'ai déjà essayé les quatres LOW, CHANGE, RISING, FALLING mais j'ai  le même pb, malheureusement je n'ai pas d'oscillo, sous la main sinon quelle est cette methode avec l'arduino "snapshot de signal" ?

merci encore

B@tto

Peut-être un effet de rebond. Essaye en RISING et en désactivant les interruptions une fois la routine d'interruption lancée, et en les relançant à la fin de la même routine.

Snootlab

Effectivement, ça peut être du rebond


merci pour ta réponse, pour la partie interrupt j'ai déjà essayé les quatres LOW, CHANGE, RISING, FALLING mais j'ai  le même pb, malheureusement je n'ai pas d'oscillo, sous la main sinon quelle est cette methode avec l'arduino "snapshot de signal" ?

le lien que j'ai mis plus haut
http://code.google.com/p/xoscillo/
permet d'utiliser un arduino comme un oscilloscope (modeste)
je te suggérai de l'installer et de l'utiliser pour analyser le signal issu de ton capteur, au cas ou les rebonds ne soient pas trop rapides pour être capturés.
et enfin de faire une capture d'écran (snapshot)

Lionel
- Distributeur officiel Arduino - France

Go Up