找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2972|回复: 2
打印 上一主题 下一主题
收起左侧

基于单片机+PAJ7620+舵机的手势识别小风扇源程序

  [复制链接]
跳转到指定楼层
楼主
利用加湿器配合风扇,特别凉快!
制作出来的实物图如下:


单片机源程序如下:
  1. //AT89C52
  2. #include <reg52.h>
  3. #include "PAJ7620.h"
  4. #include "i2c.h"

  5. sbit shui = P1^3;//空气加湿器
  6. sbit key1 = P1^4;//通讯接口1
  7. sbit key2 = P1^5;//通讯接口2
  8. sbit feng = P1^6;   //风扇正转
  9. sbit fanfeng = P1^7;//风扇反转

  10. unsigned char PAJ7620_Value=0;  //从PAJ7620获取的数据
  11. unsigned char result_Code; //返回结果
  12. void Get_7620_Value(void);
  13. void work(void);
  14. void delay_ms(unsigned int n_ms);


  15. void main (void)
  16. {
  17. shui=1;//加湿关
  18. feng=0;//风扇开
  19. key1=0;key2=0;//舵机关
  20. PAJ7620_init();//7620初始化
  21. while(1)
  22. {
  23.   Get_7620_Value(); //获取7620数据
  24. }
  25. }

  26.        
  27. //获取7620数据
  28. void Get_7620_Value(void)
  29. {
  30.    PAJ7620_Value=Read_One_Reg(PAJ7620_wAdd,PAJ7620_ADDR_GES_PS_DET_FLAG_0);
  31. if(PAJ7620_Value!=0xFF)
  32. {
  33. switch (PAJ7620_Value)
  34. {
  35.         case RIGHT://左
  36.                         result_Code=0x01;
  37.                         delay_ms(PAJ7620_QUIT_TIME);
  38.                         break;
  39.         case LEFT://右
  40.                  result_Code=0x02;
  41.                  delay_ms(PAJ7620_QUIT_TIME);
  42.                         break;
  43. case UP://上
  44.                  result_Code=0x04;
  45.           
  46.                  delay_ms(PAJ7620_QUIT_TIME);
  47.                  break;
  48.   case DOWN://下
  49.                  result_Code=0x08;               
  50.                
  51.                  delay_ms(PAJ7620_QUIT_TIME);
  52.                  break;
  53. case FORWARD://向前
  54.                  result_Code=0x10;
  55.                  
  56.                  delay_ms(PAJ7620_QUIT_TIME);
  57.                  break;
  58. case BACKWARD://向后
  59.                  result_Code=0x20;
  60.      
  61.                  delay_ms(PAJ7620_QUIT_TIME);
  62.                  break;
  63. case CLOCKWISE://顺时针
  64.                  result_Code=0x40;
  65.                  delay_ms(PAJ7620_QUIT_TIME);
  66.                  break;
  67. case UNCLOCKWISE:
  68.                  result_Code=0x80;//逆时针
  69.                  delay_ms(PAJ7620_QUIT_TIME);
  70.                  break;

  71. default:
  72.                  delay_ms(PAJ7620_REACTION_TIME);  //延时
  73.                  PAJ7620_Value=Read_One_Reg(PAJ7620_wAdd,PAJ7620_ADDR_GES_PS_DET_FLAG_1);
  74.                  if (PAJ7620_Value==WAVE)//左右晃
  75.                         {
  76.                  result_Code=0x55;
  77.                  } else
  78.                  result_Code=0;
  79.                  delay_ms(PAJ7620_QUIT_TIME);
  80.                  break;
  81.           }
  82.   work();
  83.   }
  84. }

  85. void work(void)
  86. {
  87.         static unsigned char mode=1;
  88.         switch(result_Code)
  89.         {
  90.                 case 0x01: shui=0; break;//上
  91.                 case 0x02: shui=1; break;//下
  92.                 case 0x04: mode--; if(mode<1)mode=1;break;//左
  93.                 case 0x08: mode++; if(mode>4)mode=4;break;//右
  94.                 case 0x10: feng=0;fanfeng=0;break;//接近
  95.                 case 0x20: feng=0;fanfeng=1; break;//远离
  96.                 case 0x40: feng=0;fanfeng=1;break;//顺时针
  97.                 case 0x80: feng=1;fanfeng=0;break;//逆时针
  98.           case 0x55: break;//摇摆
  99.                 default: break;
  100.         }
  101.                 switch(mode)
  102.         {               
  103.                 case 1: key1=0;key2=0;  break;
  104.                 case 2: key1=0;key2=1;  break;
  105.                 case 3: key1=1;key2=0;  break;
  106.                 case 4: key1=1;key2=1;  break;
  107.                 default:key1=0;key2=0; break;
  108.         }
  109. }
  110. //延时函数
  111. void delay_ms(unsigned int n_ms)
  112. {
  113. int j,k;
  114. for(j=0;j<n_ms;j++)
  115.   for(k=0;k<1002;k++);
  116. }
复制代码

所有资料51hei提供下载:
程序: 手势风扇设计.7z (1.18 MB, 下载次数: 127)
视频: 成品预览视频.7z (14.6 MB, 下载次数: 45)

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏7 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:925693 发表于 2021-5-23 23:37 来自手机 | 只看该作者
舵机是用哪款呀
回复

使用道具 举报

板凳
ID:873089 发表于 2021-11-26 19:21 | 只看该作者

SG90  180度的
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表