func main() { if err := embd.InitGPIO(); err != nil { panic(err) } defer embd.CloseGPIO() echoPin, err := embd.NewDigitalPin(10) if err != nil { panic(err) } triggerPin, err := embd.NewDigitalPin(9) if err != nil { panic(err) } rf := us020.New(echoPin, triggerPin, nil) defer rf.Close() for { distance, err := rf.Distance() if err != nil { panic(err) } fmt.Printf("Distance is %v\n", distance) time.Sleep(500 * time.Millisecond) } }
func main() { flag.Parse() if err := embd.InitGPIO(); err != nil { panic(err) } defer embd.CloseGPIO() echoPin, err := embd.NewDigitalPin("P9_21") if err != nil { panic(err) } triggerPin, err := embd.NewDigitalPin("P9_22") if err != nil { panic(err) } rf := us020.New(echoPin, triggerPin, nil) defer rf.Close() quit := make(chan os.Signal, 1) signal.Notify(quit, os.Interrupt, os.Kill) for { select { default: distance, err := rf.Distance() if err != nil { panic(err) } fmt.Printf("Distance is %v\n", distance) time.Sleep(500 * time.Millisecond) case <-quit: return } } }
func NewRangeFinder(echoPin, triggerPin embd.DigitalPin, thermometer us020.Thermometer) RangeFinder { return &rangeFinder{us020.New(echoPin, triggerPin, thermometer)} }