4. 扩展GPIO与传感器模块¶
前几节讲到,板载按键、蜂鸣器、LED使用的都是XL9535扩展IO。同时也引出了XL9535的4个扩展IO给用户自定义使用,分别是P1_0, P1_1, P1_2, P1_3:
以鲁班猫1为例,登入系统,执行如下命令打开配置文件,并开启XL9535设备树插件:
1 | sudo vi /boot/uEnv/uEnv.txt
|
重启板卡后,可执行如下命令测试:
1 2 3 4 | gpioset 6 8=0
gpioset 6 9=0
gpioset 6 10=0
gpioset 6 11=0
|
4.1. 光敏电阻模块、热敏电阻模块、火焰检测模块¶
光敏电阻模块介绍
野火光敏电阻模块可以旋转可调节电位器来设置阈值,模块在环境光线亮度达不到设定阈值时,DO端输 出高电平,当外界环境光线亮度超过设定阈值时,DO端输出低电平,AO端输出为ADC采集的光敏电阻的模拟量。
热敏电阻模块介绍
热敏电阻模块可以旋转可调节电位器来设置阈值,模块在环境温度达不到设定阈值时,DO端输出高 电平,当外界环境温度超过设定阈值时,DO端输出低电平,AO端输出为ADC采集的热敏电阻的模拟量。
火焰检测模块介绍
火焰检测模块可以检测火焰或者波长在 760nm~1100nm 范围内的光源,通过旋转可调节电位器,可 以设定火焰检测模块感应火焰的强度,当火焰强度达不到设定阈值时,DO端输出高电平,当火焰强度超 过设定阈值时,DO端输出低电平,AO端供ADC采集火焰检测模块的模拟量。
注解
关于各传感器更详细的信息可以参考其规格手册。
代码测试
本次代码测试将光敏电阻、热敏电阻、火焰模块的DO信号连接到扩展GPIO,通过调节模块自身的阈值旋钮,实时查看模块的DO输出信号。
传感器模块与扩展板接线表
模块 |
扩展GPIO |
---|---|
光敏电阻模块-DO脚 |
P1_0 |
热敏电阻模块-DO脚 |
P1_1 |
火焰检测模块-DO脚 |
P1_2 |
python代码测试
python测试代码为:lubancat_rk_code_storage/expansion_board/gpio_sensor/gpio_sensor.py
将程序拷贝到板卡,执行如下命令运行程序:
1 2 | # 运行程序
sudo python gpio_sensor.py
|
通过调节各传感器模块上的阈值,观察程序输出变化。
c代码测试
c测试代码为:lubancat_rk_code_storage/expansion_board/gpio_sensor/gpio_sensor.c
将程序拷贝到板卡,执行如下命令编译,运行程序:
1 2 3 4 5 | # 编译程序
sudo gcc -o gpio_sensor gpio_sensor.c -lgpiod
# 运行程序
sudo ./gpio_sensor
|
通过调节各传感器模块上的阈值,观察程序输出变化。