- Informatique
- Arduino
- Projets
- Mécanique
python-max17040 est une classe d'abstraction permettant de communiquer avec un MAX17040 via le bus i2c (d'un Raspberry Pi par exemple).
Le MAX17040 est un capteur de charge de batterie Lithium (1 cellule) avec un algorithme permettant de déterminer l'état de santé de l'accumulateur. Ce capteur est fabriqué par Maxim Integrated.
Cette classe possède un mode 'debug' qui permet d'obtenir un certain nombre de messages utiles (communication avec le chip, résultat des CRC, etc…).
Une version pour MicroPython est également disponible (umax17040). Cette version reprend le même code que la version classique mais sans les commentaires et options de debug afin d'être la plus légère possible.
L'ensemble du code est commenté de manière suffisamment explicite, et le code est compatible PyDOC. Un simple 'help(max17040.max17040)' devrait permettre d'avoir un minimum d'informations sur la syntaxe.
Un programme de test est fourni à titre d'exemple et permet de voir le fonctionnement de la classe.
#!/usr/bin/env python # -*- coding: utf-8 -*- # Test program to illustrate MAX17040 class usage import max17040 if __name__ == "__main__": # Connecting to MAX17040 in Debug mode chip = max17040.max17040(debug=True) # Retrieve firmware version chip.GetFirmwareVersion() # Retrieve battery voltage chip.GetCellVoltage() # Retrieve battery SoC chip.GetStateOfCharge()
[DEBUG] Accessing MAX17040 at address 0x36 on bus 1 [DEBUG] Reading firmware version [DEBUG] > Reading 2 bytes from register 0x8 [DEBUG] > MAX17040 response : [0x00 0x02] [DEBUG] MAX17040 version : 2 [DEBUG] Reading cell voltage [DEBUG] > Reading 2 bytes from register 0x2 [DEBUG] > MAX17040 response : [0xCF 0xE0] [DEBUG] Cell voltage is 4157.5mV [DEBUG] Reading State Of Charge [DEBUG] > Reading 2 bytes from register 0x4 [DEBUG] > MAX17040 response : [0x62 0xED] [DEBUG] SOC = 98.93%
# Test program to illustrate MAX17040 class usage import umax17040 import machine # Example using an ESP8266 (ESP-01) i2c = machine.I2C(freq=400000, scl=machine.Pin(0),sda=machine.Pin(2)) # Connecting to MAX17040 chip = umax17040.umax17040(i2c) # Retrieve firmware version chip.GetFirmwareVersion() # Retrieve battery voltage chip.GetCellVoltage() # Retrieve battery SoC chip.GetStateOfCharge()
Changelog