【Proteus仿真】【STM32单片机】基于stm32的智能书桌设计

2023-11-09


一、功能简介

系统运行后,默认为手动模式,当检测有人,可通过K2键开关灯,如果姿势不对, 警示灯亮,否则灭;可通过K3和K4键调节桌子高度;按下K1键切换为自动模式;此时有人,且光线暗时,开灯,否则关灯;姿势不对,警示灯亮,否则灭;不论自动手动模式,只要无人则关灯,系统无法操作。


二、软件设计

/*
作者:嗨小易(QQ:3443792007)

*/


//系统数据设置
void sys_data_set(void)
{
	u8 key=0;
	//检测有人坐下
	if(sys_ctrl.man==1)
	{
		key=KEY_Scan(0);
	}
	//自动/手动切换
	if(key==KEY1_PRESS)
	{
		sys_ctrl.auto_flag=!sys_ctrl.auto_flag;
		ALARM=0;//模式指示
		delay_ms(500);
		ALARM=1;
	}
	//升高
	else if(key==KEY3_PRESS)
	{
		step_motor_28BYJ48_send_pulse(4,1,STEPMOTOR_MAXSPEED,1,1);
	}
	//下降
	else if(key==KEY4_PRESS)
	{
		step_motor_28BYJ48_send_pulse(4,0,STEPMOTOR_MAXSPEED,1,1);
	}
	
	//手动模式
	if(sys_ctrl.auto_flag==1)
	{
		//开关
		if(key==KEY2_PRESS)
		{
			sys_ctrl.open=!sys_ctrl.open;
		}
	}
	
}

//系统功能控制
void sys_fun_ctrl(void)
{
	//检测有人坐下
	if(sys_ctrl.man==1)
	{
		//自动模式
		if(sys_ctrl.auto_flag==0)
		{
			//如果光线暗,开灯
			if(sys_ctrl.light<40)sys_ctrl.open=1;
			else if(sys_ctrl.light>60)sys_ctrl.open=0;
		}
		if(sys_ctrl.open==1)LED=0;//开灯
		else LED=1;//关灯
		
		//如果姿势不对,指示灯警告
		if(sys_ctrl.zsflag==1)ALARM=0;
		else ALARM=1;
	}
	//无人
	else 
	{
		sys_ctrl.open=0;
		LED=1;//关灯
		ALARM=1;
	}
		
}

//应用控制系统
void appdemo_show(void)
{
	sys_parm_init();//系统参数初始化
	KEY_Init();
	ADCx_Init();
	ctrl_pin_init();
	step_motor_gpio_init();
	sys_open_show();//系统初始界面显示

	while(1)
	{
		sys_data_get();//系统数据获取
		sys_data_show();//系统数据显示
		sys_data_set();//系统数据设置
		sys_fun_ctrl();//系统功能控制		
	}
}




三、实验现象

B站演示视频:https://space.bilibili.com/444388619

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


联系作者

专注于51单片机、STM32、国产32、DSP、Proteus、ardunio、ESP32、物联网软件开发,PCB设计,视频分享,技术交流。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

【Proteus仿真】【STM32单片机】基于stm32的智能书桌设计 的相关文章

