【EmbeddedDev】BBB上通过ADC串口获取光感数值

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信号的输入)
    【EmbeddedDev】BBB上通过ADC串口获取光感数值_第1张图片
  • 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+; 主要是因为我改变了传感器周围的光照强度。至于数值所代表的意义, 还需要进一步做单位转换计算。

你可能感兴趣的:(嵌入式开发,智能硬件开发入门与进阶)