基于STM32智能窗帘控制系统仿真设计(含源程序+proteus仿真+讲解视频)

# 基于STM32智能窗帘设计(含源程序+proteus仿真)

仿真:proteus8.11
程序编译器:keil 5
编程语言:C语言
编号C0007
资料下载链接

讲解视频

基于STM32的简易智能窗帘控制系统仿真设计

功能说明:

实现功能:

有手动,自动两种模式

自动模式下,滑动变阻器模拟光照传感器,通过stm32检测与阈值比较

低于阈值开窗帘,高于阈值关闭窗帘

手动模式下,按键控制窗帘关闭打开

仿真图(提供源文件):

新版本:

新封面

旧版:

在这里插入图片描述

源程序(提供源文件):

#include "delay.h"
#include "sys.h"
#include "adc.h"
#include "1602.h"
#include "motor.h"
#include "bsp_dht11.h"
#define LED1 PAout(13)
#define LED2 PAout(14)
#define MOTOR PCout(0)unsigned char dis_vol1[] = {"LUX:      % auto"};
unsigned char dis_vol2[] = {"  auto"};
unsigned char dis_vol3[] = {"manual"};
//函数声明
void display1(void);
void display2(void);
u16    LUX, HZ;
int main(void)
{unsigned int i;u16 ADCValue1, ADCValue2;float voltage1, voltage2;u8 Mflag = 2;u8 OPENflag = 0;	//起初代表窗帘关u8 AUTOflag = 0;	//起初代表自动delay_init();Adc_Init();GPIO_InitStructReadtempCmd();MotoR_GPIO();lcd_system_reset();LED1 = 1;LED2 = 0;MOTOR = 1;while(1){ADCValue1 = Get_Adc_Average(ADC_Channel_0, 10);voltage1 = ((float)ADCValue1 / 4096) * 3.3; //计算电压LUX = (10000 * voltage1) / 33;display1();if(PCin(12) == 0) //自动{AUTOflag = 0;for(i = 0; i <6; i++)lcd_char_write(i, 1, dis_vol2[i]);}if(PCin(13) == 0) //手动{AUTOflag = 1;for(i = 0; i < 6; i++)lcd_char_write(i, 1, dis_vol3[i]);}if(PCin(10) == 0 && OPENflag == 0 && AUTOflag == 1){LED1 = 0;LED2 = 1;MOTOR = 0; //开窗帘Mflag = 2;OPENflag = 1;	 //已经开好}if(PCin(11) == 0 && OPENflag == 1 && AUTOflag == 1){LED1 = 1;LED2 = 0;MOTOR = 1; //关闭窗帘Mflag = 2;OPENflag = 0;	 //已经关好}if(LUX > 400) //40%  阈值{display1();Mflag = 1;		//光照足够,关闭窗帘}else{display1();Mflag = 0;	//光照不足,需要启动窗帘}if(Mflag == 1 && OPENflag == 1 && AUTOflag == 0){LED1 = 1;LED2 = 0;MOTOR = 1; //关闭窗帘Mflag = 2;OPENflag = 0;	 //已经关好}else if(Mflag == 0 && OPENflag == 0 && AUTOflag == 0){LED1 = 0;LED2 = 1;MOTOR = 0; //开窗帘Mflag = 2;OPENflag = 1;	 //已经开好}}
}void display1()
{unsigned int i, j;dis_vol1[5] = LUX / 100 + 0x30;dis_vol1[6] = LUX % 100 / 10 + 0x30;dis_vol1[7] = '.';dis_vol1[8] = LUX % 10 + 0x30;for(i = 0; i < 12; i++)lcd_char_write(i, 0, dis_vol1[i]);//  	 for(j=0;j<15;j++)// 	  lcd_char_write(j,1,dis_vol2[j]);
}

在这里插入图片描述

资料清单如下:

下载方式看视频或文章开头
新资料清单

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/18844.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Kubernetes:快速入门指南

原文作者&#xff1a;NGINX 原文链接&#xff1a;Kubernetes&#xff1a;快速入门指南 转载来源&#xff1a;NGINX 官方网站 NGINX 唯一中文官方社区 &#xff0c;尽在 nginx.org.cn 什么是 Kubernetes&#xff1f; Kubernetes又称为 k8s&#xff0c;是一个开源平台&#xff…

Java虚拟机(JVM)

