Anthias
mail

c

Arduino small battery capacity tester V3.21 ( 2A maximum)


Testeur de capacité de petites batteries V3.21
( 2A maximum)

0303


English note
New circuit and new diagram V3.21
A complete different way to do
The Titanic
New PWM checking tool
Conclusion eng


French note
Nouveau circuit et nouveau schéma V3.21
Une toute autre façon de faire
Nouvel outil de vérification PWM
Le Titanic
Conclusion fr


Maj : 04/09/2024

Abstract :

This page documents the evolution of a project that is not my own, originally found on an Instructables page.
My contributions consist of a few modest enhancements, while also highlighting the constraints of this exercise.
The following chapters demonstrate how even a very simple diagram can raise numerous questions when examined in detail.

 

Résumé :

Cette page retrace l'évolution d'un projet que je n'ai pas initié, découvert sur Instructables.
J'y ai apporté quelques améliorations, en mettant en avant les limites de l'exercice.
Les chapitres suivants montrent qu'un schéma apparemment très simple peut soulever de nombreuses questions lorsqu'on s'attarde sur les détails.

arduino  Page in : Arduino Battery Capacity Tester V3.21

Original realisation is taken here: Version-2.0  
https://www.instructables.com/DIY-Arduino-Battery-Capacity-Tester-V20
by deba168,INDIA
The initial code is taken from Hesam Moshiri: https://www.pcbway.com/blog/technology/Battery_capacity_measurement_using_Arduino.html
I made some modifications with a cutter on the original circuit, then a new design of the firmware and the board

 
Version-3.21 fork by Christian Couderc

My improvements:
This original work is astucious, but needs some minor adjustments:
_ Adapted for dual colors (first line yellow) displays and new texts placements
_ Adapted for loud speaker in place of buzzer, various sounds
_ Accuracy of current is about 1 for 1000
_ Better accuracy of time during dischage
_ Various bugs corrected
_ ...

 

Important minimal hardware modifications on initial board Open Green Energy:
1) Cut input of supply jack --> 12 V supply (not critical, 8 to 16) on Vin nano AND pin 8 LM358 (in place of original 5V removed)
(LM358 is not rail to rail and can't output the 4.86 V needed on gate for a 1 A current! (very critical !)
The total consumption in 12 V is about 25 mA
2) Take output 5V from Nano to Oled AND 1.2V ref, with 33 kOhms (in place of led near jack)
3) Place a wire to send 1.2 V on A1
4) up/down buttons resistors not needed, input pul-lup forced now in instantiation
5) C4 C5 capacitors not needed...


This original diagram of V2 is so simple that printed circuit board is not necessary, you can use a bare board with holes

arduino  Page en : Testeur de capacités de batteries V3.21

La réalisation originale est prise ici : Version-2.0
https://www.instructables.com/DIY-Arduino-Battery-Capacity-Tester-V20 par deba168,INDE
Le code initial est tiré de Hesam Moshiri : https://www.pcbway.com/blog/technology/Battery_capacity_measurement_using_Arduino.html
J'ai fait quelques modifications avec un cutter sur le circuit original, puis un nouveau design du firmware et de la carte


Version-3.21 fork by Christian Couderc
 
Mes améliorations
 Ce travail original est astucieux, mais nécessite quelques ajustements mineurs :
_ Adapté aux affichages bicolores (première ligne jaune) et aux nouveaux placements de textes
_ Adapté pour haut-parleur à la place du buzzer, divers sons
_ La précision du courant est d'environ 1 pour 1000
_ Meilleure précision du temps lors du déchargement
_ Divers bugs corrigés
_ ...

 

Modifications matérielles importantes ide la carte initiale Open Green Energy:
1) Couper l'entrée de la prise d'alimentation --> alimentation 12 V (non critique, 8 à 16) sur Vin nano ET broche 8 LM358 (à la place du 5V d'origine supprimé) (LM358 n'est pas rail à rail et ne peut pas fournir les 4,86 V nécessaires sur la grille pour un courant de 1 A ! (très critique !)
La consommation totale en 12 V est d'environ 25 mA
2) Prendre la sortie 5V de Nano vers Oled ET 1.2V ref, avec 33 kOhms (à la place de la led près de la prise)
3) Placer un fil pour envoyer 1,2 V sur A1
4) les résistances des boutons haut/bas ne sont pas nécessaires, le pullup d'entrée est maintenant forcé dans l'instanciation
5) Condensateurs C4 C5 inutiles...


Le schéma original de la V2 est si simple que le circuit imprimé n'est pas nécessaire, vous pouvez utiliser une carte nue avec des trous

   

Date and time are the moment of compilation
La date et l'heure sont le moment de la compilation

Software adustments in first next lines:
Fine adjust of values of 1.2V and R (about 1 Ohm, exemple 1.012) in firmware


Tip to control current:
Don’t use a serial ammeter, but read voltage on the 1 Ohm resistor (I=V/R) (You know exactly the real value about 1 Ohm)

Some measurements on the MosFet gate
Variable power supply instead of LM358, MosFet in the instable mode, as variable resistor.

Ajustements logiciels dans les premières lignes suivantes :
Ajustement fin des valeurs de 1.2V et R (environ 1 Ohm, exemple 1.012) dans le firmware


Astuce pour contrôler le courant :
N'utilisez pas d'ampèremètre en série, mais lisez la tension sur la résistance de 1 Ohm (I=V/R). (vous connaissez exactement la valeur réelle d'environ 1 Ohm)

Quelques mesures sur la gate du MosFet
Alimentation variable à la place du LM358, MosFet dans le mode instable, en résistance variable
3.59V -> 0.1A ___ 3.8V -> 0.2A ___ 4.21V -> .5A ___ 4.86V -> 1A 5.9 V-> 2A

Big radiator

It is necessary to use a big radiator because the MosFet is not used classicaly in commutation with its very low RDSon and very low dissipation, but as a power transitor!
It is specified as "Logic Level", i.e. all or nothing operation:
Let VGate/Source > 6 V = Source Drain equivalent to a short-circuit, maximum current without heating
Let VGate/Source < 2 V = Open circuit, zero current
But it works here in its unstable tipping zone, like a variable resistor that dissipates a lot of power as heat.
If the current is adjusted to 1 Amp, on 1 Ohm resistor dissipation is 1 Watt at 1 Volt.

With a battery of 4 V, it is necessary to dissipate a power of P=V*I = (4-1) * 1 = 3 Watts, three times more than on the resistor, and the radiator is very hot…

Remarks on this MOSFet:
Model of MosFet (IRLZ44NPBF) is critical on first version, don't use an IRLF44 on old card.
This is a very bad choice, because it’s a TTL model designed for commutation, not at all to works in this range around 5 V, in toaster mode, but in saturation mode On/Off!

Other voltages:
If you need to test in discharge 7.2V or 12 V batteries, it is possible with a bridge on A0, but only in commutation mode with pulsed current to avoid MOSFet burning in continuous dissipation.


With a 12 V battery, 11 V remains to be dissipated on the MOSFET as a pass transistor, i.e. 11 watt (see V3xx)

 


Gros radiateur

Il faut utiliser un gros radiateur car le MosFet n'est pas utilisé classiquement en commutation avec son très faible RDSon et sa très faible dissipation, mais en tant que transistor de puissance !
Il est spécifié comme "Logic Level", c'est à dire fonctionnement en tout ou rien:
Soit VGate  Source > 6 V = Source Drain équivalente à un court-circuit, courant maximum sans échauffement
Soit VGate  Source < 2 V = Circuit ouvert, courant nul
Mais il fonctionne ici dans sa zone instable de basculement, comme une résistance variable qui dissipe beaucoup de puissance  sous forme de chaleur.
Si le courant est ajusté à 1 Amp, sur 1 Ohm la dissipation de la résistance est de 1 Watt à 1 Volt.

Avec une batterie de 4 V, il faut dissiper une puissance de P=V*I = (4-1) * 1 = 3 Watts, trois fois plus que sur la résistance, et le radiateur est très chaud…

Remarque sur ce MOSFet :
Le modèle de MosFet (IRLZ44NPBF) est critique, n'utilisez pas d'IRLF44 sur l'ancienne carte.
C'est un très mauvais choix, car c'est un modèle TTL conçu pour la commutation, pas du tout pour travailler dans cette plage autour de 5 V, en mode grille-pain, mais en mode saturation On/Off !

Autres tensions :
Si vous avez besoin de tester en décharge des batteries 7.2V ou 12V, c'est possible avec un pont sur A0, mais uniquement en mode commutation avec courant pulsé pour éviter que le MOSFet ne brûle en dissipation continue.

Avec une batterie 12 V, 11 V restent à dissiper sur le MosFet en transistor de puissance soit 11 W.

 

Good practices to test battery:
1) Full charge the battery with a good device.
2) Wait 24 hours to stabilise electrochimics exchanges and temperature
3) Start discharge.
A good value of current gives 2 or 3 hours, with a 18650 at C/2 or C/3 = 1 A, less on smallerones.

Real battery voltage (charging or discharging)
The correct voltage value is the one with current!
Example: The discharge cuts off at 2.8 V, immediately, without current, the voltage rises to 3.5 V, but the actual value is 2.8 V on charge. The battery is empty.
It means the battery internal resistance is R = V/I = (3.5-2.8)/1=0.7 Ohms, wrong value for bad 18650 battery.
Another way to estimate internal resistance: With a fully charged battery, make a brief short circuit (risk of explosion) with a large caliber ammeter (eg 40A, with big wires, very low resistance!).
The current is not infinite, but about 6 amps.
This means the internal resistance is approximately R = V/I = 4/6 = 0.7 Ohms (ammeter resistance is negligible).
In the same way, as soon as you start to discharge, the tension collapses.

Note on filtering:
This version uses a time-weighted filter explained here:
Filtrage par pondération temporelle

Remarks on Oleds:
There are differents kinds of displays!
1) Some are monochroms, others has a colored band on top
2) Some have 10 kOhms resistors on SDA SCL, others not (you must add then)
3) More critical, some have Ground and Vcc inverted, verify…

12 V supply:
Don't forget to plug 12V, it is not accurate to use only the supply or USB. Oled is ligthed when a battery alone is connected, due to parasitic current by A0, but it is not at all sufficient to power the system.

 

Accuracy of readings
Why with a same battery charged many times with the good protocol, and temperature and all parameters constants, results are differents?
It is normal to read values +/- 20%, chemistery exchanges are important in the battery and capacity fluctuate between cycles, so ultra precision in the settings is not very important, it’s only for the beauty of conception.

 

Problem on some batteries
Take a look on this Excel curve of discharging a 18650 at big current (3A).
About minute 15, there is a big jump in the curve. It's not a bug of the firmware (checked 3 times), but a defect of the battery, a chimical internal artefact with gaz production at this moment.
This battery is dangerous and must be recycled, but it you read only the final result, you can't see anything and seems good!
It's for this reason that it is necessary to add a µSDCard to record the curve in Excel format.

Bonnes pratiques pour tester une batterie:
1) Chargez à fond la batterie avec un bon appareil.
2) Attendre 24 heures pour stabiliser les échanges électrochimiques et la température
3) Commencer la décharge.
Une bonne valeur de courant donne 2 à 3 heures, avec une 18650 à C/2 ou C/3 = 1 A, moins sur les plus petits.

Tension réelle de la batterie (en charge ou décharge)
La bonne valeur de tension est celle avec courant !
Exemple : La décharge se coupe à 2,8 V, immédiatement, sans courant, la tension monte à 3,5 V, mais la valeur réelle est de 2,8 V en charge. La batterie est vide.
Cela signifie que la résistance interne de la batterie est R = V/I = (3.5-2.8)/1 = 0.7 Ohms, mauvaise valeur pour une mauvaise batterie 18650.
Autre façon d'estimer la résistance interne : Avec une batterie complètement chargée, faites un bref court-circuit (risque d'explosion) avec un ampèremètre de gros calibre (par exemple 40A, avec de gros fils, très faible résistance !).
Le courant n'est pas infini, mais d'environ 6 ampères.
Cela signifie que la résistance interne est d'environ R = V/I = 4/6 = 0,7 Ohms (la résistance de l'ampèremètre est négligeable).
De la même manière, dés que vous commencez à décharger, la tension s'écroule.

Note sur le filtrage
Cette version utilise un filtre à pondération temporelle dont vous trouverez l'explication ici :
Filtrage par pondération temporelle

Remarques sur les Oled
Il existe différents types d'affichages !
1) Certains sont monochromes, d'autres ont une bande colorée sur le dessus
2) Certains ont des résistances de 10 kOhms sur SDA SCL, d'autres non (il faut alors rajouter)>
3) Plus critique, certains ont Ground et Vcc inversés, vérifiez…

Alimentation 12V
N'oubliez pas de brancher le 12V, il n'est pas suffisant de n'utiliser que l'alimentation par l'USB. L'Oled s'allume lorsqu'une batterie seule est connectée, à cause du courant parasite par A0, mais ce n'est pas du tout suffisant pour alimenter le système.

Fidelité des lectures
Pourquoi avec une même batterie chargée plusieurs fois avec le bon protocole, température et tous les paramètres constants, les résultats sont différents ?
Il est normal de lire des valeurs +/- 20%, les échanges chimiques sont importants dans la batterie et la capacité fluctue entre les cycles, donc l'ultra précision dans les réglages n'est pas très importante, c'est uniquement pour la beauté de la conception.

 

Problème sur certaines batteries
Jetez un oeil sur cette courbe Excel de décharge d'une 18650 à gros courant (3A).Vers la minute 15, il y a un grand saut dans la courbe.Ce n'est pas un bug du firmware (vérifié 3 fois), mais un défaut de la batterie, un artefact chimique interne avec production de gaz à ce moment.
Cette pile est dangereuse et doit être recyclée, mais si vous ne lisez que le résultat final, vous ne voyez rien et tout semble bon !
C'est pour cette raison qu'il est nécessaire d'ajouter une µSDCard pour enregistrer la courbe au format Excel.

arduino  New circuit and new diagram V3.21

