From 9d92def44dc84a0fd125850c81ec99aecee2b899 Mon Sep 17 00:00:00 2001 From: guowenxue <guowenxue@gmail.com> Date: Tue, 07 Oct 2025 01:25:58 +0800 Subject: [PATCH] 楼道声光控灯项目程序 --- Core/Src/main.c | 38 +++++++++++++++++++------------------- 1 files changed, 19 insertions(+), 19 deletions(-) diff --git a/Core/Src/main.c b/Core/Src/main.c index 281d186..dec60e8 100644 --- a/Core/Src/main.c +++ b/Core/Src/main.c @@ -18,6 +18,8 @@ /* USER CODE END Header */ /* Includes ------------------------------------------------------------------*/ #include "main.h" +#include "adc.h" +#include "usart.h" #include "gpio.h" /* Private includes ----------------------------------------------------------*/ @@ -37,7 +39,8 @@ /* Private macro -------------------------------------------------------------*/ /* USER CODE BEGIN PM */ - +#define THRESHOLD_LUX 100 +#define THRESHOLD_NOISY 1000 /* USER CODE END PM */ /* Private variables ---------------------------------------------------------*/ @@ -65,7 +68,7 @@ { /* USER CODE BEGIN 1 */ - + uint32_t lux, noisy; /* USER CODE END 1 */ /* MCU Configuration--------------------------------------------------------*/ @@ -86,33 +89,30 @@ /* Initialize all configured peripherals */ MX_GPIO_Init(); + MX_USART1_UART_Init(); + MX_ADC1_Init(); /* USER CODE BEGIN 2 */ init_relay(); - init_led(); - - /* Turn on relay after 1 second */ HAL_Delay(1000); - turn_relay(Relay1, ON); + printf("Auto light program start.\r\n"); /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { - /* Blink Red Led */ - turn_led(Led_R, ON); - HAL_Delay(200); - turn_led(Led_R, OFF); - HAL_Delay(200); + lux = noisy = 0; + adc_sample_lux_noisy(&lux, &noisy); + if( lux<=THRESHOLD_LUX && noisy>= THRESHOLD_NOISY ) + { + printf("Lux:%lu Noisy:%lu, turn light on\r\n", lux, noisy); + turn_relay(Relay1, ON); + HAL_Delay(5000); + printf("turn light off now\r\n"); + turn_relay(Relay1, OFF); + } - /* Blink Green Led */ - toggle_led(Led_G); - HAL_Delay(200); - toggle_led(Led_G); - HAL_Delay(200); - - /* Blink Blue Led */ - blink_led(Led_B, 200); + HAL_Delay(10); /* USER CODE END WHILE */ -- Gitblit v1.9.1