当前位置:   article > 正文

基于51单片机的智能垃圾桶

基于51单片机的智能垃圾桶

一、项目功能

通过51单片机控制垃圾桶,实现三种不同的开盖方式

1、通过超声波检测距离,当人体靠近垃圾桶时自动开盖,并且随着开盖声音和开盖指示灯亮起,远离自动关盖,关盖指示灯亮起。

2、用震动传感器检测垃圾桶附近是否发生震动,发生震动时自动开盖

3、通过单片机上按键对垃圾桶进行控制,当按键被按下实现开盖

二、主要模块组成

1.超声波模块:通过用51单片机定时器1进行处理。

2.舵机模块:通过用51单片机的定时器0中断进行处理。

3.震动模块:通过用51单片机的外部中断0低电平触发控制。

二、代码实现

1.超声波部分代码

  1. double get_distance()
  2. {
  3. double time;
  4. TH1 = 0; //重新给初值,方便下次超声波测距
  5. TL1 = 0;
  6. //1.给Trig引脚至少10us的高电平
  7. startHC();
  8. //2.当接受到高电平的那一下 开始计时
  9. while(Echo == 0);
  10. TR1= 1;
  11. //3.当高电平转低电平那一刻 结束计时
  12. while(Echo == 1);
  13. TR1= 0;
  14. //4.计算时间
  15. time = (TH1 * 256 + TL1)*1.085;//把定时器高低八位整合在一起计算时间
  16. return (time * 0.017); //5.函数返回距离
  17. }

2.舵机部分代码

  1. void initSg90_0() //舵机初始位置函数
  2. {
  3. jd=4;
  4. cnt=0;
  5. sg90_con=1;
  6. }
  7. void openDusbin() //开盖函数
  8. {
  9. char n;
  10. //舵机开盖
  11. jd=2;
  12. cnt=0;
  13. jd_bak=jd;
  14. BEEP=0;
  15. for(n=0;n<2;n++)
  16. Delay150ms();
  17. BEEP=1;
  18. Delay2000ms();
  19. }
  20. void closeDusbin() //关盖函数
  21. {
  22. //舵机关盖
  23. jd=4;
  24. if(jd_bak !=jd){ //消除垃圾桶一直抖动bug
  25. cnt=0;//角度变了cnt重新开始算
  26. Delay150ms();
  27. }
  28. jd_bak=jd;
  29. }
  1. void Time0Handler() interrupt 1
  2. {
  3. cnt++;
  4. TL0=0x33;
  5. TH0=0xFE;//重新赋初值
  6. if(cnt<jd){
  7. sg90_con=1;//模拟pwm脉冲
  8. }else{
  9. sg90_con=0;
  10. }
  11. if(cnt==40){//爆表40次,20ms
  12. cnt=0;
  13. sg90_con=1;
  14. }
  15. }

3.主函数代码

  1. void main()
  2. {
  3. double dis;
  4. Time1Init();//定时器1初始化
  5. Time0_init();//定时器0初始化
  6. EX0_init();//外部中断0初始化
  7. initSg90_0();//舵机的初始位置,关盖状态
  8. while(1){
  9. //超声波测距
  10. dis=get_distance();
  11. if(dis < 10||SW1==0||mark_vibrate==1){
  12. //D5亮
  13. openStatusLight();//开盖指示灯
  14. //舵机关盖
  15. openDusbin();//舵机开盖
  16. mark_vibrate=0;//震动传感器标志位
  17. }else{
  18. //D6亮
  19. closeStatusLight(); //关盖指示灯
  20. //舵机开盖
  21. closeDusbin();//舵机开盖
  22. }
  23. Delay150ms();
  24. }
  25. }

四、项目展示

 

详细项目视频

见主页 基于51单片机的智能垃圾桶视频!!!!!!

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/我家自动化/article/detail/456546
推荐阅读
相关标签
  

闽ICP备14008679号