1
0
mirror of https://github.com/kidoman/embd synced 2024-06-02 00:58:06 +02:00
embd/samples/mcp3208.go
npotts 90b7ee68d8 Dont panic due to potential issues (especially in light of error #24)
Signed-off-by: npotts <npotts@users.noreply.github.com>
2016-01-10 00:50:15 -07:00

49 lines
1.0 KiB
Go

// +build ignore
// this sample uses the mcp3008 package to interface with a similar MCP3208, which is a 12 bit variant. Works without code change on bbb and rpi
package main
import (
"flag"
"fmt"
"time"
"github.com/kidoman/embd"
// "github.com/kidoman/embd/convertors/mcp3008"
_ "github.com/kidoman/embd/host/all"
"github.com/npotts/embd/convertors/mcp3008"
)
const (
channel = 0
speed = 1000000
bpw = 8
delay = 0
)
func main() {
flag.Parse()
fmt.Println("this is a sample code for mcp3008 10bit 8 channel ADC")
if err := embd.InitSPI(); err != nil {
panic(err)
}
defer embd.CloseSPI()
spiBus := embd.NewSPIBus(embd.SPIMode0, channel, speed, bpw, delay)
defer spiBus.Close()
adc := &mcp3008.MCP3008{Mode: mcp3008.SingleMode, Bus: spiBus, Bits: mcp3008.Bits12}
// adc := mcp3008.New(mcp3008.SingleMode, spiBus)
for i := 0; i < 20; i++ {
time.Sleep(1 * time.Second)
val, err := adc.AnalogValueAt(0)
if err != nil {
fmt.Println("Error: ", err)
}
fmt.Printf("analog value is: %v\n", val)
}
}