Ce avec quoi je travaille: J'utilise ma carte Arduino auto-fabriquée (dans le sens où j'utilise le chargeur de démarrage Arduino et l'éditeur de code) à 3,3 V, et alimentée par une batterie au lithium-ion, qui est chargée par USB par une micropuce correspondante chargeur IC.
Ce que j'essaie de réaliser: je veux mesurer la capacité de la batterie toutes les minutes environ. J'ai un écran LCD connecté, donc l'idée est que la configuration globale me permet de savoir comment la batterie fonctionne à un moment donné. La fiche technique de la batterie a une courbe tension / niveau de décharge, et donc en mesurant la tension de la batterie, je peux estimer la capacité restante (très grossièrement mais assez pour moi!).
Ce que j'ai fait:
(EDIT: valeurs de résistance mises à jour et commutateur P-MOSFET ajouté en fonction des suggestions de @stevenvh et @ Jonny).
J'ai connecté un diviseur de tension de la batterie V_plus, avec la plus grande "portion" allant à une broche de lecture analogique (c'est-à-dire ADC) sur la puce Arduino / Atmega.
Le diviseur est de 33 KOhm à 10 KOhm, permettant ainsi la mesure jusqu'à 4,1 Volts maximum de la batterie Li-ion de mon microcontrôleur de niveau 3,3 V.
De plus, en utilisant l'une des broches d'E / S connectée à un MOSFET à canal n, je ne peux commuter le courant via le diviseur que lorsque j'ai besoin de la mesure.
Voici un schéma approximatif (mis à jour pour la 2e fois sur la base des suggestions de @stevenvh et @Nick):
Ma question:
Comment est ma configuration actuelle?
Mes seules contraintes sont: (1) Je voudrais faire une mesure approximative de la capacité de la batterie en fonction de la lecture de tension, comme décrit ci-dessus. (2) Je voudrais empêcher le diviseur de tension d'interférer avec la lecture de la présence de la batterie par mon CI de charge (dans ma configuration d'origine, le diviseur a parfois fait mal lire la présence du CI même lorsque la batterie était absente).
Réponses:
Cela semble être très similaire au schéma de Nick, il était probablement occupé à le dessiner quand il a posté :-).
D'abord pourquoi vous ne pouvez pas utiliser le N-FET sur le côté haut: il a besoin d'une tension de grille de quelques volts supérieure à la source, et le 4,2 V est tout ce que vous avez, rien de plus élevé, donc cela ne fonctionnera pas.
J'ai une valeur plus élevée pour le pull-up, bien qu'une valeur de 100 kΩ fera également l'affaire. 10 kΩ provoquera un courant supplémentaire inutile de 400 µA lorsque vous mesurez. Ce n'est pas la fin du monde, mais c'est 1 résistance dans les deux cas, alors pourquoi ne pas utiliser une valeur plus élevée.
Pour les MOSFET, il existe une variété de pièces à choisir étant donné que les exigences ne sont pas si strictes; vous pouvez envisager des solutions peu coûteuses comme, par exemple, Si2303 pour le canal P et BSS138 pour le canal N.
la source
@Inga. Il s'agit plus d'un commentaire que d'une réponse. Mais je voudrais publier une photo, donc je la poste comme réponse.
Votre microcontrôleur (uC) est alimenté avec + 3,3V. La vidange du P-MOSFET proposé peut atteindre jusqu'à + 4,1 V. Comme il est actuellement dessiné, un signal logique + 3,3 V ne pourra pas éteindre complètement le P-MOSFET. Q6 dans le schéma ci-dessous forme une sortie de drain ouvert, qui est tolérante à + 4.1V.
C14 réduit l'impédance, que votre A / D verra.
Vous pourriez constater que la détection de la tension de la batterie n'est pas un moyen précis de détecter la capacité restante. Dans les équipements portables (téléphones portables, ordinateurs portables), la capacité de la batterie est estimée en mesurant le courant entrant et sortant de la batterie. Il existe des dizaines de CI de jauge de carburant de batterie spécialisés ( bq27200 , par exemple), qui aident à cette tâche.
Un interrupteur côté bas a des problèmes lorsque la tension de la batterie (V bat ) est supérieure à la tension d'alimentation du microcontrôleur (V cc ). Lorsque l'interrupteur côté bas est désactivé, l'extrémité de masse du diviseur de tension flotte, le diviseur ne se divise plus, la tension de la batterie complète apparaît sur la broche ADC du microcontrôleur. Cela peut endommager l'UC. Cela créera également un chemin de fuite à travers lequel la batterie se déchargerait.
Un interrupteur côté haut est nécessaire lorsque V bat > V cc .
1 Je vais utiliser V cc pour faire court, mais cette discussion s'applique également à V dd , AV cc , AV dd . En cas de doute, recherchez une fiche technique, bien sûr.
la source
Ad.A: Je pense qu'il est assez juste d'utiliser un simple diviseur de tension pour détecter la tension de la batterie. Cependant, vous devez choisir soigneusement la résistance. L'impédance interne de vos entrées ADC est de 100kΩ, selon la fiche technique ATmega328 . Voir "Figure 23-8. Circuit d'entrée analogique". Si votre diviseur a une impédance comparable à l'entrée ADC, le circuit d'entrée ADC se comportera essentiellement comme un autre nœud du diviseur. Cela peut vous donner des décalages dans les lectures ADC.
L'utilisation d'un diviseur avec jusqu'à 10 kΩ à travers les rails serait suffisamment faible pour ignorer l'impédance d'entrée ADC, tout en n'utilisant que 410 µA. Si cela est trop pour votre application, vous pouvez bien sûr choisir des résistances plus importantes, mais gardez à l'esprit que l'ADC est là et est connecté à Vcc / 2.
la source