|
STM32F103RCT6+光敏傳感器監(jiān)測光照強(qiáng)度可以用串口助手接收
我用的是四針腳光敏傳感器
不同型號的STM32 ADC通道的選擇也不一樣
我使用的是STM32F103RCT6單片機(jī) 選擇了ADC2 通道6 對應(yīng)的是PA6引腳。
希望對你們有幫助
下面是部分STM32單片機(jī)代碼
主函數(shù)
- #include "stm32f10x.h"
- #include "beep.h"
- #include "delay.h"
- #include "lcd.h"
- #include "usart.h"
- #include "adc.h"
- #include "lsens.h"
- #include "stdio.h"
- int main(void)
- {
- u8 ADCX;
- u8 t=0,i;
- char LSEN[20];
- USART1_init();
- BEEP_Init();
- LCD_Init();
- Lsens_Init();
- LCD_BLK = 0;
- for(i=3;i>0;i--)
- {
- LCD_DrawFont_Num32(50,80,RED,YELLOW,i);
- delay_ms(1000);
- }
- LCD_Clear(GREEN);
- LCD_DrawFont_GBK16(25,0,BLUE,GREEN, "運(yùn)行中...");
- LCD_DrawFont_GBK16(5,60,BLACK,GREEN, "光照:");
- LCD_DrawFont_GBK16(70,60,BLACK,GREEN, "CD");
- while(1)
- {
- if(t%10==0)
- {
- ADCX=Lsens_Get_Val();
- sprintf(LSEN,"%d",ADCX); //將光敏電阻值轉(zhuǎn)換為字符格式
- printf("光強(qiáng): %d CD\r\n ",ADCX);
- }
- if(ADCX<40) //報警閾值
- {
- if(ADCX<40)
- {
- LCD_DrawFont_GBK16(50,60,RED,GREEN,LSEN);
- }
- GPIO_SetBits(BEEP_PORT,BEEP_PIN);
- delay_ms(10);
- GPIO_ResetBits(BEEP_PORT,BEEP_PIN);
- }
- else
- {
- LCD_DrawFont_GBK16(50,60,BLACK,GREEN,LSEN);
- }
- delay_ms(100);
- t++;
- }
- }
復(fù)制代碼
串口- <blockquote>void USART1_init(void)
復(fù)制代碼 光敏傳感器:
- //初始化光敏傳感器函數(shù),即對GPIO,PA6初始化參數(shù)配置//
- void Lsens_Init(void)
- {
- GPIO_InitTypeDef GPIO_InitStructure;
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOF,ENABLE); //使能GPIOA時鐘
- //配置GPIOA參數(shù),引腳6,模擬輸入//
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
- GPIO_Init(GPIOF, &GPIO_InitStructure);
- Adc2_Init();
- }
- //讀取Light Sens的值,范圍0-100,0最暗;100最亮//
- u8 Lsens_Get_Val(void)
- {
- u32 temp_val=0;
- u8 t;
- for(t=0;t<LSENS_READ_TIMES;t++) //LSENS_READ_TIMES在lsens.h文件中設(shè)好,默認(rèn)10//
- {
- temp_val+=Get_Adc2(LSENS_ADC_CHX); //讀取ADC值,LSENS_ADC_CHX在lsens.h文件中設(shè)好,默認(rèn)ADC_Channel_6,即0x06//
- delay_ms(5);
- }
- temp_val/=LSENS_READ_TIMES; //計(jì)算平均值//
- if(temp_val>4000)temp_val=4000; //當(dāng)計(jì)算后的值大于4000時,強(qiáng)制轉(zhuǎn)換為4000//
- return (u8)(100-(temp_val/40)); //將temp_val值歸一化到0-100之間//
- }
復(fù)制代碼 全部資料51hei下載地址:
STM32+光敏傳感器.7z
(186.17 KB, 下載次數(shù): 217)
2020-12-9 19:52 上傳
點(diǎn)擊文件名下載附件
|
評分
-
查看全部評分
|