We have seen that for a current of 1A, Vgate is close to the 5V of the Nano supply, it is impossible even to increase the PWM pulse, to obtain more current, but there are other solutions to increase this maximum current!

With VGate about 5 V (maximum possible with this wiring), current is 1 A,
but with 5.9 V it jumps to 2A. Check it by removing LM358 with a variable supply on pin 1.
The only modification to be made is to use the second amplifier with a gain of 6V/5V = 1.2 between pin 1 and the gate.
Gain of the non inverter amplifier is G=1+R2/R1
For instance (not critical) R2 = 10 kOhms, R1= 51 (or 33 kOhms
Now adding new steps in PWM list solve this limits problem.
It’s hot, but works well.

Your radiator is big? Replace by a larger...
Now the resistor dissipate 2W, it’s better to take a 5 W

Why is a so stronger current needed?

On a batch of several tenths of batteries to be tested,
the average capacities of 18650 are around 2Ah,
i.e. you have to wait around 2 hours for each.
At 2A, the time is about 1 hour, you double your productivity.

Influence of the discharge current on the capacity.

Of course, by increasing the discharge current, the recorded capacitance is reduced a little, but this is not a problem, we make relative measurements, not absolute ones.

Another advantage of the high current, you more easily detects faulty ones which have too high an internal resistance.
In your shoebox full of batteries, you must make a selection after checking
 10% is mysteriously very good, above the stated overshoot value
 30% is good for current use, capacity at 2A is about the same as at 1A
 30% are poor, reserved for non-critical functions, at 2 A the discharge stops very quickly
 30% goes in the trash to be recycled.

arduino  Nouveau circuit et nouveau schéma V3.21

Nous avons vu que pour un courant de 1 A, VGate est proche des 5V de la sortie Nano, il est impossible même en augmentant la période PWM, d'obtenir plus de courant, mais il existe d'autres solutions pour augmenter ce courant maximum!

Avec VGate à environ 5 V (maximum possible avec ce câblage), le courant est de 1 A,
mais avec 5,9 V il grimpe à 2A. Vérifiez-le en enlevant le LM358 avec une alimentation variable sur la broche 1. La seule modification à apporter est d'utiliser le deuxième amplificateur avec un gain de 6V/5V = 1.2 entre la broche 1 et la grille. Le gain de l'amplificateur non inverseur est G=1+R2/R1. Par exemple (pas critique) R2 = 10 kOhms, R1= 51 (ou 33) kOhms
Maintenant, l'ajout de nouveaux pas dans la table PWM résout ce problème de limites. C'est chaud, mais ça marche bien.

Votre radiateur est grand ? Remplacer le par un plus grand... Maintenant la résistance dissipe 2W, mieux vaut prendre un 5 W

Pourquoi un plus fort courant est-il nécessaire ?

Sur un lot de plusieurs dizaimes de batteries à tester,
les capacités moyennes sont d'environ 2Ah pour de bonnes 18650,
c'est-à-dire qu'il faut attendre environ 2h pour chacune.
A 2A, le temps est d'environ 1 heure, vous doublez votre productivité.

Influence du courant de décharge sur la capacité.

Bien sûr, en augmentant le courant de décharge, on diminue un peu la capacité enregistrée, mais ce n'est pas gênant, on fait des mesures relatives, pas absolues.

Autre avantage du courant fort, vous détectez plus facilement les éléments défectueux qui ont une résistance interne trop élevée.
Dans votre boite à chaussures pleine de cellules, vous devez faire une sélection après vérifications
 10 % sont mystérieusement très bons, au-dessus de la valeur nominale indiquée
 30 % sont bons pour une utilisation actuelle, la capacité à 2A est à peu près la même qu'à 1A
 30% sont médiocres, réservés aux fonctions non critiques, à 2 A la décharge s'arrête très vite
 30% va à la poubelle pour être recyclés

 Haut de page

 Houghts on this above schematic

The new card measures 3925*3150 mil or 10*8 cm (width * height).
The 4x20 LCD display has a hole pattern of 3705*2191 mil, i.e. 93*55 mm.
It is superimposed above the card, on the holes placed, in the absence of the OLED.
There is no reservation for the graphics cards, because there are too many formats, it will be necessary to use an intermediate plate fixed on the columns of the 4x20.

Security on the power supply
Using a small N Mosfet gives a perfect security if the polarity is inverted and avoids a fuse and reverse diode. Any kind of cheap one is good, current of 25 mA is very low.
You can also check a P channel on positive line.
If you prefer the simplest way, replace resistor R12V by a diode and solder the small configurator to short circuit DS of the mosfet.

 

Bridge on supply
Because the system can’t works only supplied by the battery alone or USB even if the displays and the Nano seems to works, but supply is too low for the amplifier.
A bridge (47 kOhms / 10 kOhms) is wired on supply, 12V -> 2V on A2. After a reset a message is flashing if the supply is missing.
If you don’t need it, replace true by false < #define supplyOn true> on first lines of firmware.
On V3 card, low pass RA0+CA0 on A0 correct the problem of power return on A0.

 Réflexions sur le schéma ci-dessus

La nouvelle carte mesure 3925*3150 mil soit 10*8 cm (largeur * hauteur).
L’afficheur LCD 4x20 a un perçage 3705* 2191 mil soit 93*55 mm.
Il se superpose au- dessus de la carte, sur les trous placés, en l’absence de l’Oled.
Il n’y a pas de réservation pour les cartes graphiques, car il existe de trop nombreux formats, il faudra utiliser une plaque intermédiaire fixée sur les colonnettes du 4x20.

Sécurité sur l'alimentation
L'utilisation d'un petit Mosfet N donne une sécurité parfaite si la polarité est inversée et évite un fusible et une diode inverse. Tout type bon marché est bon, le courant de 25 mA est très faible .
Vous pouvez aussi tester un canal P sur la ligne positive.
Si vous préférez la manière la plus simple, remplacez la résistance R12V par une diode et soudez le petit configurateur pour court-circuiter DS du mosfet.

 

Pont sur l'alimentation
Parce que le système ne peut pas fonctionner uniquement alimenté par la batterie seule ou l’USB même si les écrans et le Nano semblent fonctionner, mais l'alimentation est trop faible pour l'amplificateur.
Un pont (47 kOhms / 10 kOhms) est câblé sur l'alimentation, 12V -> 2V sur A2. Après une réinitialisation, un message clignote si l'alimentation est manquante.
Si vous n'en avez pas besoin, remplacez true par false < #define supplyOn true> sur les premières lignes du firmware.
Sur la carte V3, le passe-bas RA0+CA0 sur A0 corrige le problème de retour de puissance sur A0.

 

These new cards are available, call me if you need them.

Ces nouvelles cartes sont disponibles, appelez-moi si vous en avez besoin.

 

Design corrected

To correct the mistakes of feb22 card, I have repaired the Eagle file,
this is the no bug (?) version mar22, but it is not in production because evolution is with the universal ESP32 board.

Note the difference, it is possible to use the alternative pulse mode described upper,
choosing configuration on SO1.

Design corrigé

Pour corriger les erreurs de la carte feb22, j'ai réparé le fichier Eagle, c'est la version no bug (?) mar22, mais pas en production car l'évolution se fait avec la carte universelle ESP32.

Notez la différence, il est possible d'utiliser le mode d'impulsion alternatif décrit ci-dessus,
en choisissant la configuration sur SO1.

Watch out for the trap
A2 is connected to the 12V supply by a 47 kOhms and grounded by a 10 kOhms.
With this 1/6 bridge, and 12V in power supply, we have about 2.1V on A2
But it is not that simple:
If no 12 V is connected, but only a 18650 at 4V ready to discharge, the Nano is on and the voltage on A2 is 0.47V (only on old board, corrected in this V3)
If no 12V is connected but a USB to PC cable, the Nano is on and the voltage on A2 is 0.77V
You don't read 0V on A2 as expected, because there is a parasitic internal diode current in the Nano which reinjects the 5V USB on the Vin input not connected.
So if you want to read supply voltages as low as 8V, the A2 voltage will be around 1.4V, that's enough to make a difference with no supply close to 1V on A2.
On the other hand, 18V gives 3.2 V, good security for the Nano input (max Vcc 5V)
The value read on A2 is:
8V -> 290
12V -> 436 Voltage on A2 = 2.13 V = 436 *4.933/1024
18V -> 656
For the record, on reference A1 with 1.214 V, we read 252
We found 1.241*1024/252= 4.933, our conversion reference
So to know if a power supply is properly connected,
just read the value on A2 which is greater than 290 (=8 V).

Of course, it is easy to by-pass this problem, feeding Vin with a diode, but it is not important for this application.

Attention au piège
A2 est relié à l'alimentation 12V par une 47 kOhms et mis à la masse par un 10 kOhms.
Avec ce pont 1/6, et 12V en alimentation, on a environ 2,1V sur A2
Mais ce n'est pas si simple :
Si aucun 12 V n'est branché, mais seulement une 18650 à 4V prête à se décharger, la Nano est allumée et la tension sur A2 est de 0.47V (uniquement sur l'ancienne carte, corrigé dans cette V3)
Si aucun 12 V n'est connecté mais un câble USB vers PC, la Nano est allumée et la tension sur A2 est de 0,77 V
Vous ne lisez pas 0V sur A2 comme prévu, il y a un courant de diode interne parasite dans la Nano qui réinjecte le 5V USB sur l'entrée Vin en l'air.
Donc, si vous voulez lire des tensions d'alimentation aussi basses que 8V, la tension A2 sera d'environ 1,4V, cela suffit pour faire la différence sans alimentation proche de 1V sur A2.
Par contre, 18V donne 3,2 V, bonne sécurité pour l'entrée Nano (max Vcc 5V)
La valeur lue sur A2 est :
8V -> 290
12V -> 436 Tension sur A2 = 2,13 V = 436 *4,933/1024
18V -> 656
Pour mémoire, sur la référence A1 avec 1.214 V, on lit 252
Nous avons trouvé 1.241*1024/252= 4.933, notre référence de conversion
Donc pour savoir si une alimentation est bien branchée,
il suffit de lire la valeur sur A2 qui est supérieure à 290 (=8 V).

