2013-08-29 124 views

回答

1

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

「不幸的是所有的樹莓派的17個引腳的數字,其可以輸出高電平或低電平。但是,通過使用一個簡單的電路(窮人的A/d轉換器),你可以測量使用單個GPIO引腳的多個數值級別。「

您可以做類似的指導的東西,或者AD轉換器連接到您的樹莓派。

的使用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()