基于51单片机的宠物自动喂食语音播报,有实物

1. 51仿真:

 LCD第一屏显示食物重量,当前时间,温湿度。第二屏显示喂食时间,第三屏显示喂食重量。可通过点击查看喂食时间翻转屏幕显示。

点击查看喂食时间后,显示喂食时间,可以设置三个时间,再点击设置,可以设置喂食时间。

 主程序片段:

void main()
{unsigned int count,dj_count;short temperature;//温度short humidity;//湿度bit flag = 0;lcd_init();//1602初始化Timer_Init();//定时器初始化To_Zero();//找回零点lcd_write_str(0,0,"W:  .   kg T:  C");//第一行显示的内容lcd_write_str(0,1,"  :  :     H:  %");//第二行显示的内容while(1){keyscan();//按键扫描if(count++>=50 && setN == 0 && see_nz == 0)//延时一段时间,进入下面函数{count=0;get_weight();//获取重量RH();//读取温湿度humidity = U8RH_data_H;temperature = U8T_data_H;display_weight();//显示重量display_time();//显示时间lcd_write_char(13,0,temperature/10+0x30);//显示温度lcd_write_char(14,0,temperature%10+0x30);lcd_write_char(13,1,humidity/10+0x30);//显示湿度lcd_write_char(14,1,humidity%10+0x30);if((shi == n1_shi && fen == n1_fen && miao == n1_miao)||(shi == n2_shi && fen == n2_fen && miao == n2_miao)||(shi == n3_shi && fen == n3_fen && miao == n3_miao)){//三个喂食时间,任意一个时间到,则开启电机if(weight < food_weight)open_flag = 1;//必须小于设定重量,才能开启}if(open_flag==1)//电机标志位开启{if(dj_count++ > 100)//喂食完成,关闭电机{dj_count = 0;//电机延时清零open_flag = 0;//开启电机标志位清零flag = 0; //电机反转标志清零MotorStop();//关闭电机}   if(dj_count < 50)//计数值小于50,电机正转{MotorCW();//电机正转}else//等于或超过50{if(weight >= food_weight)//投食重量达标后,开启电机反转标志{flag = 1;}if(flag == 1)//重量达标电机反转MotorCCW();elsedj_count = 50;//重量不达标,电机不动作,dj_count赋值为50}}	}}
}

2. 实物制作

lcd原理图:

重量传感器使用hx711:

语音模块使用WT588D:

3. 整理资料:

需要资料或者事物的加🐧qq🐧: 2711326046

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

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

相关文章

【Flume】简介、安装和入门案例(一)

Flume 简介 概述 Flume本身是由Cloudera公司开发的后来贡献给了Apache的一套针对日志数据进行收集(collecting)、汇聚(aggregating)和传输(moving)的机制 Flume本身提供了简单且灵活的结构来完成日志数据的传输 Flume有两大版本&#xff1a; Flume0.X&#xff1a;又称之为…

react18 antd 引入导航栏之后一些bug,解决方法收集

概述&#xff1a; 我们开发react引入antd之后导航栏会出现刷新不选中、不展开二级导航栏、页面js点击之后不选中最新tab、只能展开一个二级tab之类的问题。那么我们一起来把问题给解决了 问题描述 其实问题这些问题差不多就是一个问题&#xff0c;就是Menu没有刷新选中的状态…

HTML 如何实现一个带间隙的圆环

实际效果&#xff1a; ![在这里插入图片描述](https://img-blog.csdnimg.cn/direct/5e634cedded9424d96fbe6d46f34f61a.png#pic_center 代码实现&#xff1a; HTML部分&#xff1a; <svg width"500" height"500" viewBox"0 0 100 100">&…

《精准表达》让你的方案在最短的时间内打动人心 - 三余书屋 3ysw.net

精准表达&#xff1a;让你的方案在最短的时间内打动人心 大家好&#xff0c;今天我们要解读的书名为《精准表达》&#xff0c;其副标题是“让你的方案在最短的时间内打动人心”。在工作中&#xff0c;人们经常需要提交各种方案&#xff0c;例如销售人员向大客户介绍公司产品时…

HandlerInterceptor周边概念

HandlerInterceptor是Spring MVC框架中的一个接口&#xff0c;在org.springframework.web.servlet包下&#xff0c;它是Spring MVC框架中的一部分&#xff0c;它参与到Spring MVC的请求处理生命周期中&#xff0c;所以不是Spring IoC容器的Bean生命周期中的东西&#xff0c;它用…

idea显示maven或者gradle无法从仓库获取到项目中的jar包,jar包所在仓库无法访问解决方法,百试百灵

**idea显示maven或者gradle无法从仓库获取到项目中的jar包&#xff0c;jar包所在仓库无法访问解决方法&#xff0c;百试百灵** 直接上图&#xff0c;大概的故障问题就是&#xff1a;idea导入新的项目&#xff0c;因为项目中很多的jar需要从远程仓库下载&#xff0c;但是远程仓库…

WPF之数据模版

wpf数据模版与控件模版功能差不多&#xff0c;都是讲常用的自定义控件封装起来&#xff0c;通过键调用。但是数据模版可以绑定数据。 代码如下 &#xff1a; 第一步&#xff1a;(创建模版并且将需要显示的数据绑定相对应的模型类属性上) // 自定义控件模版和绑定数据 // Text…

C++ //练习 13.16 如果f中的参数是const numbered,将会怎样?这会改变输出结果吗?如果会改变,为什么?新的输出结果是什么?

