STM32f1之光敏电阻传感器实验
一、光敏电阻模块简介
光敏电阻传感器模块是对光线敏感度的反应,一般用来检测探头周围光线的强度(亮度),可以通过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灯前,小车充完电,灯亮起,光敏感应到后启动电机;又比如走廊里的灯亮灭设置等等,用途很广泛。
这个暑假我会持续更新,道德绑架自己写,虽然可能写的质量不是很高,但是大家见谅,欢迎随时探讨交流,谢谢,而且由于我另外一块精英版被借走了,所以这个暑假我会用系统板来进行各项操作,具体代码移植后同样可以操作的,哪里不明白可以直接评论或者私聊我
题外话:
挺喜欢彭于晏说的一句话:“我就是没有才华,所以才用命去拼!”
学习32之路固然辛苦,但要是坚持下来了,那不是很酷?哈哈哈
