STM32的光敏检测自动智能窗帘控制系统proteus设计

news2024/9/23 17:20:52

STM32的光敏检测自动智能窗帘控制系统proteus设计

( proteus仿真+程序+演示视频)

仿真图proteus 8.9

程序编译器:keil 5

编程语言:C语言

设计编号:C0074

主要功能:

结合实际情况,基于STM32单片机设计一个自动智能控制窗帘系统。该系统应满足的功能要求为:

光敏传感器,运行状态LCD1602显示、L298驱动电机控制、自动控制。

具体功能:

①电压值低于设定的值,液晶显示open,表示光强太弱,打开窗帘。
②电压大于设定的参考电压值,液晶显示close,表示光强太强,关闭窗帘。
③光强合适,液晶显示OK,电机不转,表示窗帘不动。

资料下载链接(可点击):

主图

img

开始仿真

电压大于设定的参考电压值,液晶显示close,表示光强太强,关闭窗帘。

关闭

光强合适,液晶显示OK,电机不转,表示窗帘不动。

调节OK

电压值低于设定的值,液晶显示open,表示光强太弱,打开窗帘。

真打开

程序:

img

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


void L298_GPIO( void )
{
	GPIO_InitTypeDef GPIO_InitStructure; 	
	
	RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
	GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5;
	GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
	GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
	GPIO_Init(GPIOC, &GPIO_InitStructure);	
}

void OPEN(void)	//left moto is runing, but right moto is brake
{
	GPIO_SetBits(GPIOC,GPIO_Pin_5);
	GPIO_ResetBits(GPIOC,GPIO_Pin_4);
	GPIO_ResetBits(GPIOC,GPIO_Pin_3);
	GPIO_ResetBits(GPIOC,GPIO_Pin_2);
	GPIO_SetBits(GPIOC,GPIO_Pin_1);	
	GPIO_SetBits(GPIOC,GPIO_Pin_0);
}
void CLOSE(void)	//right moto is runing, but left moto is brake
{
	GPIO_ResetBits(GPIOC,GPIO_Pin_5);
	GPIO_ResetBits(GPIOC,GPIO_Pin_4);
	GPIO_SetBits(GPIOC,GPIO_Pin_3);
	GPIO_ResetBits(GPIOC,GPIO_Pin_2);
	GPIO_SetBits(GPIOC,GPIO_Pin_1);	
	GPIO_SetBits(GPIOC,GPIO_Pin_0);
}

void STOP(void)	//right moto is runing, but left moto is brake
{
	GPIO_SetBits(GPIOC,GPIO_Pin_5);
	GPIO_SetBits(GPIOC,GPIO_Pin_4);
	GPIO_SetBits(GPIOC,GPIO_Pin_3);
	GPIO_SetBits(GPIOC,GPIO_Pin_2);
	GPIO_SetBits(GPIOC,GPIO_Pin_1);	
	GPIO_SetBits(GPIOC,GPIO_Pin_0);
}


int main(void)
{
	int b;
	float temp;
	
	delay_init();	    	 //延时函数初始化	  	
	LCD1602_Init();				//LCD1602IO初始化
  ADC1_GPIO_Config();		//ADC引脚初始化
	L298_GPIO();					//电机控制引脚初始化
  ADC_Config();  
	LCD1602_ShowStr(0,0,"  Auto curtain ",15);//第一行显示
	LCD1602_ShowStr(0,1,"Light:",6);//第二行显示
	
	while(1)
	{
		b=ADC_GetConversionValue(ADC1);
		temp=b*(3.4/4096)*10;
		//表示光线太弱
		if( temp < 8 )
		{
			LCD1602_ShowStr(7,1,"open ",4);
			OPEN();
		}
		else
		{
			if( temp < 25)				//光线合适
			{
				LCD1602_ShowStr(7,1,"OK  ",4);
				STOP();
			}
			else						//光线太强 
			{
				LCD1602_ShowStr(7,1,"close",4);
				CLOSE();
			}
		}
	}
}




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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

