mirror of
https://github.com/tinygo-org/drivers.git
synced 2026-07-26 10:38:41 +00:00
ec680be784
Instead of printing an error, this driver really should be returning errors instead. Also, `Configure` didn't have a way to actually configure the driver. This is now added, and can be expanded in the future. This is a breaking change.
42 lines
917 B
Go
42 lines
917 B
Go
// Connects to a LIS3DH I2C accelerometer on the Adafruit Circuit Playground Express.
|
|
package main
|
|
|
|
import (
|
|
"machine"
|
|
"time"
|
|
|
|
"tinygo.org/x/drivers/lis3dh"
|
|
)
|
|
|
|
var i2c = machine.I2C1
|
|
|
|
func main() {
|
|
i2c.Configure(machine.I2CConfig{SCL: machine.SCL1_PIN, SDA: machine.SDA1_PIN})
|
|
|
|
accel := lis3dh.New(i2c)
|
|
err := accel.Configure(lis3dh.Config{
|
|
Address: lis3dh.Address1, // address on the Circuit Playground Express
|
|
})
|
|
for err != nil {
|
|
println("could not configure LIS3DH:", err)
|
|
time.Sleep(time.Second)
|
|
}
|
|
err = accel.SetRange(lis3dh.RANGE_2_G)
|
|
for err != nil {
|
|
println("could not set acceleration range:", err)
|
|
time.Sleep(time.Second)
|
|
}
|
|
|
|
println(accel.Connected())
|
|
|
|
for {
|
|
x, y, z, _ := accel.ReadAcceleration()
|
|
println("X:", x, "Y:", y, "Z:", z)
|
|
|
|
rx, ry, rz := accel.ReadRawAcceleration()
|
|
println("X (raw):", rx, "Y (raw):", ry, "Z (raw):", rz)
|
|
|
|
time.Sleep(time.Millisecond * 100)
|
|
}
|
|
}
|