C Primer&#xff08;第5版&#xff09; 练习 13.16 练习 13.16 如果f中的参数是const numbered&&#xff0c;将会怎样&#xff1f;这会改变输出结果吗&#xff1f;如果会改变&#xff0c;为什么&#xff1f;新的输出结果是什么&#xff1f; 环境&#xff1a;Linux Ubunt…

【XR806开发板试用】系统烧写

我是在虚拟机下安装&#xff0c;这部分大家应该都会吧&#xff0c;就不过多阐述了。 环境配置 大家应该先看官方文档【XR806】 1.准备工作 安装Git 在安装git后&#xff0c;需git-lfs并配置用户信息。否则可能拉代码失败 git config --global user.name “yourname” git co…

Excel操作-vlookup函数用法大全

目录 常规查找 ​编辑​编辑多条件查找 一维表的多条件查找 二维表的多条件查找 反向查找&#xff08;从右到左&#xff09; ​编辑 匹配多列数据 法一&#xff1a; 法二&#xff1a; 模糊匹配 按指定次数重复 在合并单元格中查找 法一&#xff1a; 法二&#xff1…

stringRedisTemplate.opsForValue().increment(key)报空指针异常

解决办法&#xff1a;https://www.jianshu.com/p/789b33b5943e BUG复现满足以下条件可触发&#xff1a; 1.在RedisConfig开启Redis事务 redisTemplate.setEnableTransactionSupport(true);2.业务中开启事务 Transactional3.同一个业务下用生产多点id就报这个错误了 Cannot in…

Pyside6:Spacer的使用,布局中控件顶格添加

在普通的布局&#xff0c;如水平或纵向布局中&#xff0c;我们的控件都会保持中间状态&#xff0c;如下&#xff1a; 但有许多情况下 &#xff0c;我们需要将控件布局为如下界面&#xff1a; 在前端开发时&#xff0c;我们很容易通过flex来进行布局&#xff0c;修正它的居中或者…

以赛促学、生态共建 | 软通动力子公司鸿湖万联成功举办基于x86架构的OpenHarmony应用生态挑战赛

近日&#xff0c;由开放原子开源基金会、央视网、江苏省工业和信息化厅、无锡市人民政府、江苏软件产业人才发展基金会、苏州工业园区、无锡高新区等共同承办&#xff0c;鸿湖万联参与共建的“基于x86架构的OpenHarmony应用生态挑战赛”决赛路演在无锡圆满落幕。本次挑战赛历时…

倾斜摄影三维模型数据在立体裁剪应用分析

倾斜摄影三维模型数据在立体裁剪应用分析 立体裁剪是一种将三维模型应用于摄影中的技术&#xff0c;可以在摄影过程中将虚拟的三维模型与现实场景进行合成&#xff0c;从而实现逼真的视觉效果。倾斜摄影是一种通过无人机或其他飞行器进行航拍的技术&#xff0c;可以获取到大范围…

python与pycharm如何设置文件夹为源代码根目录

相信大家遇到过下面这种情况 当我们在当前项目下引入了其它项目的代码&#xff0c;这是其它项目的包的导入路径是不用于当前项目的&#xff0c;这样导致项目无法正常起来&#xff0c;但是我们又不可能一个个文件去处理&#xff0c;这时可以用下面的方式解决 pycharm直接设置 …

安全中级-初开始

一、网络基础 重要点&#xff1a;TTL值&#xff08;防环&#xff0c;linux64.Windows128 &#xff09;&#xff0c;IP数据包包头格式字节&#xff08;20&#xff09; 标识标志偏移量起到什么作用&#xff08;数据超过1500会分片&#xff09; wireshack抓包会有一个MSS&#x…

Vivado中的加法器电路结构

先给出结论&#xff0c;Vivado中的加法器是利用SLICE中的LUT和进位链实现的。 目录 一、全加器二、SLICE如何实现加法器三、实例测试1.直接使用加法器2.LUT级别 一、全加器 一位全加器的结构如下&#xff1a; 其中&#xff1a; A、B为输入的两个加数CI为进位CO为本位对高位的…

连接器电镀小课堂系列三 | 打底电镀、基体金属、润滑、电压

【摘要/前言】 电镀会影响连接器系统的寿命和质量&#xff0c;包括耐腐蚀性、导电性、可焊性&#xff0c;当然还有成本。 【小课堂背景】 这是 Samtec质量工程经理 Phil Eckert 和首席工程师 Matt Brown 讨论连接器电镀相关问题的系列第三部分&#xff0c;主题为 “打底电镀、…

C语言 | Leetcode C语言题解之第40题组合总和II

题目&#xff1a; 题解&#xff1a; int** ans; int* ansColumnSizes; int ansSize;int* sequence; int sequenceSize;int** freq; int freqSize;void dfs(int pos, int rest) {if (rest 0) {int* tmp malloc(sizeof(int) * sequenceSize);memcpy(tmp, sequence, sizeof(int…

通义灵码牵手阿里云函数计算 FC ,打造智能编码新体验

通义灵码自成功入职阿里云后&#xff0c;其智能编程助手的角色除了服务于阿里云内部几万开发者&#xff0c;如今进一步服务函数计算 FC 产品开发者。近日&#xff0c;通义灵码正式进驻函数计算 FC WebIDE&#xff0c;让使用函数计算产品的开发者在其熟悉的云端集成开发环境中&a…