基于51单片机智能垃圾桶—红外感应自动开关

基于51单片机智能垃圾桶

(仿真+程序+原理图+PCB+设计报告)

功能介绍

具体功能:

1.ULN2003驱动步进电机控制打开关闭垃圾桶;

2.一个红外对管检测有没有人,一个红外对管检测垃圾满;

3.若检测到人,垃圾桶自动打开,扔完垃圾后再自动关闭;

4.若检测到垃圾满了,声光报警,垃圾桶就不会自动打开;

5.这时可以按手动按键打开垃圾桶,清理垃圾;

添加图片注释,不超过 140 字(可选)

程序

#include <reg52.h>     //包括一个52标准内核的头文件
#include<intrins.h>
#define uchar unsigned char //定义一下方便使用
#define uint  unsigned int
#define ulong unsigned long//***********************************************
sbit HW1=P3^3;
sbit HW2=P3^5;	  //红外IO端口定义,HW1是检测垃圾是否满,HW2是检测是否有人扔垃圾
bit  HW2_flag=0;  //红外触发标志位
sbit beep=P3^4;	  //蜂鸣器端口定义
sbit led1=P1^0;	  //指示灯IO
sbit key1=P1^5;	  //按键IO
bit key1_flag=0;  //按键按下标志位
uchar loop;		  //步进电机转动变量
bit hand_flag=0;
uint m_i;		  //电机转动次数计数
uchar ms,c_ms,p_ms=199;
uchar open_time=0;uchar beep_num;		 //蜂鸣器响次数控制变量
uchar open_flag=0;	 //控制电机转动与不转动总开关,置一,执行电机控制,否则不执行电机控制
bit open_flag1=1;	 //该变量,等于0,说明是开盖子,等于1是关盖子
uchar code fz[]=	 //正转数据
{0x01,0x03,0x02,0x06,0x04,0x0c,0x08,0x09};uchar code zz[]=	 //反转数据
{0x09,0x08,0x0c,0x04,0x06,0x02,0x03,0x01};
void Delay800us()		//短延时函数
{unsigned char i, j;i = 2;j = 139;do{while (--j);} while (--i);
}void proc()		//正反转函数
{if(open_flag==1&&!open_flag1)	  //关{	P2=zz[loop];		  //将正转数据赋值给P2端口,P2接的是步进电机loop=(loop+1)%8;	  //循环加,Loop变化范围是 0 -  7,这样结合上一句话就可循环将转动数据送给P2Delay800us();		  //短延时一下,调节这个短延时,可以控制步进电机的转动速度,越小就越快m_i++;				  //变量加加,当加到1080,相当于送1080次电机转动数据,就停止加,同时停止驱动电机,1080是目测的,差不多刚好打开盖子的数据if(m_i==1080){m_i=0;			  //清零open_flag=0;	  //清零,关电机控制open_flag1=1; 	  //数据反转}}else if(open_flag==2&&open_flag1)	 //开{P2=fz[loop];		  //步骤和上面的基本一致,都是送电机转动数据,使其转动,然后转动1080次,就停止转动loop=(loop+1)%8;Delay800us();m_i++;if(m_i==1080){m_i=0;open_flag1=0;open_flag=0;}}
} 
******//完整资料
***//***微信公众号:木子单片机********/
void dis_pose()
{if(!HW1) 	    //当这个红外被触发,相当于垃圾桶满了{led1=0;	    //指示灯点亮if(!key1)	//按键按下{if(key1_flag)  //这个标志位只有当按键没按下的时候才会置一,功能是确保只执行一次{key1_flag=0; //清零,这样只有当按键松开之后才回去置一,才会再次执行if(open_flag1) 	//如果此时为关盖子{hand_flag=1; open_flag=2;  //变量置 2 执行开盖子}else {hand_flag=0;open_flag=1;  //如果是开盖子,执行这个,会去关盖子} }}else key1_flag=1;  //按键松开,就置一}else {led1=1;		 //指示灯熄灭if(!HW2)	 //这个红外被触发,有人要扔垃圾{if(HW2_flag) //和按键的功能是一样的,确保只执行一次{HW2_flag=0;	  //清零,只有人离开才会置一if(open_flag1) open_flag=2;	 //执行开盖子}}else {HW2_flag=1;}}
}

硬件设计

使用元器件:

单片机:STC89C52;

(注意:单片机是通用的,无论51还是52、无论stc还是at都一样,引脚功能都一样。程序也是一样的。)

蜂鸣器;10uF电解电容;

30p瓷片电容;电源接口;

轻触按键;9012三极管;

5mm红色LED/黄色LED;

5P白插座+步进电机;

