[RESOLU] signal analogique perturbé

Salut,

J'ai un petit soucis avec des valeurs lues sur deux pins analogique.

je souhaite afficher la t° et la luminosité d'un pièce. Pour ça j'utilise une photorésistance ainsi qu'une thermistance (j'ai aussi essayé avec un lm35) et deux résistance de pull down une de 2k2 pour la lumière et 10K pour la t°.

Le montage et classique: +5V-------photoresistance------R 2K2--------GND | | Arduino A3

+5V-------thermistance-----------R 10K--------GND | | Arduino A1

Quand j'affiche les deux valeurs et que je cache la photorésistance pour simulé une baisse de la luminosité ma valeur de température bouge avec. Je ne perd pas beaucoup c'est de l'ordre de 1 degré mais impossible de stabiliser le signal. On dirait que les pin analogique communique entre elles .

J'ai essayé avec d'autre pin analogique ça me fait pareil.

Une idée :cold_sweat:????

Probablement un problème de masse*s* mal câblée*s. Notes que j'ai mis un "s*" à la fin du mot masse c'est tout à fait intentionnel. La masse uniforme c'est une vue de l'esprit cela n'existe pas, même pas en rêve. :grin:

Quand tu masque la photorésistance tu change sa valeur et donc le courant qui la traverse. Le fil de masse qui je pense doit être commun à la photorésistance et à la thermistance n'a pas une résistance nulle. Les composant idéaux n'existent pas. Il se produit donc dans ce fil de masse commune une légère chute de tension qui varie selon l'état d'éclairement de la photorésistance. Les variations peuvent paraître dérisoires mais elles ne le sont pas car tu détecte des mV -> le lm35 10mV/°C. Cet effet ne se voit qu'un analogique, le numérique avec ses amplitudes de plus de 4Volts ne voit rien du tout, même pas mal :grin: .

Je te propose de câbler les masse en "étoile", note bien ce terme il reviendra très souvent. Le centre de l'étoile c'est la pin GND de la carte arduino. Laquelle puisque sur une UNO il y en a deux ? Les masses numérique et analogique ne sont pas reliées au niveau de la puce pour éviter des perturbations par couplage interne, il faut les relier sur le circuit imprimé. Pas de chance la carte est horriblement mal fichue et les entrées analogiques sont renvoyées à l’opposé de leur masse analogique. Comme entre deux maux il faut choisir le moindre je choisi la pin de GND la plus proche des entrées analogiques bien que ce soit la masse numérique.

Ensuite de ce centre de l'étoile tu tire deux fils de masse (les rayons de l'étoile) un pour la photorésistance et l'autre pour le capteur de température. Pour la masse évite des fils trop fins ou mets en plusieurs en parallèle.

C'est une méthode très universelle de câblage qui permet de limiter au maximum les effet de couplage dans le*s* masse*s*.

heu...:cold_sweat: lol

Je me sens tout petit :)

J'ai un peut de mal avec les notions que tu me présent mais je crois que c'est surtout du à mon état de fatigue :grin:

J'éssai de faire ça demain pour voir merci!

Rassure toi ce ne sont pas des notions simples évidentes ( mince là tu vas recommencer à t'inquiéter). Dans le domaine analogique pour gérer les masses il faut savoir écouter, retenir l'esprit des conseils et surtout ne pas les appliquer à la lettre sans réfléchir car chaque cas est différent. Néanmoins le câblage des masses en étoile est une bonne habitude à prendre quand on débute. Et expérimenter, beaucoup expérimenter. Ce que je t'ai dit c'est bien sûr ce que pense être le plus probable mais je ne suis pas devant ton montage et il peut y avoir d'autres raisons.

PS J'ai lu une fois une interview d'un grand responsable d'une société de circuit intégré. Il disait que quand il embauchait des ingénieurs débutants ceux qui étaient affectés à des circuits numériques pouvait commencer à être autonome au bout de 6 mois et pouvait avoir des responsabilités au bout de 2 ans. Par contre pour ceux qui étaient affectés à des circuits analogiques l'autonomie pas avant 2 ans et les responsabilités pas avant 5 ans. En analogique on progresse en se plantant et en analysant pourquoi on s'est planté.

Si tu veux imager un peu, c'est comme quand tu es sous la douche et que ta copine ouvre le robinet d'eau chaude du lavabo : tu comprends la suite ... Si tu veux résoudre ce problème (ou le limiter en tout cas) il faut tirer une ligne d'eau chaude pour chaque robinet à partir du chauffe-eau.

Ici c'est le même problème : les masses se perturbent en elle et crée des petites variations de tension (et plus il y a un "robinet" qui tire, plus ça perturbe les autres). Pour résoudre ce problème (ou le limiter toujours) : tirer chaque masse à partir de la source de tension (ici le régulateur de l'Arduino).

c'est vrai que le coup de la douche ça résume bien l'effet que j'ai.