随机推荐

  • 正则表达式/i,/g,/ig,/gi,/m

    正则表达式中 i g ig gi m的区别和含义 i 忽略大小写 g 全文查找出现的所有匹配字符 m 多行查找 gi 全文查找 忽略大小写 ig 全文查找 忽略大小写 这些是模式修正符 解说正则表达式模式中使用的修正符i 如果设定此修正符
  • 09黑马笔记之栈的应用_中缀表达式转后缀表达式

    09黑马笔记之栈的应用 中缀表达式转后缀表达式 1 前提 1 数字 直接输出 2 左括号 直接进栈 优先级默认最低 3 右括号 将栈顶符号输出 直到匹配到左括号 4 运算符 1 若一开始没有可比较直接进栈 2 若栈顶元素优先级低 进栈 3
  • 蓝桥杯客观题 单片机知识点总结

    1 IAP15f2k60S2含义 IAP15 单片机型号 F 单片机工作电压5 5V 4 2V 2k 2048字节的SRAM 最大主频35MH 60 60KB flash ROM程序存储器 S2 含有2个串口 KB k 2 10Byte 1
  • chatgpt赋能python:Python操作SEO:从抓取网页到数据分析

    Python操作SEO 从抓取网页到数据分析 在当今数字化时代 搜索引擎优化已经成为了每家企业的必修课 然而 SEO涉及到众多技术 其中爬虫抓取和数据处理是其中关键环节 而Python语言正是在这两个方面表现出了非常强大的优势 1 Pyth
  • 滑动奇异频谱分析:数据驱动的非平稳信号分解工具(Matlab代码实现)

    个人主页 研学社的博客 欢迎来到本博客 博主优势 博客内容尽量做到思维缜密 逻辑清晰 为了方便读者 座右铭 行百里者 半于九十 本文目录如下 目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码实现 1 概述 奇异频谱分析
  • IP地址与mac地址是什么?dhcp与arp又是什么?

    计算机网络中 数据的通信就类比写信 两个人写信 需要知道家庭住址以及收件人信息 1 IP地址与mac地址 IP地址就是家庭住址 mac地址就是收件人 例如 一个网卡 硬件设备 就是一个公寓 一个网卡有一个mac地址 出厂时已写入 全球唯一地
  • react+umi3配置代理问题

    前端配置项目代理 一般是为了解决浏览器跨域策略 在umi中有非常方便的方式可以供我们快速配置代理 在我的项目中配置代理也遇到了一个坑点 特此记录一下 环境 react 17 0 0 umi 3 5 0 开始 umi项目中 在项目根目录下创建
  • sonarqube汉化

    参考文档SonarQube基础 中文设定设定方法 知行合一 止于至善 CSDN博客 sonarqube设置中文 用方法一解决
  • 递归实现逆序输出整数

    在这里插入代码片 本题目要求读入1个正整数n 然后编写递归函数reverse int n 实现将该正整数逆序输出 输入格式 输入在一行中给出1个正整数n 输出格式 对每一组输入 在一行中输出n的逆序数 输入样例 12345 样例 54321
  • Java中的的类和对象

    类的概念 类是对生活中具有相同属性和行为的事物的抽象 它是一个大概的范围 类包含属性和行为 属性和行为在程序中也叫做成员变量和成员方法 对象的概念 是能够看得到的具备行为和属性的真实存在的实体 类和对象的关系 类是对象的抽象的范围表达 对象
  • HTML5中把一首古诗变大缩小和变颜色并用数据储存起来

    效果图如下 代码如下
  • 可中断睡眠 sleep

    可中断睡眠 可中断睡眠的执行情况 进程开始时处于可中断睡眠状态 那么如果进程接收到信号后 进程将被唤醒而不在阻塞 当执行完信号处理函数后 就不再睡眠了 直接向下执行代码 sleep 函数 unsigned int sleep unsigne
  • bugku各种绕过

    题目要求uname passwd 但是他们的SHA1值要相同 且id值为margin 利用PHP的sha1漏洞 当参数为数组时返回false 判断成立
  • 嵌入式入门基础知识有哪些?

    嵌入式系统是指在特定应用领域内为满足特定要求而设计的计算机系统 通常被嵌入到设备中 具有实时性 可靠性 低功耗等特点 嵌入式系统应用广泛 例如 智能家居 智能手表 汽车控制系统 医疗设备等 在本篇博客中 我们将讨论嵌入式入门基础知识 包括嵌
  • 狂神说Mybatis笔记(全网最全)

    Mybatis 环境说明 jdk 8 MySQL 5 7 19 maven 3 6 0 IDEA 学习前需要掌握 JDBC MySQL Java 基础 Maven Junit 1 Mybatis简介 1 1 什么是MyBatis MyBat
  • 认识区块链,认知区块链— —数据上链

    上周末参加一次长沙本地胡子互联网俱乐部举办的区块链分享会 颇受启发 同时感谢俱乐部提供的这个交流平台 祝好 好吧 还是先把前些天对区块链的一点理解简单整理下 再回顾下上周末的参会纪要比较好 下篇给大家分享出来 个人区块链思考第一篇 认识区块
  • Yolov3计算准确率、误报率、漏检率等

    思想很简单 将标注的yolo数据转下格式 转为 类别 xmin ymin xmax ymax 转换valid后的信息 两个信息进行对比 完事 具体的 在终端执行 darknet detector valid cfg voc data cfg
  • 【SSM框架】之Spring

    SSM框架笔记 自用 Spring Spring Framework系统架构 Spring程序开发步骤 核心概念 IoC Inversion of Control 控制反转 使用对象时 由主动new产生对象转换为由外部提供对象 此过程中对象
  • 计算机毕业设计看这篇就够了(二)毕设流程

    本篇将为大家介绍计算机专业毕业设计流程 提前了解毕设流程可以让同学们从宏观角度去看毕设要做些什么样的事情 大概知道每个阶段要去做哪些工作 为后续毕设任务的真正开展打下心理预期 也不至于一脸懵 计算机毕设分为以下主流程 选题 确定导师 完成前
  • 【Proteus仿真】【STM32单片机】基于stm32的智能书桌设计

    文章目录 一 功能简介 二 软件设计 三 实验现象 联系作者 一 功能简介 系统运行后 默认为手动模式 当检测有人 可通过K2键开关灯 如果姿势不对 警示灯亮 否则灭 可通过K3和K4键调节桌子高度 按下K1键切换为自动模式 此时有人 且光