1K电阻;10K电阻;自锁开关;

ULN2003电机驱动+DIP16底座;

红外接收模块+3p排针;

12M晶振;导线:若干;

添加图片注释,不超过 140 字(可选)

流程图:

添加图片注释,不超过 140 字(可选)

设计资料

01仿真图

本设计使用proteus7.8和proteus8.9两个版本设计,向下兼容,无需担心!具体如图!

添加图片注释,不超过 140 字(可选)

02原理图

本系统原理图采用Altium Designer19设计,具体如图!

添加图片注释,不超过 140 字(可选)

03程序

本设计使用keil5版本编程设计!具体如图!

添加图片注释,不超过 140 字(可选)

04设计报告

一万一千字设计报告,具体如下!

添加图片注释,不超过 140 字(可选)

05设计资料

全部资料包括程序(含注释)、仿真源文件 、AD原理图、任务书、PCB、设计报告、流程图、实物图、元件清单等。具体内容如下,全网最全! !

添加图片注释,不超过 140 字(可选)

点赞分享一起学习成长。

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

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

相关文章

自动涂胶机设计及其在工业生产中的应用研究

摘要 本文详细探讨了自动涂胶机的设计原理、关键技术和应用前景。随着工业自动化水平的不断提高&#xff0c;自动涂胶机在制造业中的应用日益广泛。文章首先分析了自动涂胶机的基本工作原理&#xff0c;然后深入研究了其机械结构设计、控制系统设计和视觉定位系统等关键技术。…

SQL 语言

SQL概述与数据库定义 SQL的基本组成 1、数据定义语言。SQL DDL提供定义关系模式和视图、删除关系和视图、修改关系模式的命令。 2、交互式数据操纵语言。SQL DML提供查询、插入、删除和修改的命令。 3、事务控制。SQL提供定义事务开始和结束的命令。 4、嵌入式SQL和动态SQL。用…

深度剖析ZooKeeper

1. ZooKeeper架构总览 ZooKeeper 是一个分布式协调服务&#xff0c;广泛用于分布式系统中的配置管理、命名服务、分布式锁和领导选举等场景。以下是对 ZooKeeper 架构、通信机制、容错处理、数据一致性与可靠性等方面的详细剖析。 一、ZooKeeper 主从集群 ZooKeeper 采用 主从…

K8S-statefulset-mysql-ha

需求 实现一个HA mysql&#xff0c;包括1个master&#xff0c;2个slave。在K8S上已statefulset部署。 mysql HA原理 略 K8S环境需要解决的问题 1、由于使用同一个statefulset配置&#xff0c;因此需要考虑master和slave使用不同的cnf文件。 2、不同pod之间文件的传输 3、…

人脸美颜磨皮祛痘1:数据集说明(含下载链接)

一. 前言 本篇博客是《人脸美颜磨皮祛痘》系列文章之《数据集说明(含下载链接)》&#xff0c;像这种深度学习图像修复的数据一般是需要成对&#xff0c;网上很难找到&#xff0c;公司或者个人都是花钱找人做。为了方便你我他&#xff0c;本博客将分享一个由我自己整理的人脸美…

redis功能清单

文章目录 Redis高级功能使用说明功能清单1. 分布式锁1.1 功能描述1.2 使用方法1.3 测试接口 2. 消息发布订阅2.1 功能描述2.2 使用方法发布消息订阅消息 2.3 测试接口 3. 接口限流3.1 功能描述3.2 使用方法方式一&#xff1a;直接使用工具类方式二&#xff1a;使用注解&#xf…

从代码学习深度学习 - 预训练word2vec PyTorch版

文章目录 前言辅助工具1. 绘图工具 (`utils_for_huitu.py`)2. 数据处理工具 (`utils_for_data.py`)3. 训练辅助工具 (`utils_for_train.py`)预训练 Word2Vec - 主流程1. 环境设置与数据加载2. 跳元模型 (Skip-gram Model)2.1. 嵌入层 (Embedding Layer)2.2. 定义前向传播3. 训练…

Python实现对大批量Word文档进行自动添加页码(16)

前言 本文是该专栏的第16篇,后面会持续分享Python办公自动化干货知识,记得关注。 在处理word文档的时候,相信或多或少都遇到过这样的需求——需要对“目标word文档,自动添加页码”。 换言之,如果有大批量的word文档文件需要你添加页码,这个时候最聪明的办法就是使用“程…

云原生安全:Linux命令行操作全解析

