【Proteus仿真】【Arduino单片机】定时智能插座开关

文章目录

  • 一、功能简介
  • 二、软件设计
  • 三、实验现象
  • 联系作者


一、功能简介

本项目使用Proteus8仿真Arduino单片机控制器,使LCD1602液晶,DS18B20温度传感器、按键、蜂鸣器、继电器开关、HC05蓝牙模块等。
主要功能:
系统运行后,LCD1602显示温度、温度阈值,定时时间及状态信息等;如果温度高于阈值,则开关关闭,且蜂鸣器报警。
如果温度低于阈值,当定时器状态开启,定时结束,开关关闭,发出提示音。正常模式下,可通过K1键对开关的开和关控制。
通过K3键进入阈值设置模式,可通过K3选择需修改的数据位置,K1和K2调节,当需要开启定时器时,需将状态由N设置为Y,K4键确定并返回正常模式。可通过蓝牙发送字符’O’远程打开开关,发送字符’C’关闭。


二、软件设计

/*
作者:嗨小易(QQVIP群2:570487280)*///系统数据显示
void sys_data_show(void)
{while(1){//正常模式显示if(sys_ctrl.mode==0){//温度显示lcd1602_show_nums(3,0,sys_ctrl.temp,2,0);//温度阈值显示lcd1602_show_nums(7,0,sys_ctrl.temph,2,0);//时间显示lcd1602_show_nums(5,1,sys_ctrl.time[0],2,0x80);lcd1602_show_nums(8,1,sys_ctrl.time[1],2,0x80);lcd1602_show_nums(11,1,sys_ctrl.time[2],2,0x80);//开关状态显示if(sys_ctrl.onoff==0)lcd1602_show_string(13,0,"OFF");else lcd1602_show_string(13,0," ON");//定时开关显示if(sys_ctrl.time_onoff==0)lcd1602_show_string(15,1,"N");else lcd1602_show_string(15,1,"Y");	}//设置模式显示else{//温度阈值显示lcd1602_show_nums(7,0,sys_ctrl.temph,2,0);//时间显示lcd1602_show_nums(5,1,sys_ctrl.time[0],2,0x80);lcd1602_show_nums(8,1,sys_ctrl.time[1],2,0x80);lcd1602_show_nums(11,1,sys_ctrl.time[2],2,0x80);switch(sys_ctrl.mode){case 1://温度lcd1602_show_string(7,0,"  ");delay_ms(100);lcd1602_show_nums(7,0,sys_ctrl.temph,2,0);break;case 2://小时lcd1602_show_string(5,1,"  ");delay_ms(100);lcd1602_show_nums(5,1,sys_ctrl.time[0],2,0x80);break;case 3://分钟lcd1602_show_string(8,1,"  ");delay_ms(200);lcd1602_show_nums(8,1,sys_ctrl.time[1],2,0x80);break;case 4://开关lcd1602_show_string(15,1," ");delay_ms(200);if(sys_ctrl.time_onoff==0)lcd1602_show_string(15,1,"N");else lcd1602_show_string(15,1,"Y");break;	}	}	break;			}
}//系统数据设置
void sys_data_set(void)
{u8 key=0;key=key_scan(0);//模式设置if(key==KEY3_PRESS){sys_ctrl.mode++;if(sys_ctrl.mode>4)sys_ctrl.mode=1;}//正常模式if(sys_ctrl.mode==0){//开if(key==KEY1_PRESS){sys_ctrl.onoff=!sys_ctrl.onoff;	}}//设置模式else{//加if(key==KEY1_PRESS){switch(sys_ctrl.mode){case 1://温度sys_ctrl.temph++;if(sys_ctrl.temph>99)sys_ctrl.temph=0;break;case 2://小时sys_ctrl.time[0]++;if(sys_ctrl.time[0]>23)sys_ctrl.time[0]=0;break;case 3://分钟sys_ctrl.time[1]++;if(sys_ctrl.time[1]>59)sys_ctrl.time[1]=0;break;case 4://开关sys_ctrl.time_onoff=!sys_ctrl.time_onoff;break;}}//减else if(key==KEY2_PRESS){switch(sys_ctrl.mode){case 1://温度sys_ctrl.temph--;if(sys_ctrl.temph<0)sys_ctrl.temph=99;break;case 2://小时sys_ctrl.time[0]--;if(sys_ctrl.time[0]<0)sys_ctrl.time[0]=23;break;case 3://分钟sys_ctrl.time[1]--;if(sys_ctrl.time[1]<0)sys_ctrl.time[1]=59;break;case 4://开关sys_ctrl.time_onoff=!sys_ctrl.time_onoff;break;}}//确定else if(key==KEY4_PRESS){sys_ctrl.mode=0;}}
}

三、实验现象

B站演示视频:https://space.bilibili.com/444388619
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

联系作者

视频地址:https://space.bilibili.com/444388619/video
专注于51单片机、STM32、国产32、DSP、Proteus、arduino、ESP32、物联网软件开发,PCB设计,视频分享,技术交流。

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

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

相关文章

SQL进阶理论篇(十二):InnoDB中的MVCC是如何实现的?

文章目录 简介事务版本号行记录的隐藏列Undo LogRead View的工作流程总结参考文献 简介 在不同的DBMS里&#xff0c;MVCC的实现机制是不同的。本节我们会以InnoDB举例&#xff0c;讲解InnoDB里MVCC的实现机制。 我们需要掌握这么几个概念&#xff1a; 事务版本号行记录的隐藏…

unittest自动化测试断言方法的介绍

断言如同在测试用例上&#xff0c;类似于预期结果与实际结果是否一致&#xff0c;如果一致则表示测试通过&#xff0c;Assert断言很好的用于测试结果判断上,更灵活的对预期结果和实际结果进行对比&#xff0c;下面简单的介绍一下unittest的Assert断言 unittest中基础的assert断…

使用Windows批处理命令行和ImageMagick批量将文件夹中的图片转换为PDF文档的方法

目录 应用场景 实现思路 实现过程 1.下载安装imageMagick 2.遍历源文件夹 3.转换图片为pdf文档 4.最终执行的命令 5.结果验证 6.将以上命令改写为windows批处理文件 应用场景 图像是一种常见的数据。图片几乎是一个信息系统中必不可少的组成部分。为了方便阅读&…

机器学习ST股票预测模型(企业建模_论文建模定制服务_信用评分卡等多算法实现)

知己知彼&#xff0c;百战不殆&#xff1b;不知彼而知己&#xff0c;一胜一负&#xff1b;不知彼&#xff0c;不知己&#xff0c;每战必贻。--《孙子兵法》谋攻篇 ST股票 ST股票是指因连续两年净利润为负而被暂停上市的股票&#xff0c;其风险较高&#xff0c;投资者需要谨慎…

Web自动化框架中验证码识别处理全攻略,让测试更得心应手!

前言&#xff1a; 随着Web应用程序的不断发展&#xff0c;自动化测试已成为项目开发中必不可少的一环。然而&#xff0c;验证码的出现却经常会使自动化测试变得更具挑战性。为了解决这个问题&#xff0c;我们需要一种方法来自动识别和处理验证码&#xff0c;从而提高自动化测试…

超越巨头:Zephyr-7B领跑7B级模型竞赛,开源且笔记本可运行

引言 在AI界的大语言模型&#xff08;LLM&#xff09;竞赛中&#xff0c;Zephyr-7B作为Hugging Face H4团队的最新力作&#xff0c;展现了令人瞩目的技术突破。它不仅性能超越了700亿参数的LLaMA2模型&#xff0c;更引人注目的是&#xff0c;这一开源模型可在常规笔记本电脑上…

羊大师提示,把工作和生活分开轻松拥有幸福人生

羊大师提示&#xff0c;把工作和生活分开轻松拥有幸福人生 工作对于每个人来说是必不可少的一部分&#xff0c;但是在忙碌的工作中也不能忘记了生活的美好。如何平衡好工作和生活&#xff0c;成为了许多人追求的目标。 我们都知道&#xff0c;工作和生活之间的平衡是非常重要…

什么品牌的猫罐头好吃?五大性价比高的猫罐头测评

不知不觉已经养猫两年啦&#xff0c;大大小小也算是尝试过很多猫罐头了。一开始我也是踩了很多坑&#xff0c;各种踩雷。我深知猫罐头的各种门道&#xff0c;新手一不小心就会着道了。 作为一个经营猫咖5年的老板&#xff0c;大促期间我总能捡漏&#xff0c;屯到一大波好吃又放…

Guitar Pro吉他软件2024使用教程汇总

Guitar Pro 8是一款功能强大的指法阅读器和编辑器&#xff0c;它允许您编辑吉他、贝斯和尤克里里的乐谱和指法谱&#xff0c;并为鼓或钢琴创建背景音轨。轻松创建、播放和共享您的标签&#xff01;快速的进行乐谱播放并进行练习&#xff0c;也可以进行编辑操作&#xff0c;允许…

简单的绑定发布事件

在绑定事情之前&#xff0c;我们需要对我们的需求进行分析&#xff1b;判断我们是否需要同时存在条件。 发布动态的时候&#xff0c;分为以下三种情况&#xff1a; ① 输入了标题&#xff0c;没有图片&#xff0c;可以发布动态 ②输入了图片&#xff0c;没有标题&#xff0c;…

Echarts自定义样式实现3D柱状图-长方体-圆柱体,两种样式

Echarts自定义样式实现3D柱状图-长方体-圆柱体&#xff0c;两种样式 效果图代码series配置项目 效果图 长方体 柱状体 代码 <!--此示例下载自 https://echarts.apache.org/examples/zh/editor.html?cbar3d-dataset&gl1 --> <!DOCTYPE html> <html lang…

数据分析师的职业规划与参考资料

数据分析师如何规划 参考&#xff1a;超详细的数据分析职业规划 一个产品的出现可以从业务和技术两个方向分析&#xff0c;业务需求技术支持产品的出现。 如果把职业也当成一个产品&#xff0c;也有类似的分析&#xff0c; 其中业务也就是领域&#xff0c;即这个业务领域的特点…