gobot.io/x/gobot/v2@v2.1.0/examples/raspi_grove_pi_button.go (about) 1 //go:build example 2 // +build example 3 4 // 5 // Do not build by default. 6 7 package main 8 9 import ( 10 "fmt" 11 12 "gobot.io/x/gobot/v2" 13 "gobot.io/x/gobot/v2/drivers/gpio" 14 "gobot.io/x/gobot/v2/drivers/i2c" 15 "gobot.io/x/gobot/v2/platforms/raspi" 16 ) 17 18 func main() { 19 r := raspi.NewAdaptor() 20 gp := i2c.NewGrovePiDriver(r) 21 button := gpio.NewButtonDriver(gp, "D3") 22 led := gpio.NewLedDriver(gp, "D2") 23 24 work := func() { 25 button.On(gpio.ButtonPush, func(data interface{}) { 26 fmt.Println("button pressed") 27 led.On() 28 }) 29 30 button.On(gpio.ButtonRelease, func(data interface{}) { 31 fmt.Println("button released") 32 led.Off() 33 }) 34 } 35 36 robot := gobot.NewRobot("buttonBot", 37 []gobot.Connection{r}, 38 []gobot.Device{gp, button, led}, 39 work, 40 ) 41 42 robot.Start() 43 }