ATTCK-T1078-001-默认账户

0x01基础信息 具体信息详情ATT&CK编号T1078-001所属战术阶段初始访问操作系统windows 7 旗舰版 SP1创建时间2022年11月10日监测平台火绒安全、火绒剑、sysmon 0x02技术原理 攻击者可能会获取和滥用默认帐户的凭据&#xff0c;以作为获得初始访问、持久性、特权升级或防御…

Python用一行代码,截取图片

前言 本文是该专栏的第3篇,后面会持续分享python的各种黑科技知识,值得关注。 在工作上,有些时候可能需要用到代码来进行自动截图,比如说需要图文识别,进行数据信息抽取的时候,能自动定位截图无疑是很好的办法。 对python而言,截图方法其实有很多,但笔者下面要介绍的…

活动明天见 | DataFunSummit 2022 AI基础软件架构峰会圆桌会

11月16日晚 19&#xff1a;30-21:00&#xff0c;第四范式技术副总裁、OpenMLDB 项目发起人郑曌受邀主持DataFunSummit 2022 AI基础软件架构峰会圆桌会&#xff0c;将与各位资深专家在线上做深度的交流分享&#xff0c;欢迎大家届时收看。 开源机器学习数据库 OpenMLDB **活动时…

全国产三防加固计算机

国产三防加固计算机&#xff0c;本文指的是CPU为国产飞腾D2000处理器、操作系统为国产麒麟V10 SP1系统&#xff0c;整机方案采用全国产化设计。 达梦数据库是由武汉达梦数据库股份有限公司推出的具有完全自主知识产权的高性能数据库管理系统&#xff0c;简称DM。达梦数据库管理…

“辣条一哥”卫龙冲击港股IPO,我又吃出一家上市公司

一、公司简介 卫龙作为国内领先的辣味休闲食品企业&#xff0c;是目前国内辣味食品当之无愧的第一品牌。据2021年零售销售额计&#xff0c;公司在辣味休闲食品企业中排名第一&#xff0c;市场份额达到了6.2%&#xff0c;是一款备受年轻消费者喜爱的休闲食品品牌。天眼查App显示…

vue3之实现响应式数据ref和reactive

用途 ref、reactive都是vue3提供实现响应式数据的方法 ref() 接受一个内部值&#xff0c;返回一个响应式的、可更改的ref对象&#xff0c;此对象只有一个指向其内部的属性.value ref可以说是简化版的reactive&#xff0c;与reactive的区别则是 ref是对某一个数据类型的单独…

测试工程师面试题

很多软件测试工程师在面试的时候都会遇到考官给的各种各样的面试题&#xff0c;这也反应了测试工程师对企业的重要性&#xff0c;面试通常分为以下几个方面&#xff0c;由于篇幅有限&#xff0c;在这里就只给大家分享一些比较常见的问题。 01 自我介绍 这里我不分享如何自我介…

js 网格卡片交换动画

关键技术&#xff1a;animate(keyframes, options) keyframes 关键帧对象数组&#xff0c;或一个关键帧对象&#xff08;其属性为可迭代值的数组&#xff09; 代表动画持续时间的整数&#xff08;以毫秒为单位&#xff09;&#xff0c;或者一个包含一个或多个时间属性 参考传送…

C# 学习之路(类的基本概念)

C# 学习之路&#xff08;类的基本概念&#xff09; 类的概述 类是一种活动的数据结构 程序的数据和功能被组织为逻辑上相关的数据项和函数封装的集合&#xff0c;并称为类 类包含数据成员和函数成员&#xff1a; 数据成员&#xff1a;存储与类或类的实例相关的数据&#xff08…

Linux条件变量

