Arduino 光敏感应器与简易光敏

deanyuancn
发布于 2021-2-2 09:27
浏览
0收藏

这一款是非常简单的光敏感应器

简单到,只对一定光强度有信号感应,输出TTL电平。

此款也是用电位器来调节的。

都是这么简单。

过段时间我为大家奉上数字版的光敏传感器。

——————————————————————————————————

这里面是商家提供的资料:

 

用途:
光线亮度检测,光线亮度传感器,具有方向性,只感应传感器正前方的光源,用于寻光效果更佳


模块特色:
1 可以检测周围环境的亮度和光强度(与光敏电阻比较,方向性比较好,可以感知固定方向的光源)
2 灵敏度可调(图中蓝色数字电位器调节)
3 工作电压3.3V-5V
4 数字开关量输出(0和1)
5 设有固定螺栓孔,方便安装
6 小板PCB尺寸:3.2cm * 1.4cm


使用说明


1 光敏二极管模块对环境光强最敏感,一般用来检测周围环境的亮度和光强,在大多数场合可以与光敏电阻传感器模块通用,二者区别在于,光敏二极管模块方向性较好,可以感知固定方向的光源。
2 模块在无光条件或者光强达不到设定阈值时,DO口输出高电平,当外界环境光强超过设定阈值时,模块D0输出低电平;
3 小板数字量输出D0可以与单片机直接相连,通过单片机来检测高低电平,由此来检测环境的光强改变;
4 小板数字量输出DO可以直接驱动本店继电器模块,由此可以组成一个光电开关;

 

产品结构及接线图

 

 

单片机测试程序:

/******************************************
传感器触发测试
单片机:STC89C52
波特率:9600
产品用途:光线检测。
*****************************************/
#include <reg52.h>
unsigned char date;
#define uchar unsigned char
#define uint unsigned int
sbit key1=P0^1;

 


/* 函数申明 -----------------------------------------------*/
void delay(uint z);
void Initial_com(void);

//***********************************************************

/*
********************************************************************************
** 函数名称 : delay(uint z)
** 函数功能 : 延时函数
********************************************************************************
*/
void delay(uint z)
{
uint i,j;
for(i=z;i>0;i--)
for(j=110;j>0;j--);
}


//******************************

//*****串口初始化函数***********

//******************************
void Initial_com(void)
{
EA=1; //开总中断
ES=1; //允许串口中断
ET1=1; //允许定时器T1的中断
TMOD=0x20; //定时器T1,在方式2中断产生波特率
PCON=0x00; //SMOD=0
SCON=0x50; // 方式1 由定时器控制
TH1=0xfd; //波特率设置为9600
TL1=0xfd;
TR1=1; //开定时器T1运行控制位

}

 


//*************************
//**********主函数*********
//*************************
main()
{
Initial_com();
while(1)
{

if(key1==0)
{
delay(); //消抖动
if(key1==0) //确认触发
{
SBUF=0X01;
delay(200);


}

}

if(RI)
{
date=SBUF; //单片机接受
SBUF=date; //单片机发送
RI=0;
}


}
}

 

调试方法,前几篇关于模块的博客一样,都是用的相同的方法调试的。

把模块的D口接入arduino Pin2上。

打开串口监视器看效果:

void setup()
{
  pinMode(2, INPUT);
  Serial.begin(9600);
}

void loop()
{
  
  int temp = digitalRead(2);
  Serial.println(temp);
  delay(200);
  
}

放在光源下,和不放在光源下

Arduino 光敏感应器与简易光敏-鸿蒙开发者社区

默认为输出1,高电平,

有光的时候输出低电平 0V

无光的时候输出高电平 5V

 

这里的光强度指的是通过电位器调节的一个阈值。临界值而已。

给大家看看实际效果:

接近光源:Arduino 光敏感应器与简易光敏-鸿蒙开发者社区

大拇指处的指示灯亮了

离开光源:Arduino 光敏感应器与简易光敏-鸿蒙开发者社区

离开等就灭了,很简单的一个小程序。显示屏上是显示的串口01数据

靠近就出0

离开就出1

 

——————使用结论:灵敏度很差。。

------下次弄个数字的。这个仅仅是个简单的二极管传感器罢了。

分类
已于2021-2-2 09:27:32修改
收藏
回复
举报
回复