【Proteus仿真】【51单片机】智能婴儿车

news2025/1/10 22:52:31

文章目录

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


一、功能简介

本项目使用Proteus8仿真51单片机控制器,使用LCD1604显示模块、按键模块、LED和蜂鸣器、DHT11温湿度、DS18B20温度传感器、SR04超声波,声音传感器、L298N直流电机、语音蓝牙控制等。
主要功能:
系统运行后,LCD1604显示DHT11检测环境湿度值、DS18B20检测体温、HC-SR04超声波检测距离、声音传感器检测是否有声音;如果超声波检测距离大于报警值120CM,则蜂鸣器报警。否则,如果检测到儿童哭泣,开启摇篮,如果检测到没有声音,则停止摇篮。
当检测没有声音时,可通过语音/蓝牙控制摇篮的开启和关闭;
当检测到有声音时,可通过语音/蓝牙控制打开和关闭声音。
语音/蓝牙控制指令:
0X01–>开启摇篮
0X02–>停止摇篮
0X03–>开启声音
0X04–>关闭声音


二、软件设计

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

*/


//系统功能控制
void sys_fun_ctrl(void)
{
	static u16 i=0;
	static u8 cnt=0;

	//如果检测距离超限,蜂鸣器报警
	if(sys_ctrl.dis>ALARM_DIS)
	{
		beep_alarm(100,20);//蜂鸣器报警
	}
	//有效距离内
	else
	{
		//如果检测到有声音,开启摇床
		if(sys_ctrl.sound==1)
		{
			sys_ctrl.run=1;
			i++;
			if(i%10==0)
			{
				cnt++;
				if(cnt>2)cnt=0;
				dc_motor_dir_ctrl(cnt);//开启摇床
			}
			//如果语音/蓝牙播放音乐
			if(UART_RX_BUF[0]==PLAY_MUSIC_CMD)
			{
				beep_alarm(1000,10);
			}		
		}
		//如果检测到没有声音
		else
		{
			//如果语音/蓝牙打开摇床,开启摇床
			if(UART_RX_BUF[0]==START_CMD)
			{
				sys_ctrl.run=1;
				i++;
				if(i%10==0)
				{
					cnt++;
					if(cnt>2)cnt=0;
					dc_motor_dir_ctrl(cnt);//开启摇床
				}		
			}
			//如果语音/蓝牙关闭摇床,关闭摇床
			else if(UART_RX_BUF[0]==STOP_CMD)
			{
				UART_RX_BUF[0]=0;
				sys_ctrl.run=0;
				dc_motor_dir_ctrl(0);//停止摇床	
			}
			//没有收到语音/蓝牙指令
			else
			{
				sys_ctrl.run=0;
				dc_motor_dir_ctrl(0);//停止摇床	
			}
		}	
	}		
}

