You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
devices/tca95xx/example_test.go

51 lines
1013 B
Go

// Copyright 2022 The Periph Authors. All rights reserved.
// Use of this source code is governed under the Apache License, Version 2.0
// that can be found in the LICENSE file.
package tca95xx_test
import (
"fmt"
"log"
"periph.io/x/conn/v3/gpio"
"periph.io/x/conn/v3/i2c/i2creg"
"periph.io/x/devices/v3/tca95xx"
"periph.io/x/host/v3"
)
func Example() {
// Make sure periph is initialized.
if _, err := host.Init(); err != nil {
log.Fatal(err)
}
// Open default I²C bus.
bus, err := i2creg.Open("")
if err != nil {
log.Fatalf("failed to open I²C: %v", err)
}
defer bus.Close()
// Create a new I2C IO extender
extender, err := tca95xx.New(bus, tca95xx.TCA9534, 0x20)
if err != nil {
log.Fatalln(err)
}
for _, port := range extender.Pins {
for _, pin := range port {
err = pin.In(gpio.Float, gpio.NoEdge)
if err != nil {
log.Fatalln(err)
}
level := pin.Read()
fmt.Printf("%s\t%s\n", pin.Name(), level.String())
}
}
if err != nil {
log.Fatalln(err)
}
}