一、条件变量函数 1&#xff0c;条件变量 条件变量&#xff1a;用来描述某种临界资源是否就绪的一种数据化描述。通常要配合mutex一起使用。 2&#xff0c;初始化 pthread_connd_init: 同样有一个静态的和一个动态的。 其中cond是需要初始化的条件变量&#xff0c;attr传…

在线书法培训迎来新风口

随着社会教育水平的不断提高&#xff0c;书法不再是独属于某个年龄层的爱好&#xff0c;开始被越来越多人欣赏和重视。 写一手好字&#xff0c;对每一个人来说都是一个加分“外挂”。在考场上&#xff0c;一手好字无疑可以让阅卷老师在心中自然加分&#xff1b;在职场中&#…

源码深度解析之 Spring IOC

1. 基础知识 1.1 什么是 Spring IOC &#xff1f; IOC 不是一种技术&#xff0c;只是一种思想&#xff0c;一个重要的面向对象编程的法则&#xff0c;它能指导我们如何设计出松耦合、更优良的程序。 传统应用程序都是由我们在类内部主动创建依赖对象&#xff0c;从而导致类与…

Vue--》自定义指令的使用讲解

目录 自定义指令 自定义指令的分类 私有自定义指令&#xff1a; 全局自定义指令&#xff1a; 总结 自定义指令 vue官方提供了v-text、v-for、v-model、v-if等常用的指令&#xff0c;还允许开发者自定义指令。 自定义指令的分类 私有自定义指令&#xff1a; 在每个vue组…

[附源码]计算机毕业设计框架的食品安全监督平台的设计与实现Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

u-BOOT启动流程

1、u-boot入口&#xff1a;入口即第一行程序&#xff0c;程序的链接是由链接脚本决定的&#xff0c;编译uboot之后&#xff0c;可以在根目录下生成u-boot.lds文件 打开lds文件可以看到代码当前入口点&#xff1a; &#xff1a;_start&#xff0c;_start后面就是中断向量表&…

[附源码]Python计算机毕业设计Django演唱会门票售卖系统

项目运行 环境配置&#xff1a; Pychram社区版 python3.7.7 Mysql5.7 HBuilderXlist pipNavicat11Djangonodejs。 项目技术&#xff1a; django python Vue 等等组成&#xff0c;B/S模式 pychram管理等等。 环境需要 1.运行环境&#xff1a;最好是python3.7.7&#xff0c;…

股票接口怎样获取数据方便?

目前很多交易者对股票数据行情查询相关使用的系统也是很普遍&#xff0c;就比如说你查询A股的大秦铁路可以使用实时股票数据接口来获取它的实时股价&#xff0c;成交量&#xff0c;成交金额等情况。那么在这个过程中&#xff0c;股票接口是如何获取数据更方便呢&#xff1f;小编…

化工厂人员定位系统:聚焦化工安全问题,提升智慧管理水平

化工厂人员定位系统&#xff0c;以人员定位技术为核心&#xff0c;整合访客管理、出入口控制、地图、人脸识别、视频监控数据采集等各种管控技术&#xff0c;提供精准实时定位、轨迹查询、货物跟踪等功能&#xff0c;又称“智能化二道门人员管理系统”。 12月1日&#xff0c;鞍…

[附源码]计算机毕业设计剧本杀交流分享平台Springboot程序

项目运行 环境配置&#xff1a; Jdk1.8 Tomcat7.0 Mysql HBuilderX&#xff08;Webstorm也行&#xff09; Eclispe&#xff08;IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#xff09;。 项目技术&#xff1a; SSM mybatis Maven Vue 等等组成&#xff0c;B/S模式 M…

Spring进阶(二十一)之循环Bean详解

目录 什么是循环依赖 检测是否存在循环依赖 Spring底层是如何解决循环依赖的问题 循环依赖无法解决的情况 为什么需要用3级缓存 问题 原因 案例 单例bean解决了循环依赖&#xff0c;还存在什么问题 什么是循环依赖 这个很好理解&#xff0c;多个bean之间相互依赖&#…