我是Beaglebone的新手,並且一直保持良好的點擊狀態,直到出現這個奇怪的問題。我在這裏張貼之前花了整個週末的時間試圖找出答案。在BeagleBone上讀取模擬輸入,避免出現「分段錯誤」錯誤
我正在嘗試使用來自Angstrom 3.2.5+的Beaglebone的多個傳感器來讀取模擬輸入,並且我有一個問題,我認爲這可能是硬件問題。
使用該Python script和Alexander Hiam's PyBBIO我已經能夠測試光敏電阻成功(該值到多和少的附帶光響應):
# Import PyBBIO library:
from bbio import *
# Create a setup function:
def setup(): pass # Nothing to do here
# Create a main function:
def loop():
print "-----"
print "AIN0 [P9.39] - " + str(analogRead(A0))
print "AIN1 [P9.40] - " + str(analogRead(A1))
print "AIN2 [P9.37] - " + str(analogRead(A2))
print "AIN3 [P9.38] - " + str(analogRead(A3))
print "AIN4 [P9.35] - " + str(analogRead(A4))
print "AIN5 [P9.36] - " + str(analogRead(A5))
print "AIN6 [P9.33] - " + str(analogRead(A6))
print "AIN7 [P9.39] - " + str(analogRead(A7))
delay(500)
# Start the loop:
run(setup, loop)
但是,任何其他的模擬式(AINX(2- 7))我用上面的腳本閱讀總是顯示我插入的光敏電阻相同的值 - AIN1
而且,可能有關,我無法閱讀任何使用貓的AINx(1-7)一個錯誤
cat /sys/bus/platform/devices/tsc/ain1
Segmentation fault
有何想法?我很困難。提前致謝。
PS:更多信息...
我的電路由一個10K的電阻和光敏電阻的。我的銷連接是:
- 頭P9引腳32(VDD_ADC(1.8V))以光電管的一端
- 頭P9引腳34(GNDA_ADC)到電阻
- 頭P9銷的另一端39(AIN0)至光電池的另一側與下拉電阻
這裏的一端沿是相匹配您自己的電路的圖像:
從所有AINX(1-7)的結果的,然後一些...
# cat /sys/bus/platform/devices/tsc/ain0
cat: /sys/bus/platform/devices/tsc/ain0: No such file or directory
# cat /sys/bus/platform/devices/tsc/ain1
Segmentation fault
# cat /sys/bus/platform/devices/tsc/ain2
Segmentation fault
# cat /sys/bus/platform/devices/tsc/ain3
Segmentation fault
# cat /sys/bus/platform/devices/tsc/ain4
Segmentation fault
# cat /sys/bus/platform/devices/tsc/ain5
Segmentation fault
# cat /sys/bus/platform/devices/tsc/ain6
Segmentation fault
# cat /sys/bus/platform/devices/tsc/ain7
Segmentation fault
# cat /sys/bus/platform/devices/tsc/ain8
Segmentation fault
# cat /sys/bus/platform/devices/tsc/ain9
cat: /sys/bus/platform/devices/tsc/ain9: No such file or directory
更新1
我編輯了analog_test_simple.py文件上顯示的BeagleBone所有ADC端口。這是來自外殼的結果,沒有傳感器插入。
-----
AIN0 [P9.39] - 3948
AIN1 [P9.40] - 4016
AIN2 [P9.37] - 4002
AIN3 [P9.38] - 3934
AIN4 [P9.35] - 4001
AIN5 [P9.36] - 3935
AIN6 [P9.33] - 3968
AIN7 [P9.39] - 4005
-----
AIN0 [P9.39] - 3946
AIN1 [P9.40] - 4005
AIN2 [P9.37] - 3945
AIN3 [P9.38] - 3957
AIN4 [P9.35] - 4018
AIN5 [P9.36] - 3945
AIN6 [P9.33] - 3967
AIN7 [P9.39] - 3955
...
如果我堵塞傳感器回我得到值的變化,但同樣,他們都是一樣的:
-----
AIN0 [P9.39] - 2836
AIN1 [P9.40] - 2836
AIN2 [P9.37] - 2837
AIN3 [P9.38] - 2831
AIN4 [P9.35] - 2840
AIN5 [P9.36] - 2837
AIN6 [P9.33] - 2837
AIN7 [P9.39] - 2837
-----
AIN0 [P9.39] - 2834
AIN1 [P9.40] - 2834
AIN2 [P9.37] - 2829
AIN3 [P9.38] - 2825
AIN4 [P9.35] - 2826
AIN5 [P9.36] - 2817
AIN6 [P9.33] - 2815
AIN7 [P9.39] - 2815
...
您將從[electronics.SE](http://electronics.stackexchange.com/)獲得更好的答案 –
是否有任何必要的函數來初始化/設置ADC - 告訴它需要使用多少個通道以及哪些範圍? YOu也可以在讀取之間嘗試短暫(0.1s?)的睡眠時間,以便將ADC時間交換到新的輸入並解決 –