基于51单片机的红外智能垃圾桶原理图程序设计

发布时间:2025-01-04 22:46

智能垃圾桶能识别并压缩垃圾,便于清理和分类处理。 #生活技巧# #家居布置建议# #智能家居推荐#

Yoki Yao 已于 2024-02-28 16:20:27 修改

于 2021-02-22 12:30:01 首次发布

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

链接:https://pan.baidu.com/s/1mK_tai2IM6hgg3_pV0ZhBQ
提取码:qwf2

硬件设计

系统功能分析
本设计由STC89C52单片机电路+红外避障传感器+HX711称重电路+蜂鸣器报警电路+继电器电路+电源电路组成。
1、避障红外传感器1检测到障碍物,继电器闭合,避障红外传感器检测到障碍物1没有检测到障碍物,继电器断开。
2、如果称重传感器检测到重量超过一定值,或者设备启动时间超过30秒,蜂鸣器鸣叫报警。

在这里插入图片描述
原理图:
在这里插入图片描述

程序设计

在这里插入图片描述

#include<reg52.h> //包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义 #include<stdio.h> #include "delay.h" #include<intrins.h> #include "hx711.h" sbit redCheck=P1^2; //引脚定义 sbit relay = P1^4; sbit buzzer = P1^3; char dis0[16]; // 显示暂存 方便调试 unsigned long time_20ms=0;//系统定时计数 unsigned char readFlag=0; //定时读取标志 long Weight_mp=0;//读取重量值 long Weight_Shiwu=0;//实物重量 unsigned long Weight_Maopi=0; //毛坯重量 unsigned char time_ok =0; //定时时间到 void Init_Timer0(void);//函数声明 void SendStr(unsigned char *s,unsigned char length); void UART_Init(void); void SendByte(unsigned char dat); void main (void) {Init_Timer0(); //定时器0初始化UART_Init();DelayMs(200); //延时有助于稳定Weight_Maopi = HX711_Read();//读取去皮重量DelayMs(10);Weight_Maopi = HX711_Read();Weight_mp = (unsigned int)((float)Weight_Maopi/430); //重量转化while (1) //主循环{if(readFlag==1){readFlag=0;Weight_Shiwu = HX711_Read();//读取实物重量Weight_Shiwu = Weight_Shiwu - Weight_Maopi;//获取净重if(Weight_Shiwu > 10){Weight_Shiwu = (unsigned int)((float)Weight_Shiwu/430);//g计算实物的实际重量}else{Weight_Shiwu = 0;}sprintf(dis0,"ShiWu:%5dg",(int)Weight_Shiwu);//打印SendStr(dis0,13);//串口发送 调试用SendStr("\n",1);if(Weight_Shiwu>1000)//如果重量超过1000g{buzzer =0; //蜂鸣器报警}else{if(time_ok==0)//时间还没有到{buzzer =1;}//关闭蜂鸣器报警}if(redCheck == 0)//检测到有障碍{relay =0;} //打开继电器else{relay =1;}//关断继电器}} } void Init_Timer0(void) {TMOD |= 0x01; //使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响TH0=(65536-20000)/256; //重新赋值 20msTL0=(65536-20000)%256;EA=1; //总中断打开ET0=1; //定时器中断打开TR0=1; //定时器开关打开 } void Timer0_isr(void) interrupt 1 {TH0=(65536-20000)/256; //重新赋值 20msTL0=(65536-20000)%256;time_20ms++;if(time_20ms%10==0) //定时200ms{readFlag=1;if(time_20ms>=1500) //定时3s{time_ok =1; //时间到进行蜂鸣器报警buzzer =0;}} } void UART_Init(void) { SCON = 0x50; // SCON: 模式 1, 8-bit UART, 使能接收 TMOD |= 0x20; // TMOD: timer 1, mode 2, 8-bit 重装 TH1 = 0xFD; // TH1: 重装值 9600 波特率 晶振 11.0592MHzTL1 = TH1; TR1 = 1; // TR1: timer 1 打开 EA = 1; //打开总中断 ES = 1; //打开串口中断 } void SendByte(unsigned char dat)//串口发送单字节数据 {unsigned char time_out;time_out=0x00;SBUF = dat; //将数据放入SBUF中while((!TI)&&(time_out<100)) //检测是否发送出去{time_out++;DelayUs2x(10);}//未发送出去 进行短暂延时TI = 0;//清除ti标志 } void SendStr(unsigned char *s,unsigned char length) //发送定长度字符串 {unsigned char NUM;NUM=0x00;while(NUM<length)//发送长度对比{SendByte(*s); //放松单字节数据s++; //指针++NUM++; //下一个++

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128

.

文件仅供参考:

.

网址:基于51单片机的红外智能垃圾桶原理图程序设计 https://www.yuejiaxmz.com/news/view/644814

相关内容

基于单片机的智能垃圾桶设计(51基础版)
32、基于51单片机红外智能垃圾桶系统设计(程序+原理图+仿真+元件清单+开题报告+参考论文等)
【基于51单片机智能垃圾桶 垃圾分类 垃圾识别系统自动控制 DIY 舵机/继电器 系统设计(实物+程序+原理图+其他资料)】
基于单片机的语音识别智能垃圾桶垃圾分类的设计与实现
毕设分享 单片机智能垃圾桶设计
基于51单片机的教室智能照明控制系统(程序+原理图+PCB+Proteus)
基于STM32的智能语音垃圾桶
基于51单片机的智能小车设计绪论
【32项目】基于stm32f103c8t6的智能垃圾桶设计(含完整代码)
基于51单片机的智能鞋柜 智能鞋盒 换气除湿 蓝牙传输控制 红外感应 消毒 控制系统 实物+源程序+原理图+仿真+其它资料

随便看看