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;
}


}
}

 
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20.
  • 21.
  • 22.
  • 23.
  • 24.
  • 25.
  • 26.
  • 27.
  • 28.
  • 29.
  • 30.
  • 31.
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41.
  • 42.
  • 43.
  • 44.
  • 45.
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.
  • 59.
  • 60.
  • 61.
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69.
  • 70.
  • 71.
  • 72.
  • 73.
  • 74.
  • 75.
  • 76.
  • 77.
  • 78.
  • 79.
  • 80.
  • 81.
  • 82.
  • 83.
  • 84.
  • 85.
  • 86.
  • 87.
  • 88.
  • 89.
  • 90.
  • 91.

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

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

打开串口监视器看效果:

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

void loop()
{
  
  int temp = digitalRead(2);
  Serial.println(temp);
  delay(200);
  
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.

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

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

默认为输出1,高电平,

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

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

 

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

给大家看看实际效果:

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

大拇指处的指示灯亮了

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

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

靠近就出0

离开就出1

 

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

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

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


回复