4. 扩展GPIO与传感器模块

前几节讲到,板载按键、蜂鸣器、LED使用的都是XL9535扩展IO。同时也引出了XL9535的4个扩展IO给用户自定义使用,分别是P1_0, P1_1, P1_2, P1_3:

../_images/show-board-gpio.png
../_images/show-circuit-gpio.png

以鲁班猫1为例,登入系统,执行如下命令打开配置文件,并开启XL9535设备树插件:

1
sudo vi /boot/uEnv/uEnv.txt
../_images/show-dtbo3.png

重启板卡后,可执行如下命令测试:

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采集的光敏电阻的模拟量。

../_images/show-peripheral-ldr.png

热敏电阻模块介绍

热敏电阻模块可以旋转可调节电位器来设置阈值,模块在环境温度达不到设定阈值时,DO端输出高 电平,当外界环境温度超过设定阈值时,DO端输出低电平,AO端输出为ADC采集的热敏电阻的模拟量。

../_images/show-peripheral-thermistor.png

火焰检测模块介绍

火焰检测模块可以检测火焰或者波长在 760nm~1100nm 范围内的光源,通过旋转可调节电位器,可 以设定火焰检测模块感应火焰的强度,当火焰强度达不到设定阈值时,DO端输出高电平,当火焰强度超 过设定阈值时,DO端输出低电平,AO端供ADC采集火焰检测模块的模拟量。

../_images/show-peripheral-flame.png

注解

关于各传感器更详细的信息可以参考其规格手册。

代码测试

本次代码测试将光敏电阻、热敏电阻、火焰模块的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

通过调节各传感器模块上的阈值,观察程序输出变化。

../_images/show-operation-coderun.png