goina219
1.0.0
Aviso: Goina219 não está pronto para o horário nobre!
Goina219 é um pacote simples de Golang para configurar e ler o monitor de corrente/energia bidirecional do INA219 em 2 C.
Atualmente, ele está disponível apenas para os sistemas *nix, pois aproveita o pacote github.com/NeuralSpaz/i2c para i 2 C.
Com as dependências instaladas, basta usar:
go get github.com/jeffalyanak/goina219
O uso é muito simples e um exemplo está incluído no example/ diretório.
Uma configuração deve ser gerada:
config := ina219 . Config (
ina219 . Range32V ,
ina219 . Gain320MV ,
ina219 . Adc12Bit ,
ina219 . Adc12Bit ,
ina219 . ModeContinuous ,
)E uma estrutura 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 ))
}A função de leitura pode ser chamada:
err := ina219 . Read ( myINA219 )
if err != nil {
// error
}Potência e corrente agora podem ser acessados a partir da estrutura:
fmt . Printf (
"Power: %fw, Current: %fa, Voltage: %fv, Shunt: %fv" ,
myINA219 . Power ,
myINA219 . Current ,
myINA219 . Bus ,
myINA219 . Shunt ,
)| Faixa | Parâmetro |
|---|---|
| 16V | goina219.Range16V |
| 32V | goina219.Range32V |
| Ganho | Parâmetro |
|---|---|
| 40mv | goina219.gain40mv |
| 80mv | goina219.gain80mv |
| 160mv | goina219.gain160mv |
| 320mv | GOINA219.GAIN320MV |
| Amostras | Profundidade de bits | Tempo de amostra | Parâmetro |
|---|---|---|---|
| 1 | 9 bits | 84μs | goina219.adc9bit |
| 1 | 10 bits | 148μs | goina219.adc10bit |
| 1 | 11 bits | 276μs | goina219.adc11bit |
| 1 | 12 bits | 532μs | goina219.adc12bit |
| 2 | 12 bits | 1060μs | goina219.adc2samp |
| 4 | 12 bits | 2130μs | goina219.adc4samp |
| 8 | 12 bits | 4260μs | goina219.adc8samp |
| 16 | 12 bits | 8510μs | goina219.adc16samp |
| 32 | 12 bits | 17020μs | goina219.adc32samp |
| 64 | 12 bits | 34050μs | goina219.adc64samp |
| 128 | 12 bits | 68100μs | GOINA219.ADC128Samp |
Os pedidos de mesclagem são bem -vindos. Para grandes mudanças, abra um problema primeiro para discutir o que você gostaria de mudar.