【资料转发分享】基于STM32智能路灯灯光自动控制系统设计-基于STM32无刷电机BLDC速度控制器系统设计-基于STM32热释人体感应智能门禁报警系统设计-基于STM32居家加湿器控制仿真系统设计

1604基于STM32智能路灯灯光自动控制系统设计-毕设课设资料

 实现的功能如下,下图是仿真原理图:

通过ARM内部的ADC采集光敏电阻电压,判断电压值
电压值低于设定的值,表示光强太弱,开路灯
光强合适,显示OK灯不亮
stm32内部ADC采集电压
光敏电阻,调节光强 

#include "stm32f10x.h"
#include "bsp-lcd1602.h"
#include "delay.h"
#include "sys.h"
#include "adc.h"

int main(void)
{
  int ADC_num;
	float temp;
	
	ADC1_GPIO_Config();
  ADC_Config(); 
	delay_init();	    	 //延时函数初始化	  	
	LCD1602_Init(); 
	LCD1602_ShowStr(0,0,"Intelligent LED",15);
	LCD1602_ShowStr(0,1,"    LED:",8);
	
	GPIO_InitTypeDef GPIO_InitStructure; 	
	
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
	GPIO_Init(GPIOC, &GPIO_InitStructure);	
	
	while(1)
	{
		ADC_num=ADC_GetConversionValue(ADC1);
		temp=ADC_num*(3.4/4096)*10;
		//表示光线太弱
		if( temp < 8 )
		{
			LCD1602_ShowStr(8,1,"Low ",4);
			GPIO_ResetBits( GPIOC,GPIO_Pin_0 );

以上提供设计思路,也可以从结尾进行资料网盘下载 

1605基于STM32无刷电机BLDC速度控制器系统设计-毕设课设资料

  1.  可调转速通过可调电阻和STM32的ADC功能,实现500-4596范围的速度调节。
  2. 通过定时器1的PWM互补输出六路PWM控制电机的转动,驱动器使用L293D和IRF540 MOS管。
  3. 换向使用的是外部中断,测速使用的是定时器2的三鹿输入捕获,这里有一个坑,proteus中三路输入捕获无法同时工作,本来打算三路都做测速逻辑,但是速度变化很大,所以最后只使用了一路作为测速通道。
  4. 正反转使用的是外部中断。
  5. 显示转速和目标转速使用的是lcd1602,在proteus仿真中,显示转速有一定的延时和误差

实现功能:

  1. 可调转速
  2. 可控转动方向
  3. 显示转速和目标转速

下面是原理图和程序

#include "main.h"
#include "adc.h"
#include "tim.h"
#include "gpio.h"

/* Private includes ----------------------------------------------------------*/
/* USER CODE BEGIN Includes */
#include "includes.h"
#include "lcd.h"
/* USER CODE END Includes */

/* Private typedef -----------------------------------------------------------*/
/* USER CODE BEGIN PTD */

/* USER CODE END PTD */

/* Private define ------------------------------------------------------------*/
/* USER CODE BEGIN PD */
#define HALL_GPIO GPIOA
//START 任务
//设置任务优先级
#define START_TASK_PRIO      			10 //开始任务的优先级设置为最低
//设置任务堆栈大小
#define START_STK_SIZE  	  			64
//任务堆栈	
OS_STK START_TASK_STK[START_STK_SIZE];
//任务函数
void start_task(void *pdata);	
 			   
//LED0任务
//设置任务优先级
#define LED0_TASK_PRIO       			2 
//设置任务堆栈大小
#define LED0_STK_SIZE  		    		64
//任务堆栈	
OS_STK LED0_TASK_STK[LED0_STK_SIZE];
//任务函数
void led0_task(void *pdata);

//Speed_ADC 任务
//设置任务优先级
#define SPEED_ADC_TASK_PRIO       			1
//设置任务堆栈大小
#define SPEED_ADC_STK_SIZE  		    		64
//任务堆栈	
OS_STK SPEED_ADC_TASK_STK[SPEED_ADC_STK_SIZE];
//任务函数
void speed_adc_task(void *pdata);

以上提供设计思路,也可以从结尾进行资料下载 

1606基于STM32热释人体感应智能门禁报警系统设计-毕业设计资料

 1、通过热释红外传感器检测是否有人,如果有人靠近门时,液晶屏提示亮并显示欢迎词:Welcome to home!,夜间探测到有人时开灯,灯用9个高亮LED灯设计,无人时,关灯。

2、主人可设定门禁系统工作状态,家里有人和无人两种状态。通过一个拨动开关设置,拨上去,液晶显示有人:Somebody!,拨下来液晶显示没人:Nobody!有人时,客人按下门铃,蜂鸣器鸣叫提示,无人时,客人按下门铃,无任何反应。

3、门外人员逗留时间超过一定时间则发出报警信息。

4、检测到有人或者没有人,有状态指示灯指示。

#include "delay.h"
#include "sys.h"
#include "usart.h"
#include "key.h"
#include "led.h"
#include "lcd1602.h"

u8 lighFlag=0;		//光照 标志
u8 doorFlag=0;		//门检测 标志
u8 manFlag=0;			//人检测 标志
u8 menlingFlag=0;	//门铃检测 标志
u8 baojFlag=0;		//报警 标志

 int main(void)
 {
	u32 time10ms=0;
	 
	delay_init();	    	 //延时函数初始化	  

	KEY_Init();		  //初始化 按键
	LED_Init();		  //初始化电机引脚 作为输出 类似led
	delay_ms(1);
	
	Lcd_GPIO_init();  //初始化lcd引脚	
	Lcd_Init();		  //初始化lcd屏幕
	delay_ms(20);
	
  Lcd_Puts(0,0,"Waitting for you");	//初始化显示
	Lcd_Puts(0,1,"Nobody!         ");	 
	 

以上提供设计思路,也可以从结尾进行资料网盘下载  

1607基于STM32居家加湿器控制仿真系统设计-电子设计资料

#include "stm32f10x.h"
#include "bsp_SysTick.h"
uint8_t table[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e};

int main(void)
{
	GPIO_InitTypeDef GPIO_InitStructure; 	
	
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|\
	                              GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
	GPIO_Init(GPIOB, &GPIO_InitStructure);
	
	GPIO_SetBits(GPIOB,GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|\
	                   GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7);
	
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
	GPIO_Init(GPIOA, &GPIO_InitStructure);
	
	GPIO_SetBits(GPIOA,GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2);
	
	SysTick_Init();
	while(1)
	{ 
		uint8_t i;
		for(i=0;i<10;i++)	
		{
			GPIO_Write(GPIOB, ~table[i]);
			Delay_ms(200);
			if( i>= 5 )
			{

目录

1604基于STM32智能路灯灯光自动控制系统设计-毕设课设资料

1605基于STM32无刷电机BLDC速度控制器系统设计-毕设课设资料

1606基于STM32热释人体感应智能门禁报警系统设计-毕业设计资料

1607基于STM32居家加湿器控制仿真系统设计-电子设计资料


以上可以按照这个思路进行自行设计,也可以通过一下百度网盘列表下载现成的
https://www.aiesst.cn/baidu.html  

  • 1
    点赞
  • 43
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值