Je cherche à créer un indicateur d'autonomie de batterie que je peux utiliser en conjonction avec un micro-contrôleur. J'espère que je pourrai ensuite lire la durée de vie restante de la batterie et mettre de plus en plus le micro-contrôleur en veille pour préserver la durée de vie de la batterie.
microcontroller
sleep
indicator
low-battery
littlebirdceo
la source
la source
Réponses:
À la question principale, quant à la façon de mesurer la tension d'une batterie, la méthode la plus simple consiste à utiliser l'une des broches ADC de l'arduino.
Si vous fournissez 5v à partir de la batterie (peu probable), vous pouvez exécuter le + directement sur l'une des broches analogiques et utiliser analogRead () - chaque incrément de valeur (de 0 à 1023) représentera 4,9 mV. Multipliez donc la valeur lue par 0,0049 pour obtenir la lecture des volts.
Si vous utilisez plus de 5 V (plus probablement), vous pouvez utiliser un circuit diviseur de tension (voir: http://en.wikipedia.org/wiki/Voltage_divider ) pour amener la tension que vous envoyez à l'entrée analogique. <= 5v. Si vous utilisez 12V, vous voudrez diviser la tension en environ 1/3. Ensuite, après avoir multiplié la valeur ADC, multipliez par 3 pour obtenir la tension réelle.
Ainsi, si vous utilisez 12V et un diviseur de tension 1/3:
! c
la source
tinker.it a publié un indicateur de niveau de tension "secret" dans l'Atmega168 / atmega328. Avec une petite astuce, un Arduino est capable de comparer le VCC avec une référence de précision interne de 1,1 V. L'explication et le code sont ici: https://provideyourown.com/2012/secret-arduino-voltmeter-measure-battery-voltage/
la source
La suggestion de shutterdrone est très bonne, mais il manque un détail, car elle implique que la référence de tension analogique est la même que la tension mesurée (à part supposer qu'un Arduino est utilisé, ce qui n'est pas explicitement indiqué).
Vous aurez besoin d'un ADC, qu'il soit intégré à votre uC ou à un composant externe. L'ADC a besoin d'une référence de tension analogique (ARef) pour comparer l'entrée avec. Vous ne voulez pas que l'ARef soit identique à la tension que vous détectez car alors l'ADC verra toujours les tensions d'entrée et de référence comme égales, donc la valeur analogique de la tension détectée sera toujours le maximum. Vous avez besoin d'une référence de tension analogique très précise qui ne changera pas à mesure que la tension d'alimentation change. L'ADC comparera cette tension de référence à la tension de la batterie; vous pouvez utiliser un diviseur de tension pour réduire la tension de la batterie détectée dans la plage de l'ARef.
L'Arduino (Atmega8 / 168/328 / etc.) a un ADC intégré et une référence analogique 1.1V intégrée, donc les seuls composants externes dont vous auriez besoin sont des résistances pour le diviseur de tension. Je pense que vous voudriez également utiliser des valeurs très élevées pour les résistances afin de réduire la consommation de courant sur la batterie.
la source