je débute un peu dans le monde d'arduino et il se trouve que j'ai un projet à faire avec. Ce projet consiste à acquérir des données de capteurs (Phmètre, Electrodes, Débit-mètre), de les manipuler et agir en conséquences.
Mon problème :
Lorsque je m'occupe de brancher la arduino avec les capteurs, je reçois 5V de tension constante lorsque l'un d'eux est en marche. Est-il possible que la tension renvoyée par le capteur soit supérieur à celle implémentée par la arduino (5V) ?
Je suis bloqué dessus depuis un bon mois et rien à faire, je ne trouve pas la solution. La mesure effectuée avec un voltmètre me donne 2,60V correspondent à la tension que renvoie un débit-mètre lorsqu'il effectue sa mesure.
Mon branchement est simple :
-5V à l'alimentation du capteur avec le fil rouge du capteur
-le ground arduino avec le fil noir du capteur
-et le fil jaune de données sur A0 (porte analogique).
Mon code :
int Debit;
float tension4;
int SensorDebitValue;
SensorDebitValue = analogRead(A0);
tension4 = map(SensorDebitValue, 0, 1023, 0, 5000);
tension4 = tension4 / 1000;
Debit = (((SensorDebitValue) * 5) / 1024);
Serial.print("Votre tension sur le debitmetre est de ");
Serial.println(tension4);
Serial.println();
Valeur renvoyée :
Votre tension sur le debitmetre est de 5.00 (ou 5 si je mets Debit à la place de tension 4).
Auriez-vous, s'il vous plait un indice à me donner ?
ton capteur te renvoie des tops il n'a rien à voir avec de l'analogique.
tu vas devoir regarder les interruptions pour compter les tops pendant un temps donné et en déduire un débit.
edit: en complément
Ce capteur de débit est constitué d'un rotor et d'un capteur à effet hall. Lorsque l'eau passe dans le capteur, la rotation du rotor génère des impulsions en fonction du débit. La fréquence de sortie varie en fonction de la vitesse du rotor. Convient pour de l'eau uniquement.
Brochage:
noir: masse
rouge: +5 à +24 Vcc
jaune: signal
Alimentation: 5 à 24 Vcc
Consommation: 15 mA (sous 5 Vcc)
Plage de mesure: 1 à 30 l/min
Pression maxi: 1,2 Mpa
Précision: +/- 3% (entre 1 et 10 l/min)
Formule de conversion: débit (en l/min) = fréquence (en Hz) / 7,5
Dimensions: 63 x 36 x 35 mm
Température d'utilisation: 0 à 80°C
Diamètre du filet: 1/2''
Poids: 43 g
avec les interruptions, tu comptes les tops et lorsque tu en as compté 10 par exemple, connaissant le temps qu'il a fallu pour compter 10 impulsions, tu peux calculer la fréquence.
pour connaitre le temps d'acquisition de 10 tops, tu mémorises le temps au début de l’acquisition, lorsque tu as 10 tops, tu relèves le temps et tu fais une soustraction temps de fin - temps de début
et le fabricant te dit: Formule de conversion: débit (en l/min) = fréquence (en Hz) / 7,5
compare les 3 phm : arduino fait une différence entre phm et Phm, ils suffit de mettre une majuscule aux 2 premiers
const byte Phm = 2;//entrée interruptible
pinMode(Phm, INPUT);
attachInterrupt(0, isr_Phm, RISING);
je reconnais que c'est pas évident de comprendre que isr_Phm est une "interrupt service routine" qui a comme variable Phm et pas "phm", on met Phm ou phm partout mais on ne melange pas les 2
ne jamais utiliser 2 variables avec le meme nom dont la différence ne tient qu'à une majuscule, meme si vous écrivez un croquis avec 2 variables différentes
Jules2101:
error: 'isr_Phm' was not declared in this scope
Bonjour,
Le programme de dfgh se compile sans problème
Vérifies que tu as bien copié le programme en entier.
Si vraiment tu es sur que le programme est correct, essaie l'ajouter la déclaration void isr_Phm(); avant le setup. Il m'est arrivé que l'ide ne voie pas des fonctions définies après l'appel.