ADC实验之光敏传感器 |
您所在的位置:网站首页 › adc运算 › ADC实验之光敏传感器 |
ADC实验之光敏传感器
硬件连接
我们可以测量A的电位,进而测量光的强度,光强与A点电压的对应关系如下:
电流反应的光敏二极管的导通状态,光强与电流对应关系如下:
因此,我们可以得出ADC读取的电压值的数字量(12位)与光照强度的关系: 软件配置(采用单通道单次转换的ADC) Main.c #include "stm32f10x.h" #include "delay.h" #include "lcd.h" #include "usart.h" #include "LightSensor.h" int main() { u8 LightSensor = 0; delay_init(); NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); LightSensor_InitConfig(); uart_init(115200); LCD_Init(); while(1) { LightSensor = DigitalConvLight(); printf("LightSensor = %d\n",LightSensor); LCD_ShowNum(10,10,LightSensor,4,16); delay_ms(50); } } LightSensor.c #include "LightSensor.h" #include "stm32f10x.h" #include "delay.h" void LightSensor_InitConfig() { ADC_InitTypeDef ADC_InitStructure; GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC3|RCC_APB2Periph_GPIOF,ENABLE); GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN; GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOF,&GPIO_InitStructure); ADC_DeInit(ADC3); // ADC3复位 RCC_ADCCLKConfig(RCC_PCLK2_Div6); // ADC正常工作的频率=4000?4000:temp; return temp; } u8 DigitalConvLight() { u8 i = 0; float temp = 0; while(i |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |