标题: NRF24L01无线防丢器制作 含视频讲解与单片机源码等资料 [打印本页]

作者: TT土豆    时间: 2018-3-21 16:33
标题: NRF24L01无线防丢器制作 含视频讲解与单片机源码等资料
之前制作的基于NRF24L01无线防丢器  超过一定距离蜂鸣器会发出提醒需要的元件有图片介绍

视频截图(防丢器电路原理图的讲解):



单片机接受源程序如下:
  1. #include "reg52.h"
  2. #include "nRF24L01.h"
  3. #include "def.h"

  4. #include "delay.h"                          //包含头文件

  5. uchar count_1,count_2,count_3,count,miao,fen,fen_1,fen_2,fen_3,flag_1,flag_2,flag_3;  //定义全局变量

  6. void Delay_1(unsigned int s)                //延时函数
  7. {
  8.         unsigned int i;
  9.         for(i=0; i<s; i++);
  10.         for(i=0; i<s; i++);
  11. }
  12. void delay(unsigned int z)                        //延时函数
  13. {
  14.         unsigned int x,y;
  15.         for(x=z;x>0;x--)
  16.                 for(y=110;y>0;y--);
  17. }

  18. void main(void)                                                 //主函数
  19. {
  20.         unsigned int flag,f=1000;                 //定义变量
  21.         unsigned char t ,flag_1;
  22.         unsigned char TxBuf[20]={0};         //缓冲区数据清零
  23.         unsigned char RxBuf[20]={0};       

  24.     init_io() ;                                                 //初始化
  25.         while(1)                                                 //进入循环
  26.         {
  27.                 TxBuf[0] = 0;
  28.                 TxBuf[1] = 1;                                 //发送数据01
  29.                
  30.                 SetRX_Mode();                                 //设置接收模式

  31.                 if(nRF24L01_RxPacket(RxBuf))                //如果接收缓冲区有数据
  32.                 {       
  33.                         nRF24L01_TxPacket(TxBuf);                //发送缓冲区数据
  34.                         if(        RxBuf[0]==0&&RxBuf[1]==1)        //如果接收的数据是01
  35.                         {
  36.                                 for(t=0;t<10;t++)                        //控制灯和震动工作闪烁
  37.                                 {
  38.                                         LED1=~LED1;
  39.                                         LED2=~LED2;                                //取反
  40.                                         delay(50);                                //延时
  41.                                 }
  42.                         }
  43.                         RxBuf[0]= 0;
  44.                         RxBuf[1] = 0x00;                                 //接收缓冲区数据清零
  45.                         flag=0;
  46.                         flag_1=0;                                                //变量清零
  47.                 }
  48.                 else                                                                //接收缓冲区无数据
  49.                 {
  50.                         flag++;                                                        //计时开始
  51.                         if(flag==200)                                        //计时到1秒(200*5ms)
  52.                         {
  53.                                 flag_1=1;                                        //变量置1
  54.                         }
  55.                         delay(5);                                                //5ms延时
  56.                 }
  57.                 if(flag_1)                                                        //如果超时没有接收数据,就开启报警
  58.                 for(t=0;t<10;t++)                                        //for循环启动报警
  59.                 {
  60.                         LED2=~LED2;                                                //闪烁报警
  61.                         delay(50);                                                //延时
  62.                        
  63.                         if(t==9)                                                //闪烁一个周期
  64.                         {
  65.                                 flag_1=0;                                        //变量清零,返回后再次判断是否有信号,如无信号,继续报警
  66.                                 flag=0;
  67.                         }
  68.                 }
  69.         }
  70. }
复制代码

全部资料51hei下载地址:
3-视频讲解.zip (6.38 MB, 下载次数: 257)
1-源程序.zip (115.2 KB, 下载次数: 262)
nrf24l01介绍及例程.pdf (171.02 KB, 下载次数: 149)
nRF24L01芯片资料英文.pdf (461.93 KB, 下载次数: 71)
NRF24L01功能使用文档.pdf (650.05 KB, 下载次数: 124)



作者: zhangyusong    时间: 2018-8-2 02:59
谢谢分享
作者: xsj1877578806    时间: 2018-8-8 06:49
好资料,谢谢楼主分享
作者: kingsky    时间: 2018-10-7 19:20
谢谢分享
作者: 可乐可口    时间: 2018-10-9 21:51
谢谢分享
作者: eason丶    时间: 2019-1-1 19:15
楼主 ,发送源程序有吗
作者: ichery    时间: 2019-2-28 23:17
这个程序的距离大概能实现多远?15m可以吗?
作者: aminoacid    时间: 2019-3-31 18:41
谢谢分享,学习学习。。。。
作者: 1355780619    时间: 2019-3-31 18:41
楼主真棒
作者: 仰望蓝天e族    时间: 2019-4-20 22:23
怎样实现可以调节距离
作者: 仰望蓝天e族    时间: 2019-4-20 22:27
谢谢楼主分享              想问一下怎样实现在安全范围内提示距离可调
作者: azi197417    时间: 2019-4-22 22:18
这个值得学习
作者: zyt心有所寄    时间: 2019-6-2 13:24
感谢分享
作者: 枫飘过的地方    时间: 2019-12-6 15:01
谢谢分享

作者: tieq1952    时间: 2019-12-7 07:10
谢谢分享!!!
作者: 吃米饭长胖怪谁    时间: 2020-3-21 13:07
有PCB的文件吗
作者: rayin    时间: 2020-11-15 16:27
不错,值得学习。51hei有你更精彩!!
作者: AWSL。。    时间: 2021-11-12 22:44
为啥我的显示C(7): error C129: missing ';' before 'count_1'
作者: heicad    时间: 2021-11-12 22:56
AWSL。。 发表于 2021-11-12 22:44
为啥我的显示C(7): error C129: missing ';' before 'count_1'

用Keil5编译 2个程序都是 0个错误 3个警告(可以无视)
作者: AWSL。。    时间: 2021-11-12 22:59
keil4 不可以吗?
作者: AWSL。。    时间: 2021-11-12 23:03
heicad 发表于 2021-11-12 22:56
用Keil5编译 2个程序都是 0个错误 3个警告(可以无视)

必须用keil 5吗?

作者: AWSL。。    时间: 2021-11-13 14:38
#include "nRF24L01.h"
#include "def.h"
#include "delay.h"  
这三个的头文件该如何编写呢?

作者: xnm    时间: 2023-4-2 12:58
AWSL。。 发表于 2021-11-12 22:59
keil4 不可以吗?

keil4也没问题的,0errors  1warnings

作者: xnm    时间: 2023-4-10 19:08
这个接电以后,为什么两个模块一直报警啊,距离很近了
作者: 2813311967    时间: 2023-12-29 10:20
xnm 发表于 2023-4-10 19:08
这个接电以后,为什么两个模块一直报警啊,距离很近了

博主,你的问题解决了没有,我也遇到了一样的问题
作者: 418Jessica    时间: 2024-5-9 18:05
2813311967 发表于 2023-12-29 10:20
博主,你的问题解决了没有,我也遇到了一样的问题

解决了吗?我也遇见了主机一直报警




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1