【毕业设计】_基于STM32单片机的声光控节能灯(原理图+源码)

一. 系统概述

  1. 系统以STM32单片机作为主控单元,配备光敏电阻模块用于检测环境光强,同时通过红外光电识别模块进行人体检测,并使用声音传感器判断是否存在声音。

系统组成图

二. 仿真功能简述

  1. LCD1602显示屏用于实时显示是否检测到人体及光强的阈值范围。此时,LED灯保持熄灭状态。

显示屏状态

  1. 用户可以通过滑动变阻器调节光敏电阻模块的输入光强。

光强调节

  1. 当光强低于设定的阈值且系统检测到有人体存在时,LED灯会自动亮起。

LED灯亮起

  1. 当光强低于设定阈值且系统检测到有人声时,LED灯也会亮起。

声音触发LED灯

三.程序设计

#include "sys.h"
#include "delay.h"
#include "pcf8591.h"
#include "1602.h"
#include "stm32f10x.h"
#include "Beep_Led_Relay.h"
#include "delay.h"
#include "key.h"
/************************************************
版权:小常硬件
************************************************/

int main(void)
 {	
	u8 L,Lmin=20;
	 
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置中断优先级分组为组2:2位抢占优先级,2位响应优先级
	delay_init();	    	 //延时函数初始化
	LCD1602_GPIO_Configuration();
	PCF8591_Init();
	Led1_init();//pb13
	KEY1_Init();
		 
	write_str(0,0,(u8*)"Time:");
	write_str(0,1,(u8*)"lamp:");
	 write_str(10,0,(u8*)"L:");
	 write_str(10,1,(u8*)"H:");
	 
	while(1)
	{
		L=PCF8591_ADC_Input(0x90,1);
		write_num(12,0,L);
		write_num(12,1,Lmin);
				
		if(L<Lmin)
		{
			write_str(5,0,(u8*)"N");
			if(KEY2==RESET||KEY1==RESET)
			{
				Led1_1=1;
				write_str(5,1,(u8*)"on ");
			}
			else
			{
				delay_ms(1000);
				write_str(5,1,(u8*)"off");
				Led1_1=0;
			}	
		}
		else
		{
			write_str(5,0,(u8*)"D");
			write_str(5,1,(u8*)"off");
			Led1_1=0;
		}
		
	}	 
} 

24-32f-24

STM32控灯实验是一种通过音信号控制灯光开关的实验。它基于STM32系列微控制器,通过捕捉外部音信号,对信号进行处理并控制灯光的亮灭。 在这个实验中,首先需要准备一个STM32微控制器开发板,以及与之对应的开发环境。接着,将音传感器与开发板相连,以便获取外部音信号。我们可以使用模拟输入引脚来接收从音传感器发出的模拟信号,并通过模数转换器将其转换为数字信号。 在STM32的程序中,首先需要初始化音传感器以及模数转换器,并设置相应的参数。然后,通过中断等方式不断地获取外部音信号,并进行处理。处理的方式可以是根据音的幅度或频率进行判断,如果满足预设条件,就触发相应的灯光操作。比如,当音信号的幅度超过一定阈值时,开启灯光;当音信号的频率达到一定范围时,关闭灯光。 除了灯光控制,我们也可以加入其他功能,例如调整灯光的亮度或颜色。这可以通过PWM信号控制灯光的驱动电路来实现。 在进行实验时,可以通过不同的音信号进行测试,观察灯光的响应。我们还可以调整音的敏感度和触发条件,以便实现更精确的控制效果。 总之,基于STM32控灯的实验可以让我们了解音信号的捕获和处理原理,同时也展示了STM32微控制器的强大功能和灵活性。它的应用范围广泛,可以用于智能家居、音乐节奏灯以及控交互等方面。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值