感应开关垃圾桶小项目的完成及问题解决——基于STC89C52RC单片机

分为五个步骤,如下:

01代码_舵机

注意:舵机的使用不能自己用手将其旋转,可能导致舵机的损坏(本人因此弄坏一个,或许是使用的舵机太Low)

组装好后代码能够正常运行但开盖出现舵机“抽搐”的情况:

`voi`d openDusbin()`
`{``char n;``jd = 3; //90度 1.5ms高电平`
`//舵机开盖``cnt = 0;``beep = 0;``for(n=0; n<2; n++)``Delay150ms();``beep = 1;``Delay2000ms();`}`

在cnt重新变成0的时候“抽搐”

解决办法:

需要做一个标志位来判断,做一个变量保存上一次角度度数 **char jd_bak;**关盖同样添加jd_back=jd;

`void openDusbin()`
`{``char n;``jd = 3; //90度 1.5ms高电平`
`//舵机开盖``if(jd_bak != jd) {//如果上一次角度不等于本次角度则执行,否则不执行``cnt = 0;``beep = 0;``for(n=0; n<2; n++)``Delay150ms();``beep = 1;``Delay2000ms();``}``jd_bak = jd;`
`}`

02代码_测距开关盖-超声波测距、添加按键开盖、震动传感器


`sbit SW1 = P2^1;`
`sbit Trig = P1^5;`
`sbit Echo = P1^6;`
`sbit vibrate = P3^2;`
`void main()`
`{``double dis;``Time0Init();``Time1Init();``EX0_Init();``//舵机的初始位置``initSG90_0();``while(1) {``//超声波测距``dis = get_distance();``if(dis < 10 || SW1 ==0 || mark_vibrate ==1) {//如果小于10cm,或者SW1按键被按下``//开盖,灯状态,D5亮``openStatusLight();``//舵机关盖``openDusbin();``mark_vibrate = 0;``} else {``//灌溉,灯状态,D5灭``closeStatusLight();``closeDusbin();``}``}`
`}`

振动传感器不灵敏:采用的软件延时,相当于CPU数数。采用查询的方式,电平的转变有可能太急促,不稳定,倒置CPU数数的时候检测不到。振动传感器的优化:添加外部中断0,一旦发生震动,外部中断立马把标志位做好,CPU再查。

`void EX0_Init()`
`{``//打开外部中断``EX0 = 1;``//低电平触发``IT0 = 0;`
`}`

中断处理函数

`char mark_vibrate = 0;``void Ex0_Handler() interrupt 0`
`{``mark_vibrate = 1;`
`}`

05代码_测距开关盖-添加蜂鸣器开盖

`sbit beep = P2^0;`
 `if`(jd_bak != jd) {``cnt = 0;``beep = 0;``for(n=0; n<2; n++)``Delay150ms();``beep = 1;``Delay2000ms();`}``for(n=0; n<2; n++)``Delay150ms();``beep = 1;``Delay2000ms();`}`

感应开关垃圾桶小项目的完成及问题解决——基于STC89C52RC单片机相关推荐

  1. 基于STC89C52RC单片机制作的红外循迹小车(4个传感器)

    单片机:基于STC89C52RC单片机制作的红外循迹小车(4个传感器) 个人感觉红外循迹小车和那些遥控小车的区别就是信号发射不同:遥控小车是通过遥控器发出信号执行相应的动作,而红外循迹是通过红外传感器 ...

  2. 基于STC89C52RC单片机的密码门锁

    基于STC89C52RC单片机的密码门锁 门锁介绍 门锁软硬件介绍 STC8989C52单片机 LCD1602显示屏 矩阵键盘 L298N电机驱动和电动推杆 门锁实物展示 门锁代码展示 参考文档 总结 ...

  3. 温度自动控制系统c语言,基于STC89C52RC单片机的大棚温湿度自动控制系统毕业论文+外文翻译及原文+C程序+proteus仿真文件+Altium Designer原理图...

    大棚温湿度自动控制系统设计 摘  要:本设计是基于STC89C52RC单片机的大棚温湿度自动控制系统,采用SHT10作为温湿度传感器,LCD1602液晶屏进行显示.SHT10使用类似于I2C总线的时序 ...

  4. 基于STC89c52rc单片机的红外循迹小车

    循迹小车 由于要准备明年的恩智浦飞思卡尔智能车比赛,飞思卡尔智能车用的是K60系列的单片机,以我目前的阶段来说还处于学习阶段,所以先试着用51单片机做一个智能循迹小车.学习一下小车硬件以及软件程序,这 ...

  5. 基于STC单片机的两轮平衡车设计

    给大家传福利了..后续继续共享基于Arduino/安卓Android/树莓派raspberry等平台的两轮车设计 这是我前年暑假做的一个小项目,今年拿出来整理了下当毕设了(当然毕设里添加了许多其他元素 ...

  6. 基于51单片机的wifi智能led灯的毕业设计

    基于51单片机的wifi智能led灯的毕业设计 摘要 系统基于STC89C52RC单片机设计,拥有自动与手动两种模式,自动模式下可以过热释红外传感器检测是否有人,采用光敏电阻构成的电路检测环境光的强度 ...

  7. 基于STC89C52RC芯片设计的一款酒店服务机器人(包含货物检测、二维码识别功能)

    目录 一:硬件设备 1:主控 2:扫码模块 3:货物检测 4:循迹模块 5:电机驱动模块 6:电源 二:软件代码 三:循迹环PID 四:成品视频 一:硬件设备 1:主控 所选取主控芯片为STC89C5 ...

  8. 基于52单片机的简易感应开关垃圾桶

    一.基于52单片机的简易开关垃圾桶,感应,震动,按键开盖 1.使用超声波模块,设置10cm感应范围,进入范围开盖 2.使用震动传感器,检测到震动开盖 3.使用蜂鸣器,开盖同时伴随滴滴声 4.实验视频- ...

  9. 基于C51单片机开发的智能垃圾桶项目

    项目效果:当垃圾桶第一次感受到震动.垃圾靠近垃圾桶.或者按下接在单片机的外部按钮时,舵机就会跟连在一起的垃圾桶盖一起旋转九十度,并伴随滴的一声表示垃圾桶盖一打开,垃圾桶盖打开两秒后自动关盖,如果垃圾桶 ...

最新文章

  1. mycat mysql端口多少_mycat 9066管理端口 常用命令
  2. dbms_排名前50位的DBMS面试问答
  3. WPF案例 (六) 动态切换UI布局
  4. 【英语学习】【WOTD】borne 释义/词源/示例
  5. python gc清理无用变量与内存
  6. Parameter ‘username‘ not found. Available parameters are [arg1, arg0, param1, param2] 绑定参数异常
  7. Maven学习总结(44)——Maven构建时生命周期及其常用集成命令详解
  8. c语言编写面条排序算法,腾讯PCG事业部腾讯视频面经
  9. I2S协议及在verilog中实现
  10. autocad 二次开发 拆分图纸_2,手动创建CAD二次开发项目--AutoCAD二次开发(2020版)...
  11. T3及报税软件报表使用无线打印机打印凭证没反应
  12. 抖音视频选择封面android,抖音视频封面怎么选取?
  13. 科学计算机算方差与期望,期望、方差、协方差及相关系数的基本运算
  14. Androidstudio setting .DEX extension only for .CLASS files
  15. java-net-php-python-java宿舍管理系统计算机毕业设计程序
  16. 从Linux服务器下载文件夹到本地
  17. 2020年金融科技创新项目总结
  18. tkinter + wxpy 实现微信发送信息 接收消息 并保存聊天记录的功能(GUI)
  19. linux 查看用户名
  20. c语言socket通讯和进行进行大文件分片传输

热门文章

  1. 3类、5类、超5类线有什么不同
  2. Android电子牌外接USB读卡器读取内容模拟键盘事件
  3. vue项目兼容IE浏览器,判断IE11以下,则提示浏览器版本过低,更新浏览器页面
  4. 数据挖掘之用户价值分析
  5. 点积与叉乘的运算与物理意义
  6. 图情论文笔记 | 智慧图书馆下的阅读推广服务策略
  7. 计算机管理为什么没有端口,Win7设备管理器没有端口选项的三大原因及解决措施...
  8. 领导绝不会告诉你的,提拔干部的三大关键因素
  9. java Excel导入导出工具类 及使用demo
  10. [NFC]NDEF和RTD协议介绍