我是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时间交换到新的输入并解决 –