&#x1f525;「炎码工坊」技术弹药已装填&#xff01; 点击关注 → 解锁工业级干货【工具实测|项目避坑|源码燃烧指南】 ——从基础概念到安全实践的完整指南 一、基础概念 1. Shell与终端交互 Shell是Linux命令行的解释器&#xff08;如Bash、Zsh&#xff09;&#xff0c;负…

Day 34

GPU训练 要让模型在 GPU 上训练&#xff0c;主要是将模型和数据迁移到 GPU 设备上。 在 PyTorch 里&#xff0c;.to(device) 方法的作用是把张量或者模型转移到指定的计算设备&#xff08;像 CPU 或者 GPU&#xff09;上。 对于张量&#xff08;Tensor&#xff09;&#xff1…

C++笔试题(金山科技新未来训练营):

题目分布&#xff1a; 17道单选&#xff08;每题3分&#xff09;3道多选题&#xff08;全对3分&#xff0c;部分对1分&#xff09;2道编程题&#xff08;每一道20分&#xff09;。 不过题目太多&#xff0c;就记得一部分了&#xff1a; 单选题&#xff1a; static变量的初始…

Spark(29)基础自定义分区器

&#xff08;一&#xff09;什么是分区 【复习提问&#xff1a;RDD的定义是什么&#xff1f;】 在 Spark 里&#xff0c;弹性分布式数据集&#xff08;RDD&#xff09;是核心的数据抽象&#xff0c;它是不可变的、可分区的、里面的元素并行计算的集合。 在 Spark 中&#xf…

python打卡训练营打卡记录day35

知识点回顾&#xff1a; 三种不同的模型可视化方法&#xff1a;推荐torchinfo打印summary权重分布可视化进度条功能&#xff1a;手动和自动写法&#xff0c;让打印结果更加美观推理的写法&#xff1a;评估模式 作业&#xff1a;调整模型定义时的超参数&#xff0c;对比下效果 1…

【MySQL】07.表内容的操作

1. insert 我们先创建一个表结构&#xff0c;这部分操作我们使用这张表完成我们的操作&#xff1a; mysql> create table student(-> id int primary key auto_increment,-> name varchar(20) not null,-> qq varchar(20) unique-> ); Query OK, 0 rows affec…

使用SQLite Expert个人版VACUUM功能修复数据库

使用SQLite Expert个人版VACUUM功能修复数据库 一、SQLite Expert工具简介 SQLite Expert 是一款功能强大的SQLite数据库管理工具&#xff0c;分为免费的个人版&#xff08;Personal Edition&#xff09;和收费的专业版&#xff08;Professional Edition&#xff09;。其核心功…

LM-BFF——语言模型微调新范式

gpt3&#xff08;GPT3——少样本示例推动下的通用语言模型雏形)结合提示词和少样本示例后&#xff0c;展示出了强大性能。但大语言模型的训练门槛太高&#xff0c;普通研究人员无力&#xff0c;LM-BFF(Making Pre-trained Language Models Better Few-shot Learners)的作者受gp…

遥感解译项目Land-Cover-Semantic-Segmentation-PyTorch之二训练模型

遥感解译项目Land-Cover-Semantic-Segmentation-PyTorch之一推理模型 背景 上一篇文章了解了这个项目的环境安装和模型推理,这篇文章介绍下如何训练这个模型,添加类别 下载数据集 在之前的一篇文章中,也有用到这个数据集 QGIS之三十六Deepness插件实现AI遥感训练模型 数…

【NLP 71、常见大模型的模型结构对比】

三到五年的深耕&#xff0c;足够让你成为一个你想成为的人 —— 25.5.8 模型名称位置编码Transformer结构多头机制Feed Forward层设计归一化层设计线性层偏置项激活函数训练数据规模及来源参数量应用场景侧重GPT-5 (OpenAI)RoPE动态相对编码混合专家架构&#xff08;MoE&#…

[250521] DBeaver 25.0.5 发布:SQL 编辑器、导航器全面升级,新增 Kingbase 支持!

目录 DBeaver 25.0.5 发布&#xff1a;SQL 编辑器、导航器全面升级&#xff0c;新增 Kingbase 支持&#xff01; DBeaver 25.0.5 发布&#xff1a;SQL 编辑器、导航器全面升级&#xff0c;新增 Kingbase 支持&#xff01; 近日&#xff0c;DBeaver 发布了 25.0.5 版本&#xf…

服务器硬盘虚拟卷的处理

目前的情况是需要删除逻辑卷&#xff0c;然后再重新来弄一遍。 数据已经备份好了&#xff0c;所以不用担心数据会丢失。 查看服务器的具体情况 使用 vgdisplay 操作查看服务器的卷组情况&#xff1a; --- Volume group ---VG Name vg01System IDFormat …