基于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
繁體地址,請注明出處:http://hk.pswp.cn/news/906817.shtml
英文地址,請注明出處:http://en.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 …