|
1.硬件準備:
DHT11模塊
OLED(IIC)模塊
核心板STM32F103C8T6
光敏傳感器模塊
LUN2003驅動步進電機模塊
步進電機
LED燈一只
電阻220歐姆一只
2.硬件接線:
OLED SCL---PB12 SDA---PB13 VCC---3.3V
DHT11 DAT---14
光敏AO--PA4
電機驅動連線:IN4: PB9 IN3: PB8 IN2: PB7 IN1: PB6
LED--PB0
3.程序源碼:
u8 buff[30]; //參數顯示緩存數組
u8 DHT11_Temp,DHT11_Hum; //溫濕度
u16 gz_value; //光照檢測值
u8 mode;
u8 curtain_flag;
u8 last_curtain_flag;
u16 count;
void BUJING_Cotrol(u8 mode,u16 count);
//u16 A_DHT11_Temp=25; //溫度閾值
//u16 A_DHT11_Hum=50; //濕度閾值
u16 A_gz_value=2000; //光照強度閾值
int main(void)
{
LED_Init();
Adc1_Channe_Init(); //ADC初始化
delay_init(); //延時函數初始化
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設置中斷優先級分組為組2:2位搶占優先級,2位響應優先級
// uart_init(9600);
DHT11_Init();
Moto_Init();
OLED_Init(); //OLED初始化
OLED_Clear(); //OLED清屏
while(1)
{
DHT11_Read_Data(&DHT11_Temp,&DHT11_Hum);
OLED_ShowCHinese(0,0,0);
OLED_ShowCHinese(16,0,2);
sprintf((char*)buff,":%2dC",DHT11_Temp);
OLED_ShowString(32,0,buff,16); //顯示溫度
OLED_ShowCHinese(66,0,1);
OLED_ShowCHinese(82,0,2);
sprintf((char*)buff,":%2d%%",DHT11_Hum);
OLED_ShowString(96,0,buff,16);//顯示濕度
gz_value = 4096- get_Adc_Value(0x04);
OLED_ShowCHinese(0,4,5);
OLED_ShowCHinese(16,4,6);
OLED_ShowCHinese(32,4,7);
OLED_ShowCHinese(48,4,8);
sprintf((char*)buff,":%4d",gz_value);
OLED_ShowString(64,4,buff,16);//顯示光照強度
// printf("光照強度:%d\r\n",gz_value);
// delay_ms(200);
}
}
void BUJING_Cotrol(u8 mode,u16 count)
{
if(mode==0)
{
while(count--)
{
Motorccw_angle(120,8);
}
}
if(mode==1)
{
while(count--)
{
Motorcw_angle(120,8);
}
}
}
|
評分
-
查看全部評分
|