Bien sûr, il est facile de contourner ce problème en alimentant Vin avec une diode, mais ce n'est pas important pour cette application.

c   m

 

Three kinds or displays
You can choose the original Oled or a 4*20 characters easier to read
It is necessary to change library and the commands (very easy) for the bigger display.
In the future i will add graphical display with curves.
Exemple on this old project: Domotique arduino arduino

Hardware notes:
 Four-line and graphic LCD displays are too large for the small circuit board, so t is necessary to put them on column over the board.

 If you don't have SMD fuses in your cases,
break a glass fuse and bridge the broken wire inside.

 Waiting: Add of a µSDCard socket to record curves of discharge.
Final design of the board is delayed by a small hardware problem. On Chinese market, cheap µSD boards are different. My models are 0.7”x1.5". It takes a big place on the board, even placed under, but position of connector is critical for other sizes and others dispositions of pins. I try to find a good compromise.

 Problem on various graphic displays
Many have a µSDcard reader, but many don't work due to misconfiguration of the common SPI. Only models with separate wires for µSD can work, but it takes a lot of wires.

Trois types d'affichages
Vous pouvez choisir l'Oled d'origine ou un 4*20 caractères plus facile à lire
Il faut changer de bibliothèque et de commandes (très simple) pour un affichage plus grand.
Dans le futur, j'ajouterai un affichage graphique avec courbes.
Exemple sur ce vieux projet : Domotique arduino arduino

Notes hardware:
 Les écrans LCD à quatre lignes et graphiques sont trop grands pour le petit circuit imprimé, il est donc nécessaire de mettre sur des colonnes au-dessus de la carte.
 Si vous n'avez pas de fusibles CMS dans vos boitiers, cassez un fusible en verre et faites un pont avec le fil très cassant à l'intérieur.

 En attente: Ajout d'un socket µSDCard pour enregistrer les courbes de décharge.
La conception finale de la carte est retardée par un petit problème matériel. Sur le marché chinois, les cartes µSD bon marché sont différentes. Mes modèles mesurent 17mmx37mm. Cela prend beaucoup de place sur le circuit, même placé en dessous, mais la position du connecteur est critique pour les autres tailles et autres dispositions de broches. J'essaie de trouver un bon compromis.

 Problème sur divers affichages graphiques.
Beaucoup ont un lecteur µSDcard, mais beaucoup ne fonctionnent pas à cause d'une mauvaise configuration du SPI commun. Seuls les modèles avec fils séparés pour µSD peuvent fonctionner, mais il faut beaucoup de fils.

 Haut de page

arduino  A complete different way to do


Original approach uses PWM table with index to adjust current.

An other way is to forget these tables, wiring a low pass filter from power resistor (= MosFet source) to another input for analog measurement, A3.

Filtered Va3 shows the integral of the pulse, which is a perfect image of the average discharge current.

In this mode, amplifiers are wired as simple non inversors comparators:
On the first one, Vin- to ground,
PWM Signal on Vin+ (pulses 0 / 5 V with Nano or 0 / 3.3V with ESP32 or STM32)
Gain is quasi infinite,Vout pulses = 0 / 12V
The second amplifier is also in comparator mode.

arduino  Une toute autre façon de faire


L'approche originale utilise une table PWM avec index pour ajuster le courant.

Une autre façon consiste à oublier ces tableaux, en câblant un filtre passe-bas de la résistance de puissance (= source MosFet) à une autre entrée pour la mesure analogique, A3.

Va3 filtré montre l'intégrale de l'impulsion, qui est une image parfaite du courant de décharge moyen.

Dans ce mode, les amplificateurs sont câblés comme de simples comparateurs non inverseurs :
Sur le premier, Vin- à la masse,
Signal PWM sur Vin+ (impulsions, 0 / 5 V avec Nano ou 0 / 3.3V avec ESP32 ou STM32)
Le gain est quasi infini, impulsions Vout = 0 / 12V
Le deuxième amplificateur est également en mode comparateur.

 

d

And next the solution with ESP32 card.


