mirror of
https://github.com/tinygo-org/drivers.git
synced 2026-08-08 00:43:39 +00:00
@@ -0,0 +1,53 @@
|
||||
package main
|
||||
|
||||
import (
|
||||
"machine"
|
||||
"strconv"
|
||||
"time"
|
||||
|
||||
"tinygo.org/x/drivers/bmp388"
|
||||
)
|
||||
|
||||
func main() {
|
||||
|
||||
machine.I2C0.Configure(machine.I2CConfig{})
|
||||
|
||||
sensor := bmp388.New(machine.I2C0)
|
||||
if !sensor.Connected() {
|
||||
println("Uh oh, BMP388 not detected")
|
||||
return
|
||||
}
|
||||
|
||||
// The accuracy of the sensor can be increased, at the cost of a slower output rate. Table 9 in Section 3.5 of the
|
||||
// datasheet has recommended settings for common use cases. If increasing the sampling rate, the output data rate
|
||||
// (ODR) will likely have to be decreased. Configure() will return an error if there's a problem with the
|
||||
// configuration settings - keep decreasing the ODR and cycling the power to the sensor until it is happy.
|
||||
err := sensor.Configure(bmp388.Config{
|
||||
Pressure: bmp388.Sampling8X,
|
||||
Temperature: bmp388.Sampling2X,
|
||||
ODR: bmp388.Odr25,
|
||||
IIR: bmp388.Coeff0,
|
||||
Mode: bmp388.Normal,
|
||||
})
|
||||
|
||||
// This is also fine
|
||||
// err := sensor.Configure(bmp388.BMP388Config{})
|
||||
|
||||
if err != nil {
|
||||
println(err)
|
||||
}
|
||||
|
||||
for {
|
||||
temp, err := sensor.ReadTemperature() // returns the temperature in centicelsius
|
||||
press, err := sensor.ReadPressure() // returns the pressure in centipascals
|
||||
|
||||
if err != nil {
|
||||
println(err)
|
||||
} else {
|
||||
println("Temperature: " + strconv.FormatInt(int64(temp), 10) + " cC")
|
||||
println("Pressure: " + strconv.FormatInt(int64(press), 10) + " cPa\n")
|
||||
}
|
||||
|
||||
time.Sleep(time.Second)
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user