私は Go 言語の初心者です。rpi の gpio で温度センサーの値を読み取る手順を教えてください。電圧を表示するために、読み取ったアナログ信号をデジタル値に処理する方法。
1 に答える
http://www.rpiblog.com/2012/11/reading-analog-values-from-digital-pins.htmlから
「残念ながら、Raspberry Pi の 17 ピンはすべてデジタルであり、HIGH または LOW を出力できます。しかし、単純な回路 (貧弱な 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 とClear()
LOWを使用して出力ピンに値を書き込みます。
power.Set()
power.Clear()
Close()
使用後はピン留めをお忘れなく。
pin.Close()
power.Close()