This is my working card very complete, with a lot of software running, but with this small usage it is not necessary to install many components.
Carte ESP32 vers Nextion arduino

Not needed: Power supplies 3.3 V and 5 V, PIO and leds, ...
RTC DS3231 is useful, to fix date for Excel files, if WiFi is not available for time server
A small external board is to be wired as complement of my universal card, to accept all these specifics components.
The simplest way is to use the above card, but without placing a Nano, and to wire :
ground, 12 V, plus the 3 signals A0, A3 and PWM.
from a most powerful card, ESP32, ESP8266 or STM32 to access at complete functions.
A new design of a printed board is not necessary for a so simple project.

Et ensuite la solution avec la carte ESP32.


C'est ma carte de travail très complète, avec pas mal de logiciels en cours d'exécution, mais avec cette petite utilisation il n'est pas nécessaire d'installer beaucoup de composants.
Carte ESP32 vers Nextion arduino
Non nécessaire : Alimentations 3,3 V et 5 V, PIO et leds, ...
RTC DS3231 est utile pour fixer la date des fichiers Excel, si le WiFi n'est pas disponible pour le serveur de temps
Une petite carte externe est à câbler en complément de ma carte universelle, pour accepter tous ces composants spécifiques.
Le plus simple est d'utiliser la carte ci-dessus, mais sans placer de Nano, et de câbler :
masse, 12 V, plus les 3 signaux A0, A3 et PWM.
à partir d'une carte plus puissante, ESP32, ESP8666 ou STM pour accéder à des fonctions complètes.
Une nouvelle conception d'un circuit imprimé n'est pas nécessaire pour un projet aussi simple.

 Haut de page

arduino  Old mode


Now return on the first original version, using Mosfet as a variable resistor.

 Thoughts on this extract of the schematic

This next diagram extract focuses on the old principle of current control

arduino  Ancien mode


Revenons maintenant sur la première version originale, utilisant le Mosfet comme résistance variable.

 Réflexions sur cet extrait du schéma

Cet extrait suivant de schéma met l'accent sur l'ancien principe du contrôle du courant

o

PWM resistor

Resitor on PWM output RG5 100 kOhms at the ground is very important, because during reset, boot and program loading phases, outputs of the Nano are in high impedance and voltage is erratic between 0 to 5V, so command of MosFet is also erratic and discharge current is out of control.
This resistor drains static charges when the pin is in high impedance and clamps it during these phases of instability.

Low pass filters
There is 2 low pass filters: RA0+CA0, Rpwm+Cpwm
Filter Tau = R*C = 1*10^6 * 100*10^-9 = 0.1 second, very superior of the 2 mS of PWM
You can decrease R to 100 kOms, with Tau= 10 mS, five times of PWM, it keeps good.

You can test all the possible combinations by activating one or more in turn, through the small area at the foot of each capacitor, thanks to an easy-to-remove solder point (or strap). This avoids desoldering fragile capacitors.

When the capacitor is not connected to ground, the value of the resistor does not matter because the voltages are at zero current (amplifier inputs with nearly infinite impedances).

Remark on impedance of analog inputs

Impedance on A0 is not infinite, if you have 4 V on the 18650 Battery (no current), you read 3.64 V on A0, ratio 1.1.
There is a bridge with A0 and internal impedance of analog input, it means that A0 impedance is 10 times A0. Value of the battery voltage displayed on panel is not exactly the good one, but this is not very important. Purists can multiply converter reading by a corrective factor (very close to one) to read the perfect value.
If used, CA0 capacitor have also a parasitic impedance.

Next chapters analyse each solution.

Résistance PWM

La résistance sur la sortie PWM RG5 100 kOhms à la masse est très importante, car pendant les phases de reset, de démarrage et de chargement du programme, les sorties du Nano sont en haute impédance et la tension est erratique entre 0 et Vcc, donc la commande du MosFet est également erratique et le courant de décharge est hors de contrôle.
Cette résistance draine les charges statiques lorsque la broche est en haute impédance et la fixe à zéro pendant ces phases d'instabilité.

Filtres passe-bas
Il y a 2 filtres passe-bas : RA0+CA0, Rpwm+Cpwm
Filtre Tau = R*C = 1*10^6 * 100*10^-9 = 0.1 seconde, très supérieur aux 2 mS de PWM
Vous pouvez diminuer R à 100 kOms, avec Tau = 10 mS, cinq fois de PWM, ça reste bon.

Vous pouvez tester toutes les combinaisons possibles en en activant un ou plusieurs à tour de rôle, à travers la petite zone au pied de chaque condensateur, grâce à un point de soudure facile à retirer (ou un strap). Cela évite de dessouder les condensateurs fragiles.

Lorsque le condensateur n'est pas relié à la masse, la valeur de la résistance n'a pas d'importance car les tensions sont à courant nul (entrées d'amplificateur avec des impédances presque infinies).

Remarque sur l'impédance des entrées analogiques

L'impédance sur A0 n'est pas infinie, si vous avez 4 V sur l'accu 18650 (pas de courant), vous lisez 3,64 V sur A0, rapport 1,1.
Il y a un pont avec A0 et l'impédance interne de l'entrée analogique, cela signifie que l'impédance A0 est 10 fois A0. La valeur de la tension de la batterie affichée sur le panneau n'est pas exactement la bonne, mais ce n'est pas très important. Les puristes peuvent multiplier la lecture du convertisseur par un facteur correctif (très proche de un) pour lire la valeur parfaite.
S'il est utilisé, le condensateur CA0 a également une impédance parasite.

Les prochains chapitres analysent chaque solution.

Filter RA0+CA0 on A0
On initial diagram there is a mistake, the 2 capacitors without resistor have no utility because impedance of battery is very low, and second problem, the battery alone light the Nano in instable conditions (V lower than 5V), this is dangerous.
With the permanent filter RA0+CA0, problems are solved.

Configurators
For the “S” configurators, you can use 2.54 jumpers or a point of solder.

 

First older configuration as in the Green energy version, current limitation to 1 Amp
Spwm closed, Sgain open
You are exactly in the initial configuration.
The second amplifier has no gain (RG2 is equal to a short circuit) it is a simple follower, you can consider that output 1 is connected directly to the gate, because there is no current on RGgate. VGate cannot go above 5V, so the current limit is 1A
If S3 is closed, RGate + CGate acts as a low pass filter, but doesn't matter because the output of the first amplifier is nearly constant during discharge, if S3 is open, it's equivalent.

Second configuration, current limit to 2 Amp
Spwm closed, Sgain closed
Now you add the gain of the second amplifier which is:
1+(RG1/RG2) = 1+ (10/51) = 61/51 = about 1.2.
With R2 = 33k -> Gain = 43/33 = 1.3
Maximum voltage on output of first amplifier (as integrator) is a bit lower than 5V, so after second amplifier you are close of 6V which gives a current of 2A.
You can increase a bit RG2 if your Nano has a too low 5V
Same remark than upper paragraph for S3

 

When you make your experiments, place always an analog voltmeter on the power resistor to control current.
It is better to use a power supply of 4V in place of the 18650 with current limit at 2.5 A. You can found on chinese market very good cheap laboratory small power supplies.

 

