当前位置: 首页 > news >正文

【Proteus仿真】【STM32单片机】路灯控制系统

文章目录

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


一、功能简介

本项目使用Proteus8仿真STM32单片机控制器,使用LCD1602显示模块、人体红外传感器、光线检测模块、路灯继电器控制等。

主要功能:
系统运行后,LCD1602显示时间、工作模式,光线强度及路灯工作状态。
如果晚上11点到凌晨4点,通过红外感应方式控制路灯;
当感应有人,路灯开启;当感应没人,延迟一会儿关闭路灯;
如果在时间之外则通过光线强弱方式控制路灯;
当光线较暗,路灯开启;当光线较亮,延迟一会儿关闭路灯;


二、软件设计

/*
作者:嗨小易(QQ:3443792007)*///系统数据获取
void sys_data_get(void)
{while(1){//读取光线值sys_ctrl.light=pcf8591_read_adcvalue(0);sys_ctrl.light=cal_map(sys_ctrl.light,0,255,0,100);//检测是否有人if(IRED==0)sys_ctrl.man=1;else sys_ctrl.man=0;//根据时间选择光控还是红外控if(sys_ctrl.hour>=23 || sys_ctrl.hour<=3)sys_ctrl.mode=1;else sys_ctrl.mode=0;	break;}	
}//系统数据显示
void sys_data_show(void)
{while(1){//时间显示lcd1602_show_nums(0,0,sys_ctrl.hour,2,0x80);lcd1602_show_nums(3,0,sys_ctrl.min,2,0x80);lcd1602_show_nums(6,0,sys_ctrl.sec,2,0x80);//控制模式显示if(sys_ctrl.mode==1)lcd1602_show_string(11,0,"Ired ");else lcd1602_show_string(11,0,"Light");//显示光线强度lcd1602_show_nums(2,1,sys_ctrl.light,3,0);//是否有人显示if(sys_ctrl.man==1)lcd1602_show_string(8,1,"Y");else lcd1602_show_string(8,1,"N");break;			}
}//系统数据设置
void sys_data_set(void)
{}//系统功能控制
void sys_fun_ctrl(void)
{//如果是光控if(sys_ctrl.mode==0){//光线很强,路灯关闭if(sys_ctrl.light>LIGHT_MAX)sys_ctrl.sta=0;//如果光线暗,路灯打开else if(sys_ctrl.light<LIGHT_MIN)sys_ctrl.sta=1;
//		//中间强度,路灯关闭
//		else sys_ctrl.sta=0;	}//如果是红外控制else{//如果感应到有人,路灯打开if(sys_ctrl.man==1)sys_ctrl.sta=1;else {delay_ms(1000);sys_ctrl.sta=0;	}}//路灯关闭if(sys_ctrl.sta==0){LED=1;lcd1602_show_string(11,1,"Close");}else {LED=0;lcd1602_show_string(11,1,"Open ");	}
}//应用控制系统
void appdemo_show(void)
{u8 i=2;sys_parm_init();//系统参数初始化ctrl_pin_init();pcf8591_init();lcd1602_init();//LCD1602初始化//读取数据,等待稳定while(i--){//读取光线值sys_ctrl.light=pcf8591_read_adcvalue(0);sys_ctrl.light=cal_map(sys_ctrl.light,0,255,0,100);delay_ms(100);}TIM2_Init(400-1,70);//定时10msTIM_Cmd(TIM2,ENABLE);//打开定时器sys_open_show();//系统初始界面显示while(1){sys_data_get();//系统数据获取sys_data_show();//系统数据显示sys_data_set();//系统数据设置sys_fun_ctrl();//系统功能控制		}
}

三、实验现象

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

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


联系作者

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

http://www.lryc.cn/news/198006.html

相关文章:

  • Flutter笔记:发布一个Flutter头像模块 easy_avatar
  • 标准化助推开源发展丨九州未来参编开源领域4项团体标准正式发布
  • ChatGPT对于留学生论文写作有哪些帮助?
  • 【yolov8目标检测】使用yolov8训练自己的数据集
  • 【vue+nestjs】gitee第三方授权登录【超详细】
  • node 第八天 使用前后端不分离的方式实现cookie登录验证
  • Ubuntu系统如何进行网络连接-连接电脑局域网-物联网开发-Ubuntu系统维护
  • STL库——Vector常见使用接口
  • 将文件(File 对象)分割成多个块
  • 若要对多态类进行深拷贝,应使用虚函数的clone,而不是公开的拷贝构造赋值
  • 同构字符串(C++解法)
  • 『Linux升级路』基本指令
  • python argparse解析参数
  • 【数据挖掘】数据挖掘、关联分析、分类预测、决策树、聚类、类神经网络与罗吉斯回归
  • nodejs+vue 学生宿舍管理系统设计与实现
  • 汽车R155法规包含那些国家?
  • 一个简易的低代码
  • 【JVM系列】- 类加载子系统与加载过程
  • Amazon图片下载器:利用Scrapy库完成图像下载任务
  • Unity中Shader的Pass的复用
  • vue内容自适应方法
  • RustDay05------Exercise[41-50]
  • C语言实现通讯录(超详细)
  • 【Python机器学习】零基础掌握MinCovDet协方差估计
  • 2023年【四川省安全员A证】模拟试题及四川省安全员A证作业模拟考试
  • Flask项目log的集成
  • Open3D(C++) 最小二乘拟合平面(拉格朗日乘子法)
  • c语言练习93:环形链表的约瑟夫问题
  • 从入门到进阶 之 ElasticSearch 文档、分词器 进阶篇
  • 亚马逊云科技多项新功能与服务,助力各种规模的组织拥抱生成式 AI