1.参考链接
http://www.phidgets.com/docs/1143_User_Guide
http://beagleboard.org/support/bone101
2.使用phidget传感器注意事项
- phidget温感/湿感的数据输出电压超过1.8V, 而BBB的AIN接收电压不能超过1.8V,因此不能像压感/光感一样直接连接BBB的AIN串口后读取正常的数值。
- 通过Phidget InterfaceKit 888连接BBB的USB接口, 结合phidget库可以读取对应的数值。
3. ADC串口对照表
Name | Pin # | Pin # | Name |
---|---|---|---|
32 | VDD_ADC | ||
AIN4 | 33 | 34 | GNDA_ADC |
AIN6 | 35 | 36 | AIN5 |
AIN2 | 37 | 38 | AIN3 |
AIN0 | 39 | 40 | AIN1 |
4.手动打开ADC串口
root@beaglebone:/sys/class# echo cape-bone-iio > /sys/devices/bone_capemgr.*/slots
root@beaglebone:/sys/class# ls /sys/devices/ocp.3/helper.12/
AIN0 AIN1 AIN2 AIN3 AIN4 AIN5 AIN6 AIN7 driver modalias power subsystem uevent
5.使用python获取光感数值
- 连线图(
P9_1, P9_5
提供5V直流电压,P9_40
即AIN1作为ADC信号的输入)
- python代码示例
import Adafruit_BBIO.ADC as ADC
import time
ADC.setup()
if __name__ == "__main__":
while 1:
value = ADC.read_raw("P9_40")
print value
time.sleep(0.5)
- 运行效果
root@beaglebone:/data/apps# python test_ain.py
973.0
967.0
958.0
975.0
962.0
962.0
976.0
951.0
1109.0
1085.0
944.0
859.0
403.0
305.0
291.0
291.0
292.0
291.0
290.0
288.0
291.0
291.0
536.0
1010.0
1003.0
其中光感数值有所变化, 从900+到300,再到1000+; 主要是因为我改变了传感器周围的光照强度。至于数值所代表的意义, 还需要进一步做单位转换计算。