Я использую https://github.com/MichaelS11/go-hx711, который считывает данные из преобразователя AD C с тензодатчиком HX711.
Показания довольно точные, однако я заметил, что продолжаю запрашивать текущий значение веса в течение 15-20 минут - показания начинают значительно дрейфовать (вес не меняется, температура в помещении стабильная). Первоначально он самокалибруется и точность считывания составляет ± 0,3 г. Однако через 5 минут он имеет примерно + 1 г при чтении, а через 20 минут разница составляет 6 грамм и продолжает расти.
Это происходит с весами или ADP? Я пробовал несколько разных чипов, и поведение довольно стабильно, поэтому я пытаюсь понять, связано ли это с кодом?
package main
import (
"fmt"
"time"
"github.com/MichaelS11/go-hx711"
)
func main() {
err := hx711.HostInit()
if err != nil {
fmt.Println("HostInit error:", err)
return
}
hx711, err := hx711.NewHx711("GPIO6", "GPIO5")
if err != nil {
fmt.Println("NewHx711 error:", err)
return
}
defer hx711.Shutdown()
err = hx711.Reset()
if err != nil {
fmt.Println("Reset error:", err)
return
}
var data int
for {
time.Sleep(1 * time.Second)
data, err = hx711.ReadDataRaw()
if err != nil {
fmt.Println("ReadDataRaw error:", err)
continue
}
fmt.Println(data)
}
}