|
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);
}
}
}
|
评分
-
查看全部评分
|