Je viens d'essayer en tirant une alim et une masse pour chaque capteur et ça à l'aire de marcher. On dirait même que le circuit et plus réactif. La variation et toujours là mais elle très petite et n'affecte plus l'autre signal (je parle dans les deux sens aussi bien en faisant varier la t° que la lumière)

J'ai fait un autre essai en groupant les masses et la catastrophe ça revient comme avant. Je viens d'appendre un truc important là je crois.

C'est bizard car peu de personne en parle de ce phénomène ou j'ai pas bien cherché :D

Bon y me reste plus cas l’appliquer sur un circuit d'essai soudé.

Merci en tout cas @+

C'est bizarre car peu de personne en parle de ce phénomène ou j'ai pas bien cherché

Non c'est la conséquence normale de l'évolution de l'électronique. Maintenant tout est numérique, il faut trouver soit des "anciens" qui ont été confrontés à ces problèmes parce qu'ils n'avaient pas le choix : l'électronique n'était qu'analogique, soit des "jeunes" qui travaillent encore dans les faibles niveaux mais ils se font de plus en plus rares.

Il faut reconnaître que le numérique simplifie bien la vie.

Mais je vous le dis : méfiez vous la vengeance de l'analogique sera terrible ! J'attends de voir les cartes avec des micro-controleurs tournant à plus de 200MHz d'horloge et qui pour éviter de consommer des ampères ne délivreront que des amplitudes d'un volt ou deux. Ça viendra immanquablement et là les vieux rigoleront très fort (enfin s'ils seront encore capable de faire quelque chose : c'est pas gagné d'avance).

PS : j'ai bien apprécié le complément de B@tto -> c'était clair et à la lecture on sentait qu'il y avait du vécu.

Bonjour,

Je suis d'accord avec ce qui est dit. Sauf que les problèmes numérique à faible fréquence reste du numérique. Mais bien souvent les problèmes numérique à haute fréquence redeviennent des problèmes analogique.

Ne pas oubliez que les composants numérique sont constitué de transistors et de diodes.

On a tellement intégré de composant analogique dans des composants numérique (je penses au convertisseurs qui intègre énorméments d'analogique très pointu) qu'on en oublis qu'ils existent. Sans parler des parasytes à haute fréquence.

Juste une petite suggestion : un ampli op en adaptation d'impédence n'aurait pas pu résoudre le problème? Je me trompe surement, mais on sait jamais.

arf... analogique, numérique, base et haute fréquence me sens un peu largué avec ma résistance à la main lol :grin:

Pour revenir à nos moutons j'ai refait quelque essai et lorsque la luminosité baisse en dessous de 10% environ je me retrouve avec une t° qui diminue de 0.5°C ou qui augmente c'est aléatoire puis ça reviens à la normale après un petit temps environ 10 secondes.

On peu améliorer ça ou c'est déjà pas mal ? (c'est quand même beaucoup mieux qu'avant la t° reviens à la normale alors qu'avant non)

J'ai l'impression qu'il n'y a pas qu'un problème de masse. La mesure d'un paramètre tire sur la batterie d'alimentation, qui perd momentanément un peu en tension, ce qui fausse la tension de référence utilisée par la mesure analogique suivante.

Il faudrait un régulateur stable comme tension de référence pour les mesures analogiques.

Après le domaine analogique vive le domaine numérique : Il faut aussi tenir compte du numériseur de l'ATMega. Le pas de mesure est égal à la tension de référence/1024. Par défaut la référence est la tension d'alim de la carte. C'est soit la valeur fournie par l'USB, soit la valeur fournie par le régulateur 5V quand la carte est alimentée avec une alim extérieure. Pour utiliser une autre tension de référence il faut fournir une tension sur la broche AREF ou utiliser la référence interne du micro (1,1Volt). On peut choisir la source de la tension de référence par programmation.

Conséquence du pas de numérisation : Avec la configuration par défaut le pas de quantification est égal à 5V/1024 = 4,9mV ce qui pour le LM35 correspond à un écart de 0,5°C. Donc il suffit d'une toute petite variation d'un mV par exemple et si tu es à la limite entre 2 pas tu te retrouve du fait de la quantification avec un écart de 5mV.

Pour améliorer la précision il faut diminuer le pas de mesure, donc diminuer la tension de référence. Attention il y a une limite : le micro ne sait pas faire la mesure si la tension a mesurer est supérieure à la tension de référence.

Le choix de la tension de référence se fait par programmation. - Par défaut c'est le Vcc du micro avec la précision de l'USB (+/- 5%) ou du régulateur du micro.(+/- 5%) Pas de mesure : 5V/1024= 4,9 mV - La référence interne au micro qui vaut 1,1V (+/- 10% ). Pas de mesure : 1,1/1024= 1mV - Tension appliquée sur AREF, c'est à toi de la fournir. Note que tu dispose d'une référence externe toute faite avec la sortie du régulateur 3,3V incorporé à la carte. Pas de mesure : 3,3V/1024= 3,2 mV

Remarque : il existe des circuits référence de tension ultra précis, les valeurs les plus courantes sont 1,25 V et 2,5 V.

Il existe aussi d'autre source d'erreur dans la quantification, le mieux est de lire la datasheet du micro.

Pour tout dire là j'utilise un montage avec un ATmega monté seul avec un régulateur 5V un quartz et les condo de découplage le tout est alimenté par un transfo 12V 1500mA.

Je vous rassure dessuite sur ma carte UNO j'avais le même probleme.

Pour la tension de référence c'est donc le 5V, 4,96V exactement du régulateur. Je ne dispose pas du 3,3V.

Pour le pas de mesure avec le lm35 je ne peu pas descendre en dessous de 3,3V sinon il ne réagit plus correctement dans ma gamme de température.

Donc si je comprend bien ce que vous êtes entreint de me dire il faudrait que j'utilise un régulateur fiable et dédier qui me fournira du 3,3V que j'appliquerai sur ma broche Aref (pour diminuer le pas) mais du coût les capteurs devront eux aussi être alimenté par ce 3,3V(pour que le micro puisse traiter l'information correctement).

Si c'est correct ce que j'ai dis précédemment quelle régulateur je peu prend? vous avez une référence en tête.

Après dans mon cas avec les masses recablées comme il faut apparemment ça déconne surtout quand les changements se font rapidement comme si ça tirer trop d'un coût.

Pour le pas de mesure avec le lm35 je ne peu pas descendre en dessous de 3,3V sinon il ne réagit plus correctement dans ma gamme de température.

Ne pas confondre l'alimentation du LM35 et la valeur de la référence de tension pour le convertisseur Analogique/digital ! Le LM35 peut resté alimenté sous 5V, c'est même souhaitable, cela ne changera rien pour lui il donnera toujours 10mV/ d°, ce qui pour 100 °C donnera 1Volt maxi.

[u]Je n'ai pas dit qu'il fallait une référence de tension[/u]. J'ai profité du sujet pour expliquer les sauts de mesure par pas de 0,5°C, et aussi de signaler l'existance des références de tension ultra précises en plus des régulateurs qui sont plus connus mais moins précis. -> note dans ta tête pour le cas où que les références de tension ça existe et qu'on peut changer la référence du CAN.

Par contre si tu as câblé ta carte toi même je t'engage à lire la page 258 de la datasheet de l'ATMega 328p tu verras qu'Atmel indique qu'il ne faut pas relier AVcc directement à Vcc mais par l'intermédiaire d'une inductance de filtrage de 100nH et qu'il faut soigner la masse dans le secteur des entrées digitales. Ça marche sans l'inductance, mais ça marche mieux avec -> l'équipe Arduino a fait l'impasse de cette inductance et a parue surprise quand des utilisateurs le lui ont fait remarquer. Depuis ils l'ajoutent (ex Leonardo) mais toujours incorporée dans la UNO..pour la R4 ?

comme si ça tirer trop d'un coût.

Ca m'étonne vu les faibles variations de courant mais c'est peut être possible. Un régulateur quand on lui demande une variation de courant ne réagit pas instantanément pour rétablir la tension à son point de consigne, il y a donc une légère variation de la tension qui se répercute sur la référence du convertisseur A/D puisqu'il est dans sa position par défaut.

Actions possible: Tu n'as peut être pas assez de valeur de condensateur en sortie du régulateur -> il faut au moins 100µF pour être tranquille. Il faut aussi de la capa à raz de tout les accès Vcc au niveau du boîtier du micro-controleur. N'oublie pas que tu traque le mV. Pour filtrer les brèves impulsions qui bruitent l'alim le 100µF ne sert à rien il n'est utile que pour les bruits basse-fréquence et faire office de réservoir pour lisser les appels de courant. Il faut mettre un 100nF céramique en // (pattes courtes svp) . Il faut aussi quelques 10zaines de µF+100nF en // sur les alims des LM35 et photorésistance. Toujours la même raison : la traque du mV.

Et puis si tu ne dépasse pas 100°C regarde comment passer en référence interne. Car c'est une vraie référence : elle est conçue pour être insensible aux variations de tension d'alimentation.

Et puis si tu ne dépasse pas 100°C regarde comment passer en référence interne. Car c'est une vraie référence : elle est conçue pour être insensible aux variations de tension d'alimentation.

Je n'ai pas compris ce que tu veux dire là.

Pour le découplage autour du boîtier ça c'est ok j'ai des 100nF tantal. Par contre au niveau du régulateur c'est un 7805 je n'ai que 10uF en entrée et sortie + un premier de 100uF avant mon régulateur (découplage de l'alim 12V).

Je vais essayé avec des petit au niveau des capteurs sa sera plus simple pour moi d'intervenir la carte étant deja tt soudée :~

Je n’ai pas compris ce que tu veux dire là.

10 mV / °degrés
100 °C font 10*100 = 1000mV < 1100mV de la référence interne
Donc on peux utiliser la référence interne de 1,1V théorique mais qui selon le lot de fabrication peux varier de 1V à 1,2V (voir page 323 de la datasheet de l’ATMega328)

ok ok

bon avec tout ça je devrais m'en sortir :P

Merci !