package main import ( "log" "os" "os/signal" "time" "github.com/kidoman/embd" "github.com/kidoman/embd/controller/pca9685" ) func main() { i2c, err := embd.NewI2C() if err != nil { panic(err) } bus := i2c.Bus(1) pca9685 := pca9685.New(bus, 0x41) pca9685.Freq = 1000 pca9685.Debug = true defer pca9685.Close() if err := pca9685.SetPwm(15, 0, 2000); err != nil { log.Panic(err) } c := make(chan os.Signal, 1) signal.Notify(c, os.Interrupt, os.Kill) timer := time.Tick(2 * time.Second) sleeping := false for { select { case <-timer: sleeping = !sleeping if sleeping { pca9685.Sleep() } else { pca9685.Wake() } case <-c: return } } }