Go Down

Topic: Influence des sorties digitales sur la lecture analogique (Love-o-meter) (Read 1 time) previous topic - next topic

Procyon999

Bonjour,

Je constate un souci de lecture sur le connecteur analogique lorsque j'active un connecteur numérique(sur mon arduino uno).

Je suis sur l'atelier Love o meter (starter pack) et lorsque j'utilise le code ci-dessous sans les conditions en rouge, cela
fonctionne parfaitement bien. Je trouve 21°c.

Dés que j'ajoute les trois conditions de la fin, les valeurs de température mesurées  par l'arduino dérivent jusqu'à +6°c. Pourtant lorsque je prends la tension à la sortie du capteur de température celle-ci est identique dans les deux cas (0,7v).

Auriez-vous des indices sur ce qui provoque cette dérive ?
Je me casse les dents depuis ce matin sur ce truc. :'(

Je vous remercie.


Code: [Select]
const int sensorPin = A5;
const float tempBasse = 20.0;
const float tempMoy = 22.0;
int tempSensor = 0;
float temperature = 0.0;

void setup() {

Serial.begin(9600);
for (int ledPin = 2; ledPin <=7; ledPin++) {
  pinMode(ledPin, OUTPUT);
  digitalWrite(ledPin,LOW);
}
}
void loop() {

tempSensor = analogRead(sensorPin);
temperature = (((tempSensor/1024.0)*5.0) - 0.5) * 100.0;

Serial.println(tempSensor);
Serial.println(temperature);

[color=red]if(temperature < tempBasse) {
  digitalWrite(2,HIGH);
  digitalWrite(4,LOW);
  digitalWrite(7,LOW);
} else if ( temperature < tempMoy && temperature > tempBasse) {
  digitalWrite(2,HIGH);
  digitalWrite(4,HIGH);
  digitalWrite(7,LOW);
} else if ( temperature > tempMoy) {
  digitalWrite(2,HIGH);
  digitalWrite(4,HIGH);
  digitalWrite(7,HIGH);
}[/color]
 delay(1000);

}

kamill

Bonjour,

Relies le GND et le +5V de ton capteur de température directement à la carte arduino (sans être commun avec le GND des leds).

Mets ton code entre balises.

68tjs

Indique quelle carte tu utilises exactement (Love o meter ? ? ? ?).
Lien cliquable sur le produit si ce n'est pas un produit arduino.

Procyon999

Je viens de tester en rapprochant les pins d'alimentation au plus proche du capteur.
Cela fonctionne mieux. La dérive n'est plus que de +2°c.

D'ailleurs si je bouge légèrement les pins pendant le fonctionnement cela fait fluctuer les résultats bizarrement.

Cela me laisse sceptique.

J'imagine qu'il doit exister un moyen de filtrer ca...

dbrion06

J'imagine qu'il doit exister un moyen de filtrer ca...
Oui, mais pour commencer, faudrait que vous expliquez comment est alimenté (pile; secteur. Avec / sans découplage) votre philomètre.

bidouilleelec

Bonjour Procyon999

Utilisez vous un TMP36?
Il est souvent conseillé de mettre un condensateur de 100n entre et au plus près des pattes +5v et gnd  du capteur.

Également de moyenner les mesures.

Cordialement,
bidouilleelec

kamill

Je viens de tester en rapprochant les pins d'alimentation au plus proche du capteur.
C'est bien, mais ce qu'il faut surtout c'est que les fils d'alimentation aillent directement de la carte arduino au capteur et ne servent pas à alimenter autre chose.

bidouilleelec

Bonjour

J'ai reproduis le montage supposé de Procion999:

_Arduino Uno
_LM35 avec condensateur 100n
_3 diodes
_un copier-coller de son algorithme d'allumage des diodes.

Je constate le même phénomène en plus faible.

Plus il y a de diodes allumées plus la température lue augmente (de quelques 1/10 de degré).

Isn'it bizarre?

Cordialement,
bidouilleelec

al1fch

Bonjour

légérère baisse de Vref quand le courant total fourni par le Mega 328 augmente ?
Si Vref baisse , la tension mesurée augmente et la température avec

kamill

Plus il y a de diodes allumées plus la température lue augmente (de quelques 1/10 de degré).

Isn'it bizarre?
Non ce n'est pas bizarre.
Les mêmes fils d'alimentations sont utilisés pour les leds et le TMP36. Il suffit d'une perte de quelques mV dans les fils quand les leds sont allumées pour faire varier la température lue.

Il faut une câblage d'alimentation qui alimente uniquement le TMP36 directement à partir des pins de la carte arduino.

fdufnews

D'ailleurs si je bouge légèrement les pins pendant le fonctionnement cela fait fluctuer les résultats bizarrement.
Je suppose que tu utilises une breadboard pour faire ton montage.
Ces plaques de test ne sont pas réputées pour la qualité de leurs contacts. Le simple fait de bouger les fils peut modifier fortement la résistance de contact et entraîner une variation de la mesure.
Donc ne pas trop s'inquiéter non plus.

68tjs

+ 1000 avec Kamil
Ces bestioles délivrent seulement 10 mV par degré, vous n'êtes plus avec des signaux numériques de 5V d'amplitude il faut faire attention.

1) Les fils de cuivre n'ont pas une résistance nulle et si d'autres circuits sont alimentés il se produira une petite tension dans le fil de masse que le micro prendra en compte, d'ou le résultat  faux.
2) Il est clairement  précisé dans la datasheet du lm35 que ce produit ne supporte pas des charges capacitives comme il s'en produit  avec des grandes longueurs de liaison. La datasheet conseille de placer en sortie du capteur une résistance série  de 2k, j'ai fais des essais et j'ai trouvé  un optimum à  5k.
Avec une autre méthode  j'ai obtenu de bons résultats  avec 50m de câble Ethernet. Je ne peux pas joindre actuellement le schéma étant sur tablette.

bidouilleelec

Nonjour kamill
Il faut une câblage d'alimentation qui alimente uniquement le TMP36 directement à partir des pins de la carte arduino.
Je ne comprends pas le câblage que vous suggérez ?

Cordialement,
bidouilleelec

kamill


bidouilleelec

#14
May 01, 2019, 11:40 am Last Edit: May 01, 2019, 11:41 am by bidouilleelec
Comme ceci:

Merci.
C'est bien exactement le schéma que j'utilise;
sauf que j'ai 3 couleurs de diode ....

Rectification : j'ai une augmentation de 1 degré à la 1ère diode allumée , puis 2 dixièmes pour chaque diode suivante.
Ajouter une résistance série sur le LM35 ne change rien.

Cordialement,
bidouilleelec

Go Up