mirror of
https://github.com/tinygo-org/drivers.git
synced 2026-07-26 10:38:41 +00:00
303ec94529
fixed the spelling in the Connection error message; Initial support for LSM303DLHC added; Added LSM303DLHC to smoketest and added an example; Removed unnecessary comments; fixed format error; squashed and ready for merge;
59 lines
1.5 KiB
Go
59 lines
1.5 KiB
Go
package main
|
|
|
|
import (
|
|
"machine"
|
|
"time"
|
|
|
|
"tinygo.org/x/drivers/lsm303dlhc"
|
|
)
|
|
|
|
func main() {
|
|
|
|
// LSM303DLHC is connected to the I2C0 bus on Adafruit Feather M4 via pins: 20(SDA) and 21(SCL).
|
|
machine.I2C0.Configure(machine.I2CConfig{})
|
|
|
|
sensor := lsm303dlhc.New(machine.I2C0)
|
|
//default settings
|
|
err := sensor.Configure(lsm303dlhc.Configuration{
|
|
AccelPowerMode: lsm303dlhc.ACCEL_POWER_NORMAL,
|
|
AccelRange: lsm303dlhc.ACCEL_RANGE_2G,
|
|
AccelDataRate: lsm303dlhc.ACCEL_DATARATE_100HZ,
|
|
MagPowerMode: lsm303dlhc.MAG_POWER_NORMAL,
|
|
MagSystemMode: lsm303dlhc.MAG_SYSTEM_CONTINUOUS,
|
|
MagDataRate: lsm303dlhc.MAG_DATARATE_10HZ,
|
|
})
|
|
if err != nil {
|
|
for {
|
|
println("Failed to configure", err.Error())
|
|
time.Sleep(time.Second)
|
|
}
|
|
}
|
|
|
|
for {
|
|
accel_x, accel_y, accel_z, err := sensor.ReadAcceleration()
|
|
if err != nil {
|
|
println("Failed to read accel", err.Error())
|
|
}
|
|
println("ACCEL_X:", accel_x, " ACCEL_Y:", accel_y, " ACCEL_Z:", accel_z)
|
|
|
|
mag_x, mag_y, mag_z, err := sensor.ReadMagneticField()
|
|
if err != nil {
|
|
println("Failed to read mag", err.Error())
|
|
}
|
|
println("MAG_X:", mag_x, " MAG_Y:", mag_y, " MAG_Z:", mag_z)
|
|
|
|
pitch, roll, _ := sensor.ReadPitchRoll()
|
|
println("Pitch:", float32(pitch), " Roll:", float32(roll))
|
|
|
|
heading, _ := sensor.ReadCompass()
|
|
println("Heading:", float32(heading), "degrees")
|
|
|
|
temp, _ := sensor.ReadTemperature()
|
|
println("Temperature:", float32(temp)/1000, "*C")
|
|
|
|
println("\n")
|
|
time.Sleep(time.Millisecond * 250)
|
|
}
|
|
|
|
}
|