Alimentation Arduino par panneaux solaires

Bonjour,

Je suis bloqué sur le choix d'un convertisseur de tension pour alimenter une Atmega328P-PU
Je précise que j'aimerais faire des mesures de courant donc j'ai besoin d'un bonne fiabilité sur la tension de sortie du convertisseur.

Caractéristiques panneau solaire : tension comprise entre 0 et 6.6V ; courant max consommé par le circuit : 500mA

De plus, le système choisis doit être assez robuste (température allant jusqu'à 45°C) et doit tenir au moins 5 ans.

Je pensais opter pour un buck boost converter, puis un régulateur 7805 si je vois que le module a une tolérance trop élevée en sortie.
Connaitriez vous un module (ou directement puce) répondant à mes critères?

*pour le panneau solaire, c'est 8.7V à vide et 6.6V pour une puissance maximale en conditions standards.

Je pensais opter pour un buck boost converter, puis un régulateur 7805

Un convertisseur ne peut pas fonctionner s’il n’y a pas déjà un régulateur de tension interne. Le régulateur externe est inutile.
Le 7805 est une antiquité, il y a maintenant plus performant.

Si c’est pour des mesures analogiques le plus simple est de passer en référence externe et d’utiliser des “sources de tension de référence”. C’est un petit composant pas cher qui aura une meilleure précision qu’un régulateur et qui libère la contrainte sur l’alimentation générale.

Dans l’antiquité de l’électronique on mettait un régulateur en sortie d’un convertisseur car les convertisseurs fonctionnaient à fréquences basses (<1 kHz), les pics de commutations étaient difficiles à filtrer pour avoir une qualité d’alimentation “électronique analogique”.

Maintenant l’électronique est numérique et ne demande plus des alim aussi propres et les convertisseurs hachent à plusieurs MHz rendant le filtrage bien plus simple et bien plus efficace.

Pour la gamme de température :
Circuits intégrés : c’est clair elle est indiquée dans leur datasheet, généralement c’est la gamme -40°C / +85 °C, il existe encore une ancienne norme à +0°C / +70°C.
Autres composants : c’est la grande inconnue avec les modules achetés en Chine.

J’attire ton attention sur la température haute : si l’ensemble est mis en boîtier et au soleil une température interne de +70 ou 80 °C n’est pas exceptionnelle.

*pour le panneau solaire, c’est 8.7V à vide et 6.6V pour une puissance maximale en conditions standards.

Il faut choisir un composant qui accepte cette tension avec une marge.

Regarde sur le blog de hbachetti, il a fait une très bonne étude comparative entre différents convertisseurs.

Un panneau solaire, pour la journée c'est bien, mais pour la nuit ? ? ?
Et si le système fonctionne sans batterie, qu'en est-il de la coupure d'alimentation au coucher du soleil, et du démarrage au lever du soleil ?
On laisse faire la nature ?

Merci! Je ne connaissais pas les sources de tension de référence.

Pour ce qui est du panneau solaire, l'arduino peut très bien s'éteindre la nuit, le problème réside au levé et au couché du soleil puisque si on ne fait rien, l'arduino va séteindre et s'allumer quelque fois.
Pour remédier à cela je pensais mettre une simple zener en aval du convertisseur de tension , ainsi, la diode sera choisie pour qu'elle puisse laisser passer le courant pour une tension de 5V.

Voici ce que je propose : un boost/buck converter pour alimenter l'arduino, une zener en série pour définir un seuil de tension et en parallèle, une source de tension de référence de type série pour alimenter la Pin du CAN de l'arduino. Cela vous semble t il correct?

Je vais en profiter pour poser une autre question: l'arduino est ici utilisée pour une mesure de concentration suite à une électrolyse (avec capteur de courant). Il faut que l'arduino calcul la charge accumulée en solution donc, il doit mémoriser la charge toutes les x min sur son EEProm pour ne pas perdre cette données lors du couché du soleil. Le problème que je rencontre est la récupération de l'adresse des données: j'ai vu que l'arduino pouvais lire/écrire 100 000 fois sur une adresse donc j'aurais voulu que l'arduino puisse changer d'adresse après environ 70 000 cycles. Le problème est que lorsque l'arduino s'éteint et se réveil, il doit savoir à qu'elle adresse aller chercher la donnée charge. J'avais penser à mettre une horloge externe (qui est de toute façon nécessaire) et que tout les x jours, on incrémente l'adresse. Voyez vous d'autres solutions qui ne dépendraient pas d'un composant externe?

Merci d'avance pour vos retours.

bonjour,

pour gérer la coupure de l'alim, tu peux te créer un "ballast" qui permettra un fonctionnement "pendant un certain temps" (comme pour le refroidissement du fût du canon ...) après une détection de perte de l'alim.

explication (à l'arrache) : tu détectes que ton alim est perdue, mais un accu ou un super-condensateur te fournit encore "un peu d'énergie", le temps pour ton système de sauvegarder sur EEPROM (quelques centaines de ms, voire plus, si tu as beaucoup de données à enregistrer).
à toi de trouver une solution adaptée à ton besoin : je l'ai fait dans une bagnole, dans laquelle on trouve un "+ permanent" et un "+ après contact", donc facile ... ton cas est plus exigeant.

pour la sauvegarde sur EEPROM, ouvre un nouveau sujet pour éviter la confusion entre les réponses des différents participants.

Pour en revenir au convertisseur il existe bien des modèles pouvant générer du 5V à partir d'une tension de 3 à plus de 8V, le LM2577 par exemple.

convertisseurs-stepup-stepdown
Voir 2.3. Le LM2577

Je ne pense pas qu'une zener soit capable de résoudre le problème de coupure ou de mise sous tension.
Le problème est la montée et la descente lente de la tension, qui risque malgré le détection brown-out de rincer la FLASH. Une coupure franche est préférable.

Et en plus cela risque d'osciller.

Le panneau solaire fournira 10% de sa tension par temps couvert.
D'autre part entre l'été et l'hiver la plage de fonctionnement risque d'être très différente.

Un système avec batterie + panneau serait peut-être préférable.

Merci !

Le problème est que nous sommes contraints à ne pas utiliser d'accumulateurs à causes des conditions locales (Afrique), du temps de vie minimal de l'installation et des risques de vol.

Le panneau solaire , si je ne me trompe pas, délivrera un certain courant en fonction de l'ensoleillement, ce courant définira une tension en fonction de la résistance du circuit. Ainsi, la zener détecterais lorsqu'un certain seuil de tension sera atteint et enverra cette information à une bascule qui laissera passer entièrement le courant. La tension seuil de la diode zener sera donc calculée en fonction de la consommation minimal du circuit, de la résistance du circuit puisque ces 2 données définissent la tension du panneau solaire de plus ce seuil sera légèrement au dessus du seuil minimal pour l'alimentation pour garantir un fonctionnement de l'arduino si jamais le courant viendrait à légèrement diminuer. Maintenant si un nuage passe à ce moment, on ne peut pas faire grand chose.

La zener sera placée en amont du buck boost et de convertisseur vers la tension de référence.

Que pensez vous de cette solution?

la zener détecterais lorsqu'un certain seuil de tension sera atteint et enverra cette information à une bascule qui laissera passer entièrement le courant.

Un simple comparateur à AOP pourrait faire ce travail. Le problème est que cet AOP devra accepter une tension d'alimentation très basse.
Un MCP6002 pourra être alimenté entre 1.8V et 5.5V.
Mais cela ne résout pas le problème d'oscillation de la tension du panneau aux alentours du point de commutation. Il faudrait le monter en comparateur à hystérésis.

Voici la courbe de variation de la référence interne 1.1V de l'ATMEGA328

Il faut aussi savoir qu'elle est précise à +- 10% et nécessite un étalonnage dans le code.
Il suffit de mesurer sa valeur sur la pin AREF.

Puisqu'on utilise l'arduino pour évaluer la concentration produite lors d'une électrolyse et que cette électrolyse ne produit quelque choses de significatif qu'à partir de 3A, l'arduino n'a pas besoin de se réveillé le plus tôt possible.
De plus, les composants externes à l'arduino fonctionne en 5V donc il faudra de toute façon attendre que la tension soit au minimum de 5V (après convertisseur).
Ainsi, le seuil de tension (donc de courant) pour la bascule peut être beaucoup plus élevé que le seuil minimum que demande l'arduino et les composants externes. Ce qui nous garanti que une fois que la bascule est activé, le courant sera, même si il est décroissant, suffisant pour alimenter le tout , la bascule n'oscillera donc que sur quelques minutes.

Merci pour l'AOP!

la bascule n'oscillera donc que sur quelques minutes.

Un hystérésis garantira que la tension soit établie une seule fois au lever et coucher de soleil.
Par contre le panneau devra être dimensionné pour pouvoir fournir l'énergie même par temps couvert, à moins d'accepter une coupure plus ou moins longue.
Pour 500mA sous 5V cela risque de mener à un panneau de 25W.

Merci pour l'hystérésis, c'est parfaitement ce que je recherchais!

L'AOP peut commuter l'alimentation avec un PMOSFET :

Le MOSFET se commande avec un 0V.

Un choix en CMS ou traversant :
mosfets-de-puissance
MOSFETs canal P : Voir en bas de la table.

Choisir de préférence un MOSFET Logic Level (en vert).

Et comment puis je diminuer la tension de sortie des panneaux solaires pour que Vseuil alimentation + epsilon(tolérance) = masse de l'AOP? en gros pour que quand le panneaux solaire applique une tension = Vseuil alimentation + epsilon (le seuil dont je parlais précédemment), alors la tension d'entrée de l'AOP = 0V

On pourrait y arriver avec un simple pont diviseur pour alimenter l'AOP mais le problème c'est que la tension d'alimentation de l'AOP vient du panneau solaire et est donc variable la masse n'est pas constante donc il sera impossible d'avoir des tensions négatives à l'entrée de l'AOP.

Je reviens finalement à l'idée d'une petite batterie qui pourrait faire l'affaire si il est possible de la garder au moins 7 ans (je vais aller voir les durées de vie des batteries dans ce cas).

Un MCP6002 s'alimente en single rail, donc entre GND et +Vpanneau.

Une zener (imaginons 2.7V) peut être utilisée comme tension de référence pour l'AOP et la seconde entrée polarisée par un pont diviseur calculé pour fournir 2.7V quand la tension panneau dépasse une certaine valeur.

Par contre j'ai un problème. L'AOP va mesurer la tension panneau à vide. Quand il va commuter l'alimentation la tension va chuter.
Il faudrait charger le panneau avec une résistance qui consomme autant que le montage.
Ça commence à faire usine à gaz.

Batterie : oui, ce serait beaucoup plus simple.
Le montage peut être mis en veille profonde la nuit, afin de consommer le minimum.
L'ATMEGA328 peut surveiller la tension du panneau régulièrement pour savoir s'il fait jour ou pas.
Un module TP4056 peut se charger de la recharge de la batterie (attention maxi 8V sur son entrée).

2 zener en opposition pour le cas du panneau à vide cela pourrait -il fonctionner?

Pour les batteries, je viens encore de regarder et c'est vraiment pas possible pour le combo températures élevées / nécessité de longues durées de vie.

Je ne comprends pas bien le problème lors de la commutation, l'AOP augmente la résistance du circuit c'est bien ça? parce que si c'est ça, en parallèle de ce système, il r

*il reste l'électrolyse qui utilise de la tension

Si le panneau est chargé par l'électrolyse, dans ce cas pas de problème.