一、光敏电阻模块简介
光敏电阻传感器模块是对光线敏感度的反应,一般用来检测探头周围光线的强度(亮度),可以通过DO输出数字信号1和0,也可以通过AO口输出模拟信号
调节阈值:我们可以通过旋钮来改变它的阈值,如图
当检测到周围光线较暗时(在阈值范围内),DO口输出高电平,电压大;当检测到周围光线较亮时(超过我们设定的阈值),DO口输出低电平,电压小。
AO口作为模拟信号输出,可以连接到单片机上拥有的AD转换模块或者外置AD转换模块,通过转换,就可以得到更为精准的光线亮度数值。
这里我主要是用DO口做一个简单的实验,方便大家理解。
二、实验过程
在这里我主要是采用PD11作为DO输入口
光敏模块初始化:
- #include "gm.h"
- void gm_Init(void)
- {
- GPIO_InitTypeDef GPIO_InitStructure;
-
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE);
-
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
- GPIO_Init(GPIOD, &GPIO_InitStructure);
- GPIO_SetBits(GPIOD,GPIO_Pin_11);
- }
复制代码
头文件声明:
- #ifndef __GM_H
- #define __GM_H
- #include "sys.h"
- #define gm PDin(11)
- void gm_Init(void);
- #endif
复制代码
主函数:
- #include "led.h"
- #include "gm.h"
- int main(void)
- {
- delay_init();
- LED_Init();
- gm_Init();
- while(1)
- {
- if(gm==1)
- {
- LED0=1;
- LED1=1;
- }
- if(gm==0)
- {
- delay_ms(50);
- if(gm==0)
- {
- LED0=0;
- LED1=0;
- }
- }
- }
- }
复制代码
实验截图:
三、总结
到这里就很清晰明了了,开始上手吧,关于光敏模块的用途,就是检测光线强度,我们添加光敏模块,很多地方都可以用到,比如像去年的无线充电小车,将光敏模块放置在LED灯前,小车充完电,灯亮起,光敏感应到后启动电机;又比如走廊里的灯亮灭设置等等,用途很广泛。
|