Java虚拟机&#xff08;JVM&#xff09; 类加载 类加载 Java类加载的过程可以分为以下几个步骤&#xff1a; 加载&#xff08;Loading&#xff09;&#xff1a;类加载的第一步是将类的字节码文件加载到内存中。 通过类的全名&#xff0c;全限定名&#xff08;包括包名和类名&…

【STM32MP135】移除stm32mp135d-atk-u-boot.dtsi设备树config节点,否则会进入fastboot下载模式

文件路径&#xff1a;u-boot-stm32mp-v2021.10-stm32mp1-r1/arch/arm/dts/stm32mp135d-atk-u-boot.dtsi

flutter开发实战-Theme主题切换

flutter开发实战-Theme主题切换 之前做的应用中有用到Theme主题切换&#xff0c;一直没有整理&#xff0c;这里整理一下。 使用的是Android studio 一、效果图 二、创建ThemeModel // 提供五套可选主题色 const _themes <MaterialColor>[Colors.blue,Colors.cyan,Co…

PWM 输出实验(stm32)

目录 PWM的代码pwm.cpwm.h main.c 说明&#xff1a;以下内容参考正点原子的资料 PWM的代码 pwm.c //TIM3 PWM部分初始化 //PWM输出初始化 //arr&#xff1a;自动重装值 //psc&#xff1a;时钟预分频数 void TIM3_PWM_Init(u16 arr,u16 psc) { GPIO_InitTypeDef GPIO_InitSt…

C语言进阶之字符串函数和内存函数的介绍及部分函数的模拟实现

字符串函数和内存函数 1.字符串函数介绍1.1 strlen1.2 strcpy1.3 strcat1.4 strcmp1.5 strncpy1.6 strncat1.7 strncpy1.8 strstr1.9 strtok1.10 strerror1.11 字符分类函数 2.内存函数2.1 memcpy2.2 memmove2.3 memcmp 3.函数的模拟实现3.1 模拟实现strlen3.2 模拟实现strcpy3…

单片机第一季:零基础4——LED点阵

1&#xff0c;第八章-LED点阵 如何驱动LED点阵&#xff1a; (1)单片机端口直接驱动。要驱动8*8的点阵需要2个IO端口&#xff08;16个IO口&#xff09;、要驱动16*16的点阵需要4个IO端口&#xff08;32个IO口&#xff09;。 (2)使用串转并移位锁存器驱动。要驱动16*16点阵只需要…

网安学习经历小记

明明自觉学会了不少知识&#xff0c;可真正开始做题时&#xff0c;却还是出现了“一支笔&#xff0c;一双手&#xff0c;一道力扣&#xff08;Leetcode&#xff09;做一宿”的窘境&#xff1f;你是否也有过这样的经历&#xff0c;题型不算很难&#xff0c;看题解也能弄明白&…

漏洞攻击 --- TCP -- 半开攻击、RST攻击

TCP半开攻击&#xff08;半连接攻击&#xff09; --- syn攻击 &#xff08;1&#xff09;定义&#xff1a; sys 攻击数据是DOS攻击的一种&#xff0c;利用TCP协议缺陷&#xff0c;发送大量的半连接请求&#xff0c;耗费CPU和内存资源&#xff0c;发生在TCP三次握手中。 A向B…

已解决 BrokenPipeError: [Errno 32] Broken pipe

作者主页&#xff1a;爱笑的男孩。的博客_CSDN博客-深度学习,活动,python领域博主爱笑的男孩。擅长深度学习,活动,python,等方面的知识,爱笑的男孩。关注算法,python,计算机视觉,图像处理,深度学习,pytorch,神经网络,opencv领域.https://blog.csdn.net/Code_and516?typeblog个…

zabbix server is not running错误解决方法

1.错误&#xff1a;zabbix server is not running 打开zabbix server的时候&#xff0c;底部飘着一行黄色的警告字 2.解决方法 (1)关闭selinux (2)查看日志文件 #tail -f /var/log/zabbix/zabbix_server.log 发现内存溢出了 __zbx_mem_realloc(): out of memory 那…

【小沐学C++】libcurl实现HTTP/HTTPS请求

文章目录 1、简介2、下载和编译2.1 下载2.2 编译2.3 使用 3、命令行测试3.1 获取文件头Headers3.2 请求内容Request Content3.3 响应内容Response Content3.4 GET请求3.5 POST请求3.6 其他 4、代码测试3.1 simple.c3.2 url2file.c3.3 simplepost.c3.4 resolve.c3.5 progressfun…