//应用控制系统
void appdemo_show(void)
{
	u8 i=10;
	sys_parm_init();//系统参数初始化
	lcd1604_init();
	DHT11_Init();
	ds18b20_init();
	UART_Init();//串口初始化,4800
	UART_SendString("UART Init OK\r\n");
	//读取温度数据,等待稳定
	while(i--)
	{
		//读取DHT11温湿度值
		DHT11_Read_Data(&sys_ctrl.htemp,&sys_ctrl.humi);
		//读取DS18B20温度值
		sys_ctrl.temp=ds18b20_read_temperture()*10;
		delay_ms(100);	
	}
	ultrasonicwave_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设计,视频分享,技术交流。

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

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

相关文章

搭建属于你自己的New Bing

前言 在这篇博客中,您将学习如何使用 Render 部署 go-proxy-bingai 项目,以便在不需要登录的情况下体验微软 Bing AI 的所有功能。 作者GitHub项目地址:adams549659584/go-proxy-bingai: 用 Vue3 和 Go 搭建的微软 New Bing 演示站点&#x…

工业场景中的RFID技术应用有哪些?

您是否好奇于如何在工业场景中利用RFID技术实现更高效的操作和生产流程优化?本文将带您深入探索RFID技术在工业领域的应用,揭示其优势和挑战,并通过实际案例为您呈现RFID技术在工业自动化和生产流程优化方面的成功应用。 一、RFID技术在工业…

OpenWrt 软路由解析公网IPV6域名访问家庭NAS的问题答疑

1、非要使用 Padavan 或者 OpenWrt固件的软路由才能IPV6公网访问吗? 答:这个并不是这样的,一般家用路由器都无法放行防火墙规则,这种情况当然无法实现IPV6公网访问,但是少部分路由器是可以的,只要有防火墙设…

MySQL6-深入理解MVCC和BufferPool缓存机制

❤️ 个人主页:程序员句号 🚀 支持水滴:点赞👍 收藏⭐ 留言💬关注 🌸 订阅专栏:MySQL性能调优 原创博文、基础知识点讲解、有一定指导意义的中高级实践文章。 认真或有趣的技术分享。 MySQL性…

Vue.js 中的路由是什么?如何使用路由?

Vue.js 中的路由是什么?如何使用路由? 在 Vue.js 中,路由是指为不同的 URL 地址提供不同的页面内容或视图的机制。Vue.js 中的路由可以使用 Vue Router 库来实现,它是 Vue.js 官方提供的路由管理库。 Vue Router 简介 Vue Route…

vue (8)

vue8 文章目录 1. 浏览器本地存储1.1 localStorage1.2 sessionStorage1.3 总结 2. 修改 TodoList 案例3. 绑定自定义事件3.1 绑定3.2 解绑3.3 两个注意点3.4 总结3.5 修改 TodoList 案例 4. 全局事件总线4.1 总结4.2 修改 TodoList 案例 1. 浏览器本地存储 1.1 localStorage 图…

【MySQL数据库】项目中用到的一些SQL查询总结

文章目录 前言1. 有A,B两张表,需要统计A表中某个属性值的总数,更新到B表中实现代码 2. 将三张(或n张)表中的结果合并一起实现代码 3. 删除题库中的所有试题信息实现代码 4. 统计同一张表中,不同属性的数量于…

C语言-typedef关键字

一.typedef 关键字 typedef是在C语言允许为一个数据类型起一个新的别名。它本身是一种存储类的关键字,与auto extern,mutable、static、register 等关键字不能出现在同一个表达式中。 二、typedef用法 示例: 对于数据类型使用例如: 对于指针的使用例如…

【VictoriaMetrics】VictoriaMetrics单机版批量和单条数据写入(influx格式)

VictoriaMetrics单机版支持以influx格式的数据写入,写入支持单条数据写入以及多条数据写入,下面操作演示下如何使用 1、首先需要启动VictoriaMetrics单机版服务 启动VictoriaMetrics单机版服务执行的命令如下 nohup /opt/victoriaMetrics/victoria-metrics-prod -httpListe…

【剑指offer专项突破版】整数篇(经典面试题)——C

文章目录 前言一. 整数除法题目分析1.一般思路①代码 2.优化思路②优化后的代码 拓展:用位运算实现整数的加法③代码 二. 二进制加法题目分析思路分析①代码 三. 前n个数字中1的个数题目描述思路分析①方法1——遍历②方法2——i&(i-1)③方法3——i&(i-1)的优化④方法…

数字赋农:数字农业新时代,致富之路宽又阔!

不管在什么年代,粮食永远是国之根本、民之命脉,而来粮食安全更是“国之大者”,更是曾在大会中明确提出过,要全方位夯实粮食安全根基,牢牢守住十八亿耕地红线,确保中国人的饭碗牢牢端在自己手中。 我们需要深…

快速入门SpringMVC 学习

目录 SpringMVC 定义 MVC定义 创建SpringMVC项目 SpringMVC掌握功能 一、连接功能 RequestMapping(请求映射) GetMapping 和 PostMapping 二、获取参数功能 传递单个参数/多个参数 注意点: RequestParam(前后端参数映射) 前后端参数映射 RequestParam特…

骆驼祥子思维导图怎么画?高效工具分享

骆驼祥子是一部中国现代文学经典作品,由老舍所著。在阅读这本书时,我们可以使用思维导图来梳理故事情节和人物关系,从而更好地理解这本书的主题和内涵。 我们可以在线制作思维导图,这个网站还内置了流程图和Markdown功能。 站点内…

前瞻洞察|Prompt Learning(提示学习)——新的低资源场景克星

近年来,预训练语言模型已然成为自然语言处理(NLP)领域中备受瞩目的技术之一。预训练模型可以在大规模文本语料上进行自监督学习,从而获得丰富的语言学知识,并通过在下游任务上进行微调,实现出色的性能。Pro…

markdown导出成html,并将图片转换成base64

文章目录 方案一,使用typora第一步,编写python脚本第二步,设置导出后运行py脚本,设置如下 方式二,使用vscode插件:Markdown Preview Enhanced使用方法在markdown头部添加 预览界面右键,选择导出…

JAVA基础知识总结系列(2):JAVA语法基础

1,关键字:其实就是某种语言赋予了特殊含义的单词。 保留字:其实就是还没有赋予特殊含义,但是准备日后要使用过的单词。 2,标示符:Java中的包、类、方法、参数和变量的名字,可由任意顺序的大小写…

用低代码打造高效餐厅管理系统

当代社会,餐饮业有着非常广阔的市场前景,也承担着相应的管理力。随着人工智能、物联网等新技术的快速发展,低代码能化为了许多餐饮门店管理的新革命。在这篇文章中,我们将会探讨低代码智能化带来的餐门店管理新使命。 一、低代码…

leetcode 2101. Detonate the Maximum Bombs(引发最多的bomb)

bombs是一个二维数组,每个bombs[i] [x, y, r] 代表一个bomb,(x,y)是二维坐标,r是半径。 点燃一个bomb时,以(x,y)为圆心,半径为r的圆范围内的bomb都会点燃,引起连锁反映。 选择一个bomb点燃,使得…

品牌出海3大营销新趋势

过去一年,跨境行业复杂多变,在成本剧增、利润承压之下,出海卖家们面临着诸多考验,但不管如何,可以肯定的是,未来跨境电商行业势必将迎来一波新增长。反之,随着行业竞争加剧,对卖家的…

MongoDB 复制集的基本概念

官方概念:副本集是一组 MongoDB 的进程去维持同样的一份数据集,通过 MongoDB 的复制协议保证主备之间的数据一致性。 如上图所示,MongoDB 有两种部署方式,一个是 Standalone 部署模式;另外一个是副本集,有不…