我是 Go 语言的初学者,请提供在 rpi 的 gpio 上读取温度传感器值的步骤。以及如何将读取的模拟信号处理为数字值以显示电压。
问问题
1004 次
1 回答
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 的gpio
包读取值的实际过程包括将引脚设置为input
模式(示例代码全部来自包watch
示例)
要将引脚设置为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()
您可以使用HIGH 和LOW将值写入输出引脚Clear()
:
power.Set()
power.Clear()
使用后别忘Close()
了别针。
pin.Close()
power.Close()
于 2013-08-29T07:26:10.613 回答