gobot.io/x/gobot/v2@v2.1.0/examples/tinkerboard_ads1115.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 "time" 12 13 "gobot.io/x/gobot/v2" 14 "gobot.io/x/gobot/v2/drivers/i2c" 15 "gobot.io/x/gobot/v2/platforms/tinkerboard" 16 ) 17 18 // Wiring 19 // PWR Tinkerboard: 1 (+3.3V, VCC), 2(+5V), 6, 9, 14, 20 (GND) 20 // I2C1 Tinkerboard: 3 (SDA-ws), 5 (SCL-gn) 21 // ADS1115 plate: VDD (2.0..5.5V), GND, SDL, SDA, A0..A3 (input voltage 0..5V) 22 func main() { 23 const voltage = 5.0 // we will be able to read values of at least 5V (for all channels) 24 25 a := tinkerboard.NewAdaptor() 26 ads1115 := i2c.NewADS1115Driver(a, i2c.WithADS1x15BestGainForVoltage(voltage)) 27 28 work := func() { 29 var a0, a1, a2, a3 float64 30 var err error 31 gobot.Every(2*time.Second, func() { 32 a0, err = ads1115.ReadWithDefaults(0) 33 if err != nil { 34 fmt.Println(err) 35 } else { 36 fmt.Println("A0", a0) 37 } 38 a1, err = ads1115.ReadWithDefaults(1) 39 if err != nil { 40 fmt.Println(err) 41 } else { 42 fmt.Println("A1", a1) 43 } 44 a2, err = ads1115.ReadWithDefaults(2) 45 if err != nil { 46 fmt.Println(err) 47 } else { 48 fmt.Println("A2", a2) 49 } 50 a3, err = ads1115.ReadWithDefaults(3) 51 if err != nil { 52 fmt.Println(err) 53 } else { 54 fmt.Println("A3", a3) 55 } 56 if v, err := ads1115.ReadDifferenceWithDefaults(0); err != nil { 57 fmt.Println(err) 58 } else { 59 fmt.Printf("A0-A1 %f, (e: %f)\n", v, v-(a0-a1)) 60 } 61 if v, err := ads1115.ReadDifferenceWithDefaults(1); err != nil { 62 fmt.Println(err) 63 } else { 64 fmt.Printf("A0-A3 %f, (e: %f)\n", v, v-(a0-a3)) 65 } 66 if v, err := ads1115.ReadDifferenceWithDefaults(2); err != nil { 67 fmt.Println(err) 68 } else { 69 fmt.Printf("A1-A3 %f, (e: %f)\n", v, v-(a1-a3)) 70 } 71 if v, err := ads1115.ReadDifferenceWithDefaults(3); err != nil { 72 fmt.Println(err) 73 } else { 74 fmt.Printf("A2-A3 %f, (e: %f)\n", v, v-(a2-a3)) 75 } 76 fmt.Println("-------------") 77 }) 78 } 79 80 robot := gobot.NewRobot("ads1115bot", 81 []gobot.Connection{a}, 82 []gobot.Device{ads1115}, 83 work, 84 ) 85 86 if err := robot.Start(); err != nil { 87 fmt.Println(err) 88 } 89 }