Outils pour utilisateurs

Outils du site


informatique:projets:python-max17040

Python MAX17040

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.

MAX17040 Datasheet

Documentation

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.

test_max17040.py
#!/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()
Résultat
[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_umax17040.py
# 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()

Téléchargement

Changelog

informatique/projets/python-max17040.txt · Dernière modification : 2022/11/27 17:26 de lestat

Outils de la page