Un Arduino ca chauffe

Bonjour à tous
Apres avoir été dépanner de mes problemes de linkage j'ai fait tourner mon arduino comme serveur wouaib. Tout avait l'air de bien fonctionner en partant de chez moi ce matin mais, quand j'ai voulu l'atteindre au boulot il ne repndait pas. J'ai cru que j'avais merdoyer ave mon dns et mon Fw mais non. En rentrant ce soir, il n'etait pas atteignalbe de la maison non plus... La carte semblait etre tres chaude et apres un arret/relance c'est repartis. Sur la page de temperature (tiré d'un article du blog de Skywoddhttp://skyduino.wordpress.com/2012/05/22/arduino-connaitre-la-temperature-ambiante-sans-capteur-de-temperature/) ca affichait 49°. Bon c'est vrai qu'avec le shield ethernet dessus ca doit pas tres bien respirer.. Je metrrais un ventilo en fin de semaine.
Et puis j'ai pas fais gaffe mais mon alim est peut etre trop puissante...
Petites questions:
Comment bien etaloner le calcul de temperature compte tenu que les composants installés sur la carte peuvent varié? Plus precisement que mes 49° affichés soient reels.
Existe t il une primitive qui puisse (avec le calcul de temperature), "deconnecter" l'arduino avant qu'il ne crame?
Serge

Salut

  1. Une alim ne peut pas etre trop puissante mais eventuellement trop haute en tension ce qui fait que le régulateur en entrée d'Arduino va beaucoup chauffer pour baisser la tension. Le mieux étant un alim entre 6.5 et 7.5V pour limiter

  2. Le régulateur est aussi limité dans le courant qu'il va laisser passer.
    Donc il faut t'assurer que l'ensemble arduino + shield + le reste ne consomme pas plus d'environ 1A.

  3. Mais peut etre faut-il commencer par vérifier quel composant chauffe.
    En effet 49'C pour un temperature du "die" silicium ce n'est pas exessif. A vérifier dans la datasheet (pas sous la main) mais ca devrait pouvoir monter a plus (vers 70'C je pense).

A+

Je comprends. J'ai juste peur que le calcul de temperature ne soit pas vraiment exact et que je sois aux environs des 70° ce qui expliquerait le blockage du serveur.
Mon alim est en 12v. Je vais en trouver une de tension moins elevé.
Serge

Même soucis avec mon serveur web qui était alimenté en 12V... j'ai dû passer en 9V et après plus aucun soucis de chaufe :wink:

Spec ATMega :
Temperature range : -40°C / +85°C
-> Ce sont des valeurs de température ambiante, dans ton cas la température ambiante n'est que de 20/25°C.
La température réelle de la puce (die) est beaucoup plus élevée, avec un boîtier en ambiance à +85°C la puce est sûrement plus de 120°C.
Pour un circuit élémentaire, comme un transistor isolé, la température de la jonction peut atteindre +170°C ! !

Attention même si la température moyenne de la puce est correcte le micro peut mal fonctionner si en des points précis de la puce il y a des valeurs de température anormalement élevées. Il faut bien respecter les conditions de courants max : par sortie, par port , en mode source ou en mode sink (voir datasheet page 313 et suivantes).

Important: Régulateur 5V interne -> oubliez la duemilanove et son gros régulateur :
Depuis la UNO R2, par mesure de réduction de coûts, le boiter du régulateur 5V a été dégradé (plus petit boîtier qui peut moins évacuer la chaleur) par conséquent le régulateur interne à la carte est moins performant.

Si baisser la tension de l'alimentation à 7V ne suffit pas il faudra passer par une régulation externe (7805 en gros boîtier TO220 au minimum).

Salut,

Tu alimente ton montage avec une alimentation du commerce ?
Si oui c'est une alimentation fixe ou réglable ?
Quelle tension de sortie ?

Concernant la shield, 50°C ne m'as pas l'air plus excessif que ça.
Le chipset W5100 a une vilaine tendance à chauffer (je sait pas pourquoi).
Par contre que la shield plante ça c'est pas normal !

J'ai souvent trouvé que mes montages arduino + shield ethernet avaient tendance à chauffer.
C'est pourquoi j'ai mis un petit ventilateur 5v avec un radiateur pour chipset sur le W5100.
Mais normalement la shield devrait supporter son propre échauffement ... ya un truc pas nette non ?

Si c'est un bête transfo qui alimente ton système, il sort plutôt du 15 / 18V que du 12, d'où l'invention des régulateurs. J'imagine que le régulateur de l'adrduino s'est mis en protection, et qu'il suffit de faire un OFF/ON pour le relancer...

Hello,
J'ai changé plusieurs choses:
J'ai mis ce matin l'arduino a la verticale. J'ai controlé la temperature et j'ai perdu 5° et ca n'a pas planté.
Ce soir j'ai changé l'alim. Elle fournit du 9v. J'ai controlé la temperature et ca affiche maintenant 38° .. Et ca marche toujours!

Reste que je ne sais toujours pas etalonner la sonde sur l'arduino. Pas la moindre idee de comment faire: je connais uniquement la temp dans mon congelo.... Est ce qu'aligner la temperature de l'arduino (off) en le mettant au congé ca a un sens? :fearful:

Et savez vous comment arreter l'arduino (shutdown) de façon soft? ]:smiley:

Avant d'incriminer le micro-controleur as-tu vérifié les valeurs de toutes les tensions à froid et à chaud ?
C'est des mesures basiques qui peuvent permettre d'y voir plus clair.

La méthode pour mesurer la température interne du micro-controleur a été conçue par Atmel, pour contrôler la température de ses puces en fabrication c'est pourqoi elle est un peu condidentielle. Si elle donnait des résultats faux cela se saurait.

Quel est l'élément qui décroche : la carte arduino ou la carte ethernet ?
Tant le micro-controleur que le W5100 sont garantis en gamme industrielle -40/+85 °C c'est à dire que alimenté normalement et placé dans de l'air à +85°C les deux circuits doivent continuer à fonctionner.
Cela m'étonnerait que la tranche d'air entre la carte arduino et la carte ethernet soit à plus de 85°C. Ce sont des conditions que l'on trouve uniquement en environnement industriel dans des grands bâtis contenant un très grand nombre de cartes

Par contre très souvent les non fonctionnements en fonction de la température sont des révélateurs de mauvaises soudures.
Un examen des soudures à la loupe serait sans doute utile.

Mettre en sommeil le micro-controleur est possible, tous les renseignements sont dans la datasheet.
Il existe plusieurs niveaux de sommeil, maintenant il faut chercher pour voir s'il en existe un qui autorise l'accès à la mesure de la température interne. Mais encore une fois je ne chercherais pas un défaut de ce coté.

gerse:
Reste que je ne sais toujours pas etalonner la sonde sur l'arduino. Pas la moindre idee de comment faire: je connais uniquement la temp dans mon congelo.... Est ce qu'aligner la temperature de l'arduino (off) en le mettant au congé ca a un sens? :fearful:

Théoriquement tu n'as pas à étalonner la sonde de température interne.
Mais si tu veut vraiment l'étalonner, prend un thermomètre de précision (infrarouge), regarde la température du corps du micro et compare là avec ce que te donne mon programme de relevé de température.
Ensuite il faudra modifier le calcul pour prendre en compte cette différence.

gerse:
Et savez vous comment arreter l'arduino (shutdown) de façon soft? ]:smiley:

Utilise l'api "sleep" de la avr-libc elle est faite pour ça :wink:
http://www.nongnu.org/avr-libc/user-manual/group__avr__sleep.html
Par contre il faut une interruption pour réveiller le CPU par la suite.

1 Like

Mais si tu veut vraiment l'étalonner, prend un thermomètre de précision (infrarouge), regarde la température du corps du micro et compare là avec ce que te donne mon programme de relevé de température.
Ensuite il faudra modifier le calcul pour prendre en compte cette différence.

Je ne connais pas le schéma intilisé par Atmell mais cela ne doit pas être trés différent de la mesure d'une tension aux bormes d'une diode test alimentée avec un courant constant. Mesurer la température du boîtier ne servira à rien tant qu'on ne connait pas la résistance thermique entre le circuit de monitoring de la température et le boitier.
La température que donne la sonde interne est "interne", elle n'est pas forcément exacte au degrés prés mais elle est représentative de la température de la puce de silicium et pas du tout de celle du boîtier.

Encore une fois le circuit intégré est prévu pour fonctionner dans de l'air à +85°C. Les conditions en milieu industriel sont autrement plus sévères que celle en utilisation personnelle.
Ce n'est pas les malheureux 40°C qui vont le déranger !

Par contre une soudure sèche où la patte d'un composant est juste collée sur la plage de soudure, là oui passer de +20°C à +40°C cela peut faire quelque chose du fait des dilatations thermiques qui rompent le fragile contact.

Salut
Pour la température de l'atmega c'est expliqué là : Chip temperature measurement

chabot380

Merci à tous pour toutes ces infos
Je vais analyser tout ca ce we.
Cela fait maintenant + de 48h que mon server tourne sans pb
C'est vrai que je n'ai pas pensé que le pb pouvait venir du shield ou du regulateur.... Neanmoins, je reste persuadé que j'ai bien eu un pb de temperature... A l'origine de ce post, L'arduino etait fixé sur une platine en plastique (il y a mieux comme disipateur!) posé sur ma box (qui a tendance a chauffer mais pas 85°).
Je n'ai pas l'impression d'avoir des pb de soudure sur l'arduino ou le shield mais, je ne suis pas un specialiste.
je vais tenter d'installer un petit ventilo qui se declenche à une temperature.... Au moins pour le fun car je ne suis pas certain que le flux d'air generé puisse etre envoyé là ou il le faut ...probablement le regulateur...sinon je mettrais du sucre ca fera une barbe à papa :grin:

C'est vrai que je n'ai pas pensé que le pb pouvait venir du shield ou du regulateur.

Pour être honnête, à moins de faire cracher le courant maximum sur toutes les sorties du processeur il n'y a aucune raison pour qu'il se mette à chauffer.
Sur la carte Arduino et dans les conditions où tu la faisais travailler (alimentation 12V en entrée) c'est sans doute le régulateur qui dissipait le plus de puissance. C'est plutôt sur ce composant qu'il faut travailler. C'est d'ailleurs sans doute lui qui est parti en protection thermique.
En abaissant le tension d'alimentation de 12V à 9V tu as diminuée la puissance dissipée dans le régulateur de moitié (environ).

fdufnews:
C'est d'ailleurs sans doute lui qui est parti en protection thermique.
En abaissant le tension d'alimentation de 12V à 9V tu as diminuée la puissance dissipée dans le régulateur de moitié (environ).

Soit le régulateur de l'arduino, soit celui de la shield ethernet (il sont en parallèle en plus).

12v c'est beaucoup trop, surtout si c'est un bloc secteur du commerce qui sort généralement plus du 15v en position 12v ...
L'idéal c'est ~8v en VIN, juste ce qui faut pour que le régulateur fonctionne sans avoir à dissiper quoi que ce soit.