STM32智能路燈仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)
DTQ~DF7G@RLH[MLIEL1~M67.png (48.68 KB, 下載次數: 90)
下載附件
2021-3-19 22:19 上傳
51hei.png (38.36 KB, 下載次數: 88)
下載附件
2021-3-19 23:41 上傳
備注:通過ARM內部的ADC采集光敏電阻電壓,判斷電壓值
電壓值低于設定的值,表示光強太弱,開路燈
光強合適,顯示OK燈不亮
stm32內部ADC采集電壓
光敏電阻,調節光強
單片機源程序如下:
- #include "stm32f10x.h"
- #include "bsp-lcd1602.h"
- #include "delay.h"
- #include "sys.h"
- #include "adc.h"
- int main(void)
- {
- int ADC_num;
- float temp;
-
- ADC1_GPIO_Config();
- ADC_Config();
- delay_init(); //延時函數初始化
- LCD1602_Init();
- LCD1602_ShowStr(0,0,"Intelligent LED",15);
- LCD1602_ShowStr(0,1," LED:",8);
-
- GPIO_InitTypeDef GPIO_InitStructure;
-
- RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
- GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
- GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
- GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
- GPIO_Init(GPIOC, &GPIO_InitStructure);
-
- while(1)
- {
- ADC_num=ADC_GetConversionValue(ADC1);
- temp=ADC_num*(3.4/4096)*10;
- //表示光線太弱
- if( temp < 8 )
- {
- LCD1602_ShowStr(8,1,"Low ",4);
- GPIO_ResetBits( GPIOC,GPIO_Pin_0 );
- }
- else
- {
- //光線合適
- LCD1602_ShowStr(8,1,"OK ",4);
- GPIO_SetBits( GPIOC,GPIO_Pin_0 );
- }
- }
- }
復制代碼
所有資料51hei提供下載:
仿真圖.rar
(150.4 KB, 下載次數: 231)
2021-3-19 22:19 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
程序.7z
(186.33 KB, 下載次數: 229)
2021-3-19 23:22 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|