资讯详情

光敏传感器实验

文章目录

    • 概述
    • 实验程序
        • 光敏传感器的初始化
        • 读取Light Sens的值
        • main函数

概述

光敏传感器

将光信号转换为电信号 在可见光波长附近,包括红外波长和紫外波长

种类多 ,光电管、光电倍增管、光敏电阻、光敏三极管、太阳能电池、红外传感器、紫外传感器、光纤光电传感器、色彩传感器CCD和CMOS图像传感器

光传感器是目前产量最大、应用最广泛的传感器之一,在自动控制和非电测技术中占有非常重要的地位。

光敏二极管

光敏二极管又称光电二极管 与半导体二极管类似,其管芯具有光敏特性PN结,具有单向导电性,工作时需要增加反向电压。无光时,饱和反向泄漏电流很小,即暗电流,此时光敏二极管截止。饱和反向泄漏电流大大增加,形成光电流,随着射光强度的变化而变化。当光线照射PN结时,可以做到PN结中产生电子一空穴对,增加了少数载流子的密度。这些载流子在反向电压下漂移,增加反向电流。因此,电路中的电流可以来改变电路中的电流。 简而言之:光敏二极管的光强不同,光敏二极管的电流大小也不同

利用这种电流变化,串联一个电阻,转换为电压变化,通过ADC读取电压值,判断外部光的强度。

实验程序

通过ADC3_CH6检测光敏二极管一端电压间接检测光强的目的

光敏传感器的初始化

void Lsens_Init(void) { 
           GPIO_InitTypeDef  GPIO_InitStructure;   RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOF, ENABLE);//使能PORTF时钟     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_7;//PA7   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AN;///模拟输入   GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL ;//不带上下拉   GPIO_Init(GPIOF, &GPIO_InitStructure);//初始化     Adc3_Init();//初始化ADC3 } 

读取Light Sens的值

0-100 :光强越,光强越强

u8 Lsens_Get_Val(void) { 
          u32 temp_val=0;  u8 t;  for(t=0;t<LSENS_READ_TIMES;t )  { 
           temp_val =Get_Adc3(ADC_Channel_5); //读取ADC值,通道5   delay_ms(5);  }  temp_val/=LSENS_READ_TIMES;//得到平均值
	if(temp_val>4000)temp_val=4000;
	return (u8)(100-(temp_val/40));
}

main函数

int main(void)
{ 
         
 	u8 adcx;
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
	delay_init(168);    
	uart_init(115200);	
	LED_Init();					
 	LCD_Init();				
	Lsens_Init(); 		
	POINT_COLOR=RED; 
	LCD_ShowString(30,50,200,16,16,"Explorer STM32F4");	
	LCD_ShowString(30,70,200,16,16,"LSENS TEST");	
	LCD_ShowString(30,90,200,16,16,"ATOM@ALIENTEK");
	LCD_ShowString(30,110,200,16,16,"2021/8/28");	  
	POINT_COLOR=BLUE;//设置字体为蓝色
	LCD_ShowString(30,130,200,16,16,"LSENS_VAL:");	             
	while(1)
	{ 
        
		adcx=Lsens_Get_Val();
		LCD_ShowxNum(30+10*8,130,adcx,3,16,0);//显示ADC的值
		LED0=!LED0;
		delay_ms(250);	
	}
}

标签: 管光敏传感器79u光纤传感器pn3093传感器pn3006传感器375pa传感器

锐单商城拥有海量元器件数据手册IC替代型号,打造 电子元器件IC百科大全!

锐单商城 - 一站式电子元器件采购平台