Go Down

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

al1fch

Pour moi il subsiste l'influence d'un câblage non modifiable : le petit fil qui dans le boitier du Mega 328 relie la patte Vcc et le Vcc de la puce (die)


Le courant sortant vers les leds  traverse ce fil et produit une petite chute de tension : le Vcc interne est alors un poil plus faible que le Vcc externe (régulé).

Si dans l'application le Vcc sert de Vref cette petite baisse de Vref augmentera un peu la valeur sortant du convertisseur analogique-numérique.
Si les leds étaient commutées par des transistors ce phénomène disparaïtrait
Si le convertisseur utilisait une bonne référence de tension externe (ou la référence  'band gap' interne) le phénomène disparaîtrait également.

bidouilleelec

Si dans l'application le Vcc sert de Vref cette petite baisse de Vref augmentera un peu la valeur sortant du convertisseur analogique-numérique.
Si les leds étaient commutées par des transistors ce phénomène disparaïtrait

l
J'utilise la référence interne sur A0.

al1fch

la référence interne Vcc ou la référence interne 'bandgap' de 1,1V ?
le code de Procyon999 utilise le Vcc interne comme référence.

Avec la référence interne 'bandgap' il subsiste l'influence de l'achauffement de la puce lorsque des sorties fournisent des courants de qq mA. la référence 'bangap' est sommaire dans les Mega328

kamill

C'est bien exactement le schéma que j'utilise;
??? Tu as dit que tu utilisais le schéma de Procion999
Quote
J'ai reproduis le montage supposé de Procion999:

bidouilleelec

la référence interne Vcc ou la référence interne 'bandgap' de 1,1V ?

la référence interne 'bandgap' de 1,1V

bidouilleelec

??? Tu as dit que tu utilisais le schéma de Procion999
Ah! j'avais oublié cette photo.

J'utilise votre schéma.

kamill

Je viens de faire l'essai avec un LM35 car je n'ai pas de LM36, les résistances des leds sont de 220 ohms.
L'effet est très net

Affichage: nombre de leds allumées -> température
Schéma Procion999
Code: [Select]

0 -> 23.95
1 -> 25.90
2 -> 29.33
3 -> 33.24
0 -> 23.95
1 -> 25.90
2 -> 29.33
3 -> 33.24
0 -> 23.95
1 -> 25.90
2 -> 29.33
3 -> 33.24
0 -> 23.95
1 -> 25.90
2 -> 29.33
3 -> 33.24
0 -> 23.95
1 -> 25.90
2 -> 29.33
3 -> 33.24
0 -> 23.95
1 -> 25.90
2 -> 29.33
3 -> 33.24

température de 23.95 à 33.24

Mon Schéma
Code: [Select]
0 -> 22.97
1 -> 23.46
2 -> 23.46
3 -> 23.46
0 -> 23.95
1 -> 22.97
2 -> 23.46
3 -> 23.46
0 -> 23.95
1 -> 22.97
2 -> 23.46
3 -> 23.46
0 -> 23.95
1 -> 22.97
2 -> 23.46
3 -> 23.46
0 -> 23.95
1 -> 23.46
2 -> 23.46
3 -> 23.46
0 -> 24.44
1 -> 23.46
2 -> 23.46
3 -> 23.46

température de 22.97 à 23.95

68tjs

Pour les mesures analogiques il faut utiliser la broche GND la plus proche des entrées analogique.
Et si des E/S numériques sont utilisées pour elles il faut utiliser l'autre broche GND --> comme sur le dessin de kamill et vous obtiendrez ses résultats.
Et surtout ne pas polluer la masse analogique en y connectant n'importe quoi.

Si la carte est une UNO la mesure ne sera jamais stable SAUF à souder un condensateur de 100 nF :
  • au verso de la carte
  • directement sur les broches du support pour le micro
  • entre la broche Aref et Gnd DU MICROCONTRÔLEUR, pas de la carte arduino (il y en a déjà un qui ne sert à rien là où il est placé).

Si le concepteur du micro, c'est à dire Atmel, a placé une broche de masse juste à coté de la broche Aref c'est qu'il y a une raison très importante. Mais apparemment cela a complètement échappé à Arduino qui est aller foutre la connection Aref de carte à l'autre bout de la carte. Résultat : la piste est polluée pendant la traversée de la carte en diagonale.