Filtre RA0+CA0 sur A0
Sur le schéma initial il y a une erreur, les 2 condensateurs sans résistance n'ont aucune utilité car l'impédance de la batterie est très faible, et deuxième problème, la batterie seule allume le Nano dans des conditions instables (V inférieur à 5V), c'est dangereux. Avec le filtre permanent RA0+CA0, les problèmes sont résolus.

Configurateurs
Pour les configurateurs « S », vous pouvez utiliser des cavaliers 2,54 ou un point de soudure.

 

Première configuration comme dans l'ancienne version Green energy, limitation de courant à 1 Amp
Spwm fermé, Sgain ouvert
Vous êtes exactement dans la configuration initiale.
Le deuxième amplificateur n'a pas de gain (RG2 est égal à, un court-circuit) c'est un simple suiveur, vous pouvez considérer que la sortie 1 est connectée directement à la grille, car il n'y a pas de courant sur Rgate. VGate ne peut pas monter au-dessus de 5 V, donc la limite de courant est de 1A
Si S3 est fermé, RGate + CGate agit comme un filtre passe-bas, mais n'a aucune importance car la sortie du premier amplificateur est quasi constante pendant la décharge, si S3 est ouvert, c'est équivalent.

Deuxième configuration, limite de courant à 2 Amp
Spwm fermé, Sgain fermé
Maintenant, vous ajoutez le gain du deuxième amplificateur qui est :
1+(RG1/RG2) = 1+ (10+51) = 61/51 = environ 1,2.
Avec R2 = 33k -> Gain = 43/33 = 1.3
La tension maximale à la sortie du premier amplificateur (en tant qu'intégrateur) est un peu inférieure à 5V, donc après le deuxième amplificateur, vous êtes proche de 6V, ce qui donne un courant de 2A.
Vous pouvez augmenter un peu RG2 si votre Nano a un 5V trop bas
Même remarque que le paragraphe supérieur pour S3

 

Lorsque vous faites vos expériences, placez toujours un voltmètre analogique sur la résistance de puissance pour contrôler le courant. Il est préférable d'utiliser une alimentation de 4V à la place du 18650 avec une limitation de courant à 2,5 A. Vous pouvez trouver sur le marché chinois de très bonnes petites alimentations de laboratoire pas chères.

Now the real life
Click on the oscillograms for full size.
We are in the last case, without filters 1 and 3

On the left panel,
Channel 1 yellow is the PWM pulse on non inverting input of first amplifier, 4.48 V, it’s good, there is a small attenuation after PWM because amplifier is not perfect (not infinite resistance).
Channel 2 violet is the output of second amplifier, 10.7 V after gain, its good.

Maintenant la vraie vie
Cliquez sur les oscillogrammes pour les afficher en taille réelle.
Nous sommes dans le dernier cas, sans les filtres 1 et 3

Sur le panneau de gauche,
Le canal 1 jaune est l'impulsion PWM sur l'entrée non inverseuse du premier amplificateur, 4,48 V, c'est bon, il y a une petite atténuation après PWM car l'amplificateur n'est pas parfait (résistance non infinie).
Le canal 2 violet est la sortie du deuxième ampli, 10,7 V après gain, c'est bon.

Now right panel
Channel 2 violet is the same for reference, but
Channel 1 yellow is the gate voltage after RGate
It was expected that these 2 curves will be the same, but on this model of Mosfet, input parasite gate capacitor is too much important, and there is integration, it can’t works in pulse mode!

 

Now more experiments
The left panel is with a RGate of 100 kOhms,
the right one with 10 kOhms.
Strange is’nt it?
Check yourself with various MosFets or simple Darlingtons (experimental mode only!) .

Maintenant panneau de droite
Le canal 2 violet est le même pour référence, mais
le canal 1 jaune est la tension de grille après RGate
On s'attendait à ce que ces 2 courbes soient les mêmes, mais sur ce modèle de Mosfet, la capacité d’entrée parasite est trop important, et il y a intégration, ça ne peut pas fonctionner en mode impulsionnel !

 

Maintenant plus d'expériences
Le panneau de gauche est avec un RGate de 100 kOhms,
celui de droite avec 10 kOhms.
Étrange n'est-ce pas ?
Vérifiez-vous avec divers MosFets ou de simples Darlingtons (mode expérimental uniquement !)

For example a simple BUZ806
Now the system does not work with variable voltage and zero current on a high impedance gate like for a Fet, but with current on a transistor base.
No current?
You must first put a short circuit (current and not voltage) on RGate. It works, but the current is half of that shown. You also need to short RG2, because the op-amp isn't perfect.
With these two changes, the current is good from minimum to 2A. This is why there is a difference between this detail of the diagram and the final drawing, RG2 and RGate are mounted on a removable base, so you can play and change the values without desoldering on the board.
Depending on the other MosFets or transistors that you have in your drawers, you will have to adjust these two resistors whose value is given for the nominal IRF.

Resistors values manipulations

In third experimental mode you have to modify with reduced values only RG2 and Rgate. Don’t unsolder resistors on the board but solder a lower value in parallel, without damaging the circuit.

 

MosFet under the card
You can also mount the MosFet under the board on an aluminium plate of same size with holes for columns and wires to change it quickly.

 

 

 Par exemple un simple transistor BUZ806
Maintenant, le système ne fonctionne pas avec une tension variable et un courant nul sur une grille à haute impédance comme pour un Fet, mais avec un courant sur une base de transistor.
Aucun courant?
Vous devez d'abord mettre un court-circuit (courant et non tension) sur RGate. Cela fonctionne, mais le courant est la moitié de celui indiqué. Vous devez également court-circuiter RG2, car l’amplificateur opérationnel n'est pas parfait.
Avec ces deux changements, le courant est bon du minimum à 2A.
C'est pourquoi il y a une différence entre ce détail du schéma et le dessin final, RG2 et RGate sont montés sur embases amovibles, vous pouvez donc jouer et changer les valeurs sans désouder sur la carte.
En fonction des autres MosFets ou transistors, que vous avez dans vos tiroirs, il faudra ajuster ces deux résistances dont les valeurs sont données pour l’IRF nominal.

Manipulation des valeurs des résistances
Dans le troisième mode expérimental, vous devez modifier avec des valeurs réduites uniquement RG2 et Rgate. Ne dessoudez pas les résistances sur la carte, mais soudez une valeur inférieure en parallèle sans endommager le circuit.

MosFet sous la carte
Vous pouvez également monter le MosFet sous la carte sur une plaque en aluminium de même taille avec des trous pour les colonnes et des fils pour le changer rapidement.

 

 Haut de page

arduino  New PWM checking tool (New 07/03/22)

All seems very simple, but it is not easy to understand clearly the influence of the type of MosFet, low-pas filters jumpers and gain adjustment in different configurations,
so I add a small tool “Nano_Capacity_test_PWM.ino” to debug all these parameters.

This tool shows PWM value on Oled display, 0..255. You can change it with Up/Down buttons, and observe on oscilloscope and voltmeters influence of the various parameters.
For these experiments, replace the 18650 by a power supply 4 V with limit at 3 A.
When this test running, current is active, place a voltmeter on power resistor and check for temperature increase.
When you have adjusted the good values for current required, replace it in the PWM table of exploitation program.

Don’t forget also that in resistor mode, Drain current depends of course of Vgs but also of the temperature of the chip in the MosFet!

 

arduino  Nouvel outil de vérification PWM (Nouveau 07/03/22)

Tout semble très simple, mais il n'est pas facile de comprendre clairement l'influence du type de MosFet, des cavaliers des filtres passe-bas et du réglage du gain dans différentes configurations,
aussi j'ajoute donc un petit outil "Nano_Capacity_test_PWM.ino" pour déboguer tous ces paramètres.

Cet outil affiche la valeur PWM sur l'écran Oled, 0..255. Vous pouvez le modifier avec les boutons Up/Down, et observer sur l'oscilloscope et les voltmètres l'influence des différents paramètres.
Pour ces expériences, remplacer la 18650 par une alimentation 4 V avec limitation à 3 A.
Lorsque ce test est en cours, le courant est actif, placez un voltmètre sur la résistance de puissance et vérifiez l'augmentation de la température.
Lorsque vous avez ajusté les bonnes valeurs de courant requis, replacez-le dans la table PWM du programme d'exploitation.

N'oubliez pas aussi qu'en mode résistance, le courant de Drain dépend bien sûr de Vgs mais aussi de la température de la puce dans le MosFet !

 

t

 Haut de page

New in V4.0 : µSD Card to record curves

How to create a curve with a record file
The file is a simple collection of voltages in millivolts for each minute in clear text.

Example:
Remove the SD card from the discharge card and place it in an USB adapter
Open Excel, open (example) <rec_123.txt> choosing: <all files (*.*)>
In dialog boxes, next... end
You get a column of records (voltage of battery in milliVolts)
Insert curve SafeArrayOfPoints (nuage de points)
Choose a type of record -> You get the curve (extend the corners to adjust)

How to calculate battery capacity from the file?
It’s very simple, capacity is the integrate of current function of time.
We have to multiply total duration by current, example:
current 1.5 A, duration 1hour 21min
Capacity = 1.5 * (1*60 + 21) /60 = 1.5*81/60 = 2 A/h

Sand box to test records
I add a small Arduino program (SD_ReadWrite_Nano.ino) showing how the record works with a simulator (discharge card not needed) , with only a µSDcard reader on Nano (see diagram for the 6 wires).

Remark on the Nano v3.0:
As the Uno, Due, Mega, the Nano is now obsolete, the better solution is to migrate to STM32 or ESP32
(not hardware compatible), but if you plane to bought some new ones
to keep strict compatibility in small projects, replace by the “MiniEVB LGT8F328P-LQFP32” which is better (but with only also 32 k EEprom).

Nouveauté V4.0 : Carte µSD pour enregistrer les courbes

Comment créer une courbe avec un fichier d'enregistrement.
Le fichier est une collection des tensions en millivolts pour chaque minute en texte clair.

Exemple :
Retirez la carte SD de la carte de décharge et placez-la dans un adaptateur USB
Ouvrir Excel, ouvrez (exemple) <rec_123.txt> en choisissant : <tous les fichiers (*.*)>
Dans les boîtes de dialogue, suivant... fin
Vous obtenez une colonne d'enregistrements (tension de batterie en milliVolts)
Insérer une courbe SafeArrayOfPoints (nuage de points)
Choisissez un type d'enregistrement -> Vous obtenez la courbe (allongez les coins pour ajuster)

Comment calculer la capacité de la batterie à partir du fichier ?
C'est très simple, la capacité est l'intégration de la fonction actuelle du temps.
Il faut multiplier la durée totale par le courant, exemple :
courant 1,5 A, durée 1h21
Capacité = 1,5 * (1*60 + 21) /60 = 1,5*81/60 = 2 A/h

Bac à sable pour tester les enregistrements
Je rajoute un petit programme Arduino (SD_ReadWrite_Nano.ino) montrant le fonctionnement de l'enregistrement avec un simulateur (carte de décharge inutile), avec uniquement un lecteur µSDcard sur Nano (voir schéma pour les 6 fils).

Remarque sur le Nano v3.0:
Comme l'Uno, Due, Mega, le Nano est désormais obsolète, la meilleure solution est de migrer vers STM32 ou ESP32 (non compatible matériel), mais si vous prévoyez d'en acheter de nouveaux pour garder une compatibilité stricte dans les petits projets, remplacez par le "MiniEVB LGT8F328P-LQFP32" qui est mieux (mais avec seulement aussi 32k EEprom).

 Haut de page

arduino  The Titanic

Ship was cruising full speed but at the last moment…

Apocalyptic drama storyline
I no longer worked on the old nano since many years and I forgot it was so small in capacity, I was using the ESP32 or STM32
New software 3.21 was completed, size 25.5 kb.
The motor for recording data separately was completed, size 17 kb (see sources).
When I try to import, this module, I write first the two dramatic lines:
#include <SPI.h>
#include <SD.h>
and I see the iceberg! I explode the capacity of the 32 kb Eeprom of more than 10 kb..
Is it the end of the adventure (scary music)?
It is not easy to reduce drastically the size, of course replacing print(F(“...”)) by print(“...”) moves the comments from the 32kb Eeprom to the 2kb ram, but the gain is small, less than 200 bytes.
I tried also to rewrite a minimal library SPI and SD,
but a 10kb gain can’t be obtained.

No, for every problem there are a lot of solutions

1) Status quo
Passengers are rescued, the circuit board is beautiful, but the cruse stops miserably here, without curve recording but with a range of 2 amps.

