【问题标题】:Reading Temperature sensor values on GPIO's of RPi. steps在 RPi 的 GPIO 上读取温度传感器值。脚步
【发布时间】:2013-08-29 04:47:17
【问题描述】:

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

【问题讨论】:

    标签: go sensors gpio


    【解决方案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读取值的实际过程包括将pin设置为input模式(示例代码均来自package watch example

    将 pin 设置为 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)
    }
    

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

    将 pin 设置为 output 模式:

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

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

    power.Set()
    power.Clear()
    

    别忘了Close()使用后的别针。

    pin.Close()
    power.Close()
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-09-23
      • 2019-08-01
      • 1970-01-01
      • 2018-04-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多