读取RPi的GPIO上的温度传感器值。脚步

时间:2013-08-29 04:47:18

标签: go sensor gpio

我是Go语言的初学者,请给我一些步骤来读取rpi的gpio上的温度传感器值。以及如何将读取的模拟信号处理为数字值以显示电压。

1 个答案:

答案 0 :(得分:1)

来自http://www.rpiblog.com/2012/11/reading-analog-values-from-digital-pins.html

  
    

“不幸的是,Raspberry Pi的所有17个引脚都是数字的,可以输出高电平或低电平。但是通过使用简单的电路(穷人的A / D转换器),您可以使用单个GPIO引脚测量多个值。”

  

您可以执行与该指南类似的操作,也可以将AD转换器连接到Raspberry Pi。

使用Dave Cheney's gpio package读取值的实际过程包括将引脚设置为input模式(示例代码全部来自package watch example

将引脚设置为input模式:

pin, err := gpio.OpenPin(gpio.GPIO22, gpio.ModeInput)
if err != nil {
    fmt.Printf("Error opening pin! %s\n", err)
    return
}

然后通过调用输入引脚上的BeginWatch()来获取HIGH或LOW值:

err = pin.BeginWatch(gpio.EdgeFalling, func() {
    fmt.Printf("Callback for %d triggered!\n\n", gpio.GPIO22)
})
if err != nil {
    fmt.Printf("Unable to watch pin: %s\n", err.Error())
    os.Exit(1)
}

然后使用第一个链接中列出的步骤处理这些值,然后您必须创建正确的输出信号来驱动数字显示器(这些信号可能因型号,功能和许多其他因素而有很大差异。我需要查找你正在使用的显示器的参考。

将引脚设置为output模式:

power, err := gpio.OpenPin(gpio.GPIO17, gpio.ModeOutput)
if err != nil {
    fmt.Printf("Error opening pin! %s\n", err)
    return
}

您可以使用Set()将值写入输出引脚,将Clear()写入LOW:

power.Set()
power.Clear()

使用后请勿忘记Close()针脚。

pin.Close()
power.Close()