单片机课程设计:基于STM32的智能智慧台灯系统

前言

本系统设计了一个智能台灯系统,可以切换两种不同的模式:自动模式、手动模式。当处于自动模式下可以根据当前亮度以及是否有人实现自动开灯;当处于手动模式下可以手动的开关灯;两种模式均支持手动按键调节亮度。

一、设计任务

  1. 使用人体传感器检测是否有人
  2. 使用光线传感器检测是否低光
  3. 使用按键可以控制LED灯亮度
  4. 按键实现模式的自动切换

二、系统硬件设计

1.器件选择

  • STM32F103ZET6核心板
  • 人体传感器 HC_SR501
  • 光线传感器
  • 触摸开关 TTP223 (选装)
  • LED灯泡 (选装)

2.系统模型设计

光敏传感器以及人体传感器可以实时读取当前状态并将信息发送到STM32单片机上,实现在光线暗以及有人的条件下点亮LED灯,当无人时自动关闭;按键实时检测状态,并将其发送至STM32单片机,当检查到被按下时实现模式切换/亮度调节。

3.硬件连接

三、系统程序设计

1.程序设计

程序开始会进行各模块的初始化,当初始化完成后会检测当前模式(默认时自动模式);当处于自动模式时(LED2点亮),系统会检测人体传感器和光敏传感器所传递的信号,当人体传感器和光敏传感器输出高电平(有人低光),LED1点亮,当按下KEY0(同KEY_UP)时可以切换LED1亮度,亮度三档可调,自动模式不支持手动开关灯;当处于手动模式时(LED2熄灭),点击KEY0(同KEY_UP)时可以开启LED1/调节LED1亮度。软件工作流程图如下图所示。

 特别说明:D0是LED1(控制灯泡);D1是LED2(状态显示灯泡)

2.程序代码

main.c
#include "system.h"
#include "SysTick.h"
#include "led.h"
#include "key.h"
#include "usart.h"
#include "pwm.h"
#include "ls.h"
#include "hc_sr501.h"

int brightness=50,mode=0,hand_brightness=0;

int main()
{
	u8 i;
	SysTick_Init(72);
	NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);  //中断优先级分组 分2组
	LED_Init();
	KEY_Init();
	LS_Init();
	
	USART1_Init(115200);
	
	
	TIM3_CH2_PWM_Init(500,72-1); //频率是2Kh

	
	
	while(1)
	{
		
		i++;

		
		if(mode == 0)
		{
			LED2 = 0;
		}
		else
		{
			LED2 = 1;
		}
		
		if(mode == 0)
		{
			if(HC_SR501_KEY()==1 && LS_KEY()==1)
			{
				TIM_SetCompare2(TIM3,brightness);  //i值最大可以取499,因为ARR最大值是499.
			}
			else
			{
				TIM_SetCompare2(TIM3,0);
			}
		}
		else
		{
			TIM_SetCompare2(TIM3,hand_brightness);
		}

		
		switch(KEY_Scan(0))
		{
			case KEY_UP_PRESS: 
				if(mode == 0)
				{
					brightness += 100 ;
					if(brightness == 350) brightness = 50;
				}
				if(mode == 1)
				{
					hand_brightness += 100 ;
					if(hand_brightness == 400) hand_brightness = 0 ;
				}
				break;      
			case KEY1_PRESS: 
				mode++;
				if(mode==1) hand_brightness = 0;
				if(mode==2) mode = 0;
				break;   
			case KEY0_PRESS: 
				if(mode == 0)
				{
					brightness += 100 ;
					if(brightness == 350) brightness = 50;
				}
				if(mode == 1)
				{
					hand_brightness += 100 ;
					if(hand_brightness == 400) hand_brightness = 0 ;
				}
				break;   
		}
		

		delay_ms(100);	
	}
}

 四、实物展示

 五、程序下载

 源码下载地址:基于STM32的智能智慧台灯系统 | 零度空间

源码下载地址:http://cloud.tao-space.top/2024/05/31/%e5%9f%ba%e4%ba%8estm32%e7%9a%84%e6%99%ba%e8%83%bd%e6%99%ba%e6%85%a7%e5%8f%b0%e7%81%af%e7%b3%bb%e7%bb%9f/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值