mirror of
https://github.com/kidoman/embd
synced 2025-07-03 11:57:38 +02:00
mcp3008: added package and samples for mcp3008 10-bit 8-channel adc
This commit is contained in:
parent
42033238e2
commit
59958d7dfc
7 changed files with 163 additions and 4 deletions
46
samples/spimcp3008.go
Normal file
46
samples/spimcp3008.go
Normal file
|
@ -0,0 +1,46 @@
|
|||
package main
|
||||
|
||||
import (
|
||||
"flag"
|
||||
"fmt"
|
||||
"time"
|
||||
|
||||
"github.com/kidoman/embd"
|
||||
_ "github.com/kidoman/embd/host/all"
|
||||
)
|
||||
|
||||
func main() {
|
||||
flag.Parse()
|
||||
if err := embd.InitSPI(); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
|
||||
bus := embd.NewSPIBus(embd.SpiMode0, 0, 1000000, 8, 0)
|
||||
|
||||
defer clean(bus)
|
||||
|
||||
for i := 0; i < 30; i++ {
|
||||
time.Sleep(1 * time.Second)
|
||||
val, _ := getSensorValue(bus)
|
||||
fmt.Printf("value is: %v\n", val)
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
func clean(bus embd.SPIBus) {
|
||||
bus.Close()
|
||||
embd.CloseSPI()
|
||||
}
|
||||
|
||||
func getSensorValue(bus embd.SPIBus) (uint16, error) {
|
||||
data := make([]uint8, 3)
|
||||
data[0] = 1
|
||||
data[1] = 128
|
||||
data[2] = 0
|
||||
var err error
|
||||
err = bus.TransferAndRecieveData(data)
|
||||
if err != nil {
|
||||
return uint16(0), err
|
||||
}
|
||||
return uint16(data[1]&0x03)<<8 | uint16(data[2]), nil
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue