ADVERTENCIA: ¡GOINA219 no está listo para el horario estelar!
GOINA219 es un paquete de golang simple para configurar y leer el monitor de corriente/potencia bidireccional INA219 sobre i 2 C.
Actualmente solo está disponible para sistemas *nix, ya que aprovecha el paquete github.com/NeuralSpaz/i2c para i 2 C.
Con las dependientes instaladas, simplemente use:
go get github.com/jeffalyanak/goina219
El uso es muy simple y se incluye un ejemplo en el example/ directorio.
Se debe generar una configuración:
config := ina219 . Config (
ina219 . Range32V ,
ina219 . Gain320MV ,
ina219 . Adc12Bit ,
ina219 . Adc12Bit ,
ina219 . ModeContinuous ,
)Y una estructura INA219 inicializada:
myINA219 , err := ina219 . New (
0x40 , // ina219 address
0x00 , // i2c bus
0.01 , // Shunt resistance in ohms
config ,
)
if err != nil {
panic ( fmt . Sprintf ( "%v" , err ))
}Se puede llamar a la función de lectura:
err := ina219 . Read ( myINA219 )
if err != nil {
// error
}Ahora se puede acceder a la potencia y la corriente desde la estructura:
fmt . Printf (
"Power: %fw, Current: %fa, Voltage: %fv, Shunt: %fv" ,
myINA219 . Power ,
myINA219 . Current ,
myINA219 . Bus ,
myINA219 . Shunt ,
)| Rango | Parámetro |
|---|---|
| 16 V | goina219.Range16v |
| 32V | goina219.Range32v |
| Ganar | Parámetro |
|---|---|
| 40 mv | goina219.Gain40mv |
| 80MV | goina219.Gain80mv |
| 160mv | goina219.Gain160mv |
| 320MV | goina219.Gain320mv |
| Muestras | Bit-profundidad | Tiempo de muestra | Parámetro |
|---|---|---|---|
| 1 | De 9 bits | 84 μs | goina219.adc9bit |
| 1 | De 10 bits | 148 μs | goina219.adc10bit |
| 1 | De 11 bits | 276 μs | goina219.adc11bit |
| 1 | De 12 bits | 532 μs | goina219.adc12bit |
| 2 | De 12 bits | 1060 μs | goina219.adc2samp |
| 4 | De 12 bits | 2130 μs | goina219.adc4samp |
| 8 | De 12 bits | 4260 μs | goina219.adc8samp |
| 16 | De 12 bits | 8510 μs | goina219.adc16samp |
| 32 | De 12 bits | 17020 μs | goina219.adc32samp |
| 64 | De 12 bits | 34050 μs | goina219.adc64samp |
| 128 | De 12 bits | 68100 μs | goina219.adc128samp |
Las solicitudes de fusión son bienvenidas. Para cambios importantes, abra primero un problema para discutir lo que le gustaría cambiar.