Aref c'est le cœur du convertisseur analogique, si Aref n'est pas propre il est impossible d'obtenir des mesures stables.


bidouilleelec

Avec la référence interne 'bandgap' il subsiste l'influence de l'achauffement de la puce lorsque des sorties fournisent des courants de qq mA. la référence 'bangap' est sommaire dans les Mega328
J'ai mesuré AREF : 1.107 V quelque-soit le nombre de diodes allumées.

Cordialement,
bidouilleelec

68tjs

Quote
J'ai mesuré AREF : 1.107 V quelque-soit le nombre de diodes allumées.
Cela me parait normal : la perturbation n'est pas dans le micro mais dans le câblage externe.

Le 328p possède une sonde de température qui permet de vérifier s'il y a un changement de température de la puce.
Cette fonction n'est pas prise en charge par Arduino ce qui fait que certains parlent de fonction cachée alors que tout est exposé dans la datasheet.
Bien sûr il faut faire appel aux registres du micro pour l'exploiter.

bidouilleelec

#25
May 01, 2019, 01:55 pm Last Edit: May 01, 2019, 02:08 pm by bidouilleelec
Bonjour 68tjs
Pour les mesures analogiques il faut utiliser la broche GND la plus proche des entrées analogique.
Et si des E/S numériques sont utilisées pour elles il faut utiliser l'autre broche GND --> comme sur le dessin de kamill et vous obtiendrez ses résultats.
Et surtout ne pas polluer la masse analogique en y connectant n'importe quoi.

En connectant la masse analogique comme vous le décrivez et la masse des diodes à la pin GND située à coté de la pin AREF, le phénomène disparait.
Cela semble donc bien un problème de masse.

Cordialement,
bidouilleelec

68tjs

Tu n'imagines pas comme la masse a une importance capitale en électronique analogique.

Ce qu'il faut admettre c'est qu'un plan de masse uniforme c'est à dire qui est strictement à 0V sur toute sa surface est une vue de l'esprit.

Après tout dépend des cas d'utilisation, si c'est avec des signaux qui font 5V d'amplitude ce ne sera pas quelques mV qui feront quoi que soit mais avec des amplitudes plus petites rien n'est gagné.

Autre point dans les datasheets des différents micros il y a un chapitre sur les sources d'erreur du convertisseur analogique digital. C'est très clair que la mesure n'est pas donnée à un pas près mais plutôt à ± 5 pas près.

Certaines erreurs sont systématiques c'est à dire que dans les mêmes conditions on aura toujours les mêmes erreurs. Comme exemple on peut citer l'erreur de non-linéarité. D'autres erreurs sont aléatoires, comme exemple on peut citer celle due au bruit d'origine thermique dans le micro.

Leur sommation n'est pas identique. On additionne simplement les erreurs systématiques, pour les erreurs aléatoires on prend la racine carrée de la somme des carrés des différentes erreurs aléatoires.

Les erreurs aléatoires peuvent être éliminées ou grandement affaiblies avec un moyennage.
Les erreurs systématiques ne peuvent pas être éliminées. Seul un étalonnage suivi d'une calibration logicielle peut les compenser.

Procyon999

Bonjour à tous !

J'ai résolu le problème en branchant le GND des sorties numériques et le TMP sur le GND principal.
J'ai aussi rajouté un condensateur 0.1uf.

Je me rends compte qu' Arduino a choisi un atelier sensible pour son starter kit. Comme quoi même les projets pour débutants peuvent être compliqués sur certains aspects :-)

Je vous remercie pour votre aide.

petrusfr

Bonjour,

Le bon côté de cet atelier : son mauvais fonctionnement du départ, t'as permis (et pas qu'à toi car je m'inclus) de prendre conscience des problèmes de masse pour les mesures analogiques... Et spécialement pour les cartes Uno..
Merci à tout les électroniciens participant  a ce fil pour leurs conseils, partage du savoir et astuces

Pierre

bidouilleelec

.........
Merci à tout les électroniciens participant  a ce fil pour leurs conseils, partage du savoir et astuces

Pierre

Oui, oui : Grand merci à ces sacrés Électroniciens, qui ne font que critiquer les informaticiens (à sa mémère), mais sans qui ????????

Cordialement,
bidouilleelec

Go Up