100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 基于STM32居家加湿器控制仿真设计-基于STM32热释人体感应智能门禁报警设计-基于STM32

基于STM32居家加湿器控制仿真设计-基于STM32热释人体感应智能门禁报警设计-基于STM32

时间:2022-04-02 03:40:54

相关推荐

基于STM32居家加湿器控制仿真设计-基于STM32热释人体感应智能门禁报警设计-基于STM32

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

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

实现功能:

可调转速可控转动方向显示转速和目标转速

下面是原理图和程序

#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_PRIO10 //开始任务的优先级设置为最低//设置任务堆栈大小#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_SIZE64//任务堆栈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_SIZE64//任务堆栈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(); //初始化电机引脚 作为输出 类似leddelay_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智能路灯灯光自动控制系统设计-毕设课设资料

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

通过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 );

1602基于单片机PID控制算法开关电源设计实现(完善)

开关电源是用通过电路控制开关管进行高速的道通与截止,将直流电转化为高频率的交流电提供给变压器进行变压,从而产生所需要的一组或多组电压。开关稳压电源(以下简称开关电源)问世后,在很多领域逐步取代了线性稳压电源和晶闸管相控电源。早期出现的是串联型开关电源,其主电路拓扑与线性电源相仿,但功率晶体管工作于开关状态。随着脉宽调制(PWM)技术的发展,PWM开关电源问世,它的特点是用20kHz的载波进行脉冲宽度调制,电源的效率可达65%~70%,而线性电源的效率只有30%~40%。因此,用工作频率为20 kHz的PWM开关电源替代线性电源,可大幅度节约能源。

工程实际中,应用最为广泛调节器控制规律为比例、积分、微分控制,简称PID控制,又称PID调节。PID控制器它以其结构简单、稳定性好、工作可靠、调整方便而成为工业控制主要技术之一。

#include "Include.h"float idata P_DATA=30;float idata I_DATA=2;float idata D_DATA=1; //声明 PID 实体//*****************************************************static PID idata sPID; static PID idata *sptr = &sPID; //*****************************************************//PID 参数初始化//*****************************************************void IncPIDInit(void) { sptr ->LastError = 0; //Error[-1] sptr ->PrevError = 0; //Error[-2] sptr ->Proportion = P_DATA; //比例常数 Proportional Const sptr ->Integral = I_DATA; //积分常数 Integral Const sptr ->Derivative = D_DATA; //微分常数 Derivative Const //sptr ->SetPoint =10; //目标是 100}//*****************************************************//增量式 PID 控制设计 //*****************************************************float IncPIDCalc(float NextPoint,float SetPoint ) { float iError, iIncpid; //当前误差iError = SetPoint - NextPoint; //增量计算iIncpid = sptr ->Proportion * iError //E[k]项

​文章转自电设屋,资料百度网盘下载地址/share.html​

目录

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

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

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

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

1602基于单片机PID控制算法开关电源设计实现(完善)

基于STM32居家加湿器控制仿真设计-基于STM32热释人体感应智能门禁报警设计-基于STM32无刷电机BLDC速度控制器设计-基于STM32智能路灯灯光自动控制设计-基于单片机PID控制算法开关电源

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。