2) Arduino "Nano Every"
Replace the venarable Nano by the new one Arduino Every, with better performance, for exemple it increase the Eeprom to 48 ko which is sufficient here. It is hardware compatible, but it must be verified that new CPU and drivers accepts the old software. Mystery...
Problem, it is more expensive, on chinese market about 9€, but genuine 43€
It's a flawed solution, never tested.
It is a marginal, already outdated component that cannot be compared to the STM32 produced in colossal quantities.

arduino  Le Titanic

Le navire naviguait à pleine vitesse mais au dernier moment…

Scénario du drame apocalyptique
Je ne travaillais plus sur l'ancien nano depuis de nombreuses années et j'avais oublié qu'il était si petit en capacité, j'utilisais l'ESP32 ou le STM32
Le nouveau logiciel 3.21 était terminé, taille 25.5 ko.
Le moteur pour enregistrer les données séparément était terminé, taille 17 ko (voir sources).
Lorsque j'essaie d'importer ce module, j'écris d'abord les deux lignes dramatiques :
#include <SPI.h>
#include <SD.h>
et je vois l'iceberg ! J'explose la capacité de l'Eeprom 32ko de plus de 10 ko.
Est-ce la fin de l'aventure (musique angoissante) ?
Il n'est pas facile de réduire drastiquement la taille, bien sûr remplacer print(F(“...”)) par print(“...”) déplace les commentaires de l'Eeprom 32 ko vers la ram de 2ko, mais le gain est faible, moins de 200 octets.
J'ai également essayé de réécrire une bibliothèque minimale SPI et SD, mais un gain de 10 Ko ne peut pas être obtenu.

Non, pour chaque problème il y a beaucoup de solutions

1) Statu quo
Les passagers sont secourus, le circuit imprimé est beau, mais la croisière s'arrête lamentablement ici, sans enregistrement de courbe, mais avec une plage de 2 amps.

2) Arduino "Nano Every"
Remplacer le vénérable Nano par le nouveau Arduino Every, plus performant, il augmente par exemple l'Eeprom à 48 ko ce qui est suffisant ici. Il est compatible matériellement, mais il faut vérifier que le nouveau CPU et les pilotes acceptent l'ancien logiciel. Mystère...
Problème, c'est plus cher, sur le marché chinois environ 9€, mais l'authentique 43€
C'est une solution bancale, jamais testée.
Il s'agit d'un composant marginal, déjà dépassé qui ne peut se comparer au STM32 produit en quantités colossales.

3) The STM32 solution
Forget the Nano dinosaur and replace it with a cheap high-performance chip, the STM32
It's not simple because the hardware is completely different, there are 40 pins instead of 30.
All is +++, Eprom 256 ko, fast clock, RTC... WiFi is the only thing missing.
The only problem is that STM32 is difficult to install for a beginner, read this page:
Tutoriels Arduino nextion

Adapting the software is not the problem. We must redesign a new board on Eagle.
To prepare the prototype, I will use the new board with a piggy back to wire the new STM32 chip with wrapping.

4) The other best way: ESP32
A long time ago I made a more universal charge/discharge controller, but most complicated, with the CAN ADS1115, wich is perfect, on a different principle.
I can reactivate this project using my Carte ESP32 vers Nextionarduino
Many advantages: No bug on this card, big resources, RTC (DS3231) and WiFi to adjust clock on time signals, transfer of data on the cloud,..
See my domotic system: Domotique via Internet arduino
The only thing to do is to add a small board to includie the amplifier, MosFet and power resistor, and link to the existent with few wires.

Only a detail! ESP32 is powerfull, but there is a defect, its DAC are very bad and noisy, worse than on the Nano, so it is necessary to add the perfect external DAC 12 bits ADS1015.
The DAC of STM32 are better, but without WiFi.

 

The problem of these evolutions is that they lost the main advantage of the small original solution, simplicity and Zen life...

To be continued in "The Revenge of the Nano" soon on your screens

3) La solution STM32
Oubliez le dinosaure Nano et remplacez-le par une puce peu chère très performante, le STM32
Ce n'est pas simple car le matériel est complètement différent, il y a 40 broches au lieu de 30.
Tout est +++, Eprom 256 ko, horloge rapide, RTC... Le WiFi est le seul absent.
Le seul problème est que STM32 est difficile à installer pour un débutant, lisez cette page :
Tutoriels Arduino nextion

Adapter le logiciel n'est pas le problème. Il faut reconcevoir une nouvelle carte sous Eagle.
Pour préparer le prototype, j'utiliserai la carte 3.31 avec un piggy back pour câbler le nouveau STM32 en wrapping.

4) L'autre meilleur moyen: ESP32
Il y a longtemps j'ai fait un contrôleur de charge/décharge plus universel, mais plus compliqué, avec le CAN ADS1115 qui est parfait, sur un principe différent.
Je peux réactiver ce projet en utilisant ma Carte ESP32 vers Nextionarduino
Beaucoup d'avantages : Pas de bug sur cette carte, grosses ressources, RTC (DS3231) et WiFi pour régler l'horloge sur les signaux horaires, transfert des données sur le cloud,..
Voir mon système domotique : Domotique via Internet arduino
La seule chose à faire est d'ajouter une petite carte pour inclure l'amplificateur, le MosFet et la résistance de puissance, et relier à l'existant avec peu de fils.

Juste un détail ! L'ESP32 est puissant, mais il y a un défaut, ses CAN sont très mauvais et bruyants, pire que sur la Nano, il faut donc ajouter le parfait CAN externe 12 bits ADS1015.
Les CAN du STM32 sont meilleurs, mais sans WiFi .

 

Le problème de ces évolutions est qu'elles ont perdu le principal avantage de la petite solution originale, la simplicité et la vie Zen...

A suivre dans "La Revanche du Nano" bientôt sur vos écrans

ESP32

e

 Haut de page

Complicated adventure, very long delays from China, custom taxes...

Todo on hypotetics next versions :
 SDCard record discharge curves ready to read with Excel
 Alternative LCD 4x20.
 Graphical display 480*320 to show discharge curve in real time

Aventure compliquée, très long délai depuis la Chine, taxes douanières...

A faire sur les hypotétiques futures versions :
 µSdcard pour enregistrer les courbes de décharge prêtes à être lues sur Excel
 Afficheur alternatif 4x20.
 Affichage graphique 480*320 afin de montrer la courbe de décharge en temps réel

c

0303

 Haut de page

arduino  Conclusion

It's a little frustrating to test a lot of 18650 at C/1 (C/1 = capacity in 1 hour) because many of those that are around 2Ah at C/2 (1 A) discharge around 2 hours, are now bad and fail in minutes.
They are too old and the internal resistance is too high.

This sandbox allows many fun experiments by changing configuration.

Dans ce projet, ce n'est pas la fonction finale de ce gadget qui est importante, mais la manière de réfléchir autour d’un montage de base très simple.

This project is closed.

I abandoned this dead-end approach in favor of a much more efficient system.
This new setup uses my ESP32 boards, which connect via I2C to a small charge/discharge board equipped with a PCF8575 I/O expander and a high-precision analog-to-digital converter.
At the end of the process, the ESP32 sends an email via WiFi containing an Excel chart of the measurements taken.
A detailed description will follow.

arduino Conclusion

C'est un peu frustrant de tester beaucoup de 18650 à C/1 (C/1 = capacité en 1 heure), car beaucoup de celles qui font environ 2Ah à C/2 (1 A) avec décharge d'environ 2 heures, sont maintenant mauvaises et s'écroulent en quelques minutes.
Elles sont trop vieilles et la résistance interne est trop élevée.

Ce bac à sable permet de nombreuses expériences amusantes en changeant la configuration.

Dans ce projet, ce n'est pas la fonction finale de ce gadget qui est importante, mais la manière de réfléchir autour d’un montage de base très simple.

Ce projet est clos.

J’ai abandonné cette impasse pour adopter un système bien plus performant.
Celui-ci utilise mes cartes ESP32, qui se connectent via I2C à une petite carte de charge/décharge équipée d’un PIO PCF8575 et d’un convertisseur analogique-numérique de précision.
À la fin du processus, l’ESP32 envoie un e-mail via WiFi contenant la courbe Excel des mesures effectuées.
Un descriptif détaillé suivra.

Tous les détails et logiciels sont dans cette page à jour au : 220511

eclate

 Haut de page

© Christian Couderc 1999-2024     Toute reproduction interdite sans mon autorisation


* Page vue   12501   fois       IP : 44.210.149.218

 Haut de page         Dernière retouche le 04 Septembre 2024 à 10 h         Retour page précédente

   Collector