极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 34960|回复: 22

DIY一个类似倒车雷达的无线距离传感装置

[复制链接]
发表于 2012-8-23 18:33:37 | 显示全部楼层 |阅读模式
花了几十分钟DIY一个无线距离传感装置 用到两个arduino  两个NRF24L01模块 一个超声波测距仪 一个1602LCD显示器
建议大家使用0023以及之前的版本编译程序 否则库文件无法使用 【【谢谢合作--。、
先上代码
发送端部分   接线方式:
无线部分:  CE:8  CSN:7  SCK:13  MOSI:11  MISO:12 这些都是接arduino上的数字端口
超声波测距仪: TRIG :2     ECHO:3
代码:
  1. #include "SPI.h"      //24L01库文件
  2. #include "Mirf.h"
  3. #include "nRF24L01.h"
  4. #include "MirfHardwareSpiDriver.h"
  5. const int TrigPin = 2;
  6. const int EchoPin = 3;
  7. float cm;
  8. int aaa=0;
  9. int statuex,statuey;

  10. void setup(){
  11.   
  12.   Mirf.spi = &MirfHardwareSpi;  //加载24L01  SPI
  13.   Mirf.init();                                 //开始
  14.    Mirf.setTADDR((byte *)"serv1");//发送到"接收地址"
  15.   Mirf.payload = sizeof(float);           
  16.    Mirf.config();

  17. pinMode(TrigPin, OUTPUT);
  18. pinMode(EchoPin, INPUT);
  19. }
  20. void loop(){
  21.   
  22.   dist();
  23.    Mirf.send((byte *)&cm);  
  24.    
  25.    while(Mirf.isSending())
  26.      { }
  27.    delay(100);
  28. }  

  29. void dist()
  30. {
  31.   digitalWrite(TrigPin, LOW); //低高低电平发一个短时间脉冲去TrigPin
  32. delayMicroseconds(2);
  33. digitalWrite(TrigPin, HIGH);
  34. delayMicroseconds(10);
  35. digitalWrite(TrigPin, LOW);

  36. cm = pulseIn(EchoPin, HIGH) / 58.0; //将回波时间换算成cm
  37. cm = (int(cm * 100.0)) / 100.0; //保留两位小数


  38. }
复制代码
接受部分的接线方式:
NRF模块接线方式同上
lcd屏幕接线方式:RS:2 RW:3 EN:4 D4:5    D5:6  D6:9   D7:10  程序中可以修改 你们自由动手啊
代码:
  1. #include "SPI.h"                              //24L01库文件
  2. #include "Mirf.h"
  3. #include "nRF24L01.h"
  4. #include "MirfHardwareSpiDriver.h"
  5. #include <LiquidCrystal.h>
  6. LiquidCrystal lcd(2,3,4,5,6,9,10);
  7. float data;

  8. void setup(){   

  9.   lcd.begin(16,2);
  10.   lcd.clear();
  11.   Mirf.spi = &MirfHardwareSpi;          //加载24L01  SPI
  12.   Mirf.init();
  13.   Mirf.setRADDR((byte *)"serv1"); //接收地址" "
  14.   Mirf.payload = sizeof(float);            //数据类型(整数)
  15.       Mirf.config();
  16.    
  17. }

  18. void loop(){

  19.   if(Mirf.dataReady())
  20.   {                          //如果接收到数据则执行
  21.      Mirf.getData((byte *)&data);   //接收数据
  22.     lcd.setCursor(0,0);
  23.     lcd.print("Distance:");
  24.     lcd.print( data);
  25.     lcd.print("CM");
  26.      Mirf.rxFifoEmpty();   //清理24L01援存
  27.      delay(90);
  28.     lcd.clear();
  29.     }
  30.    
  31. }

  32.   
复制代码
弄好之后  将发送端装到汽车的外部 比如车头底部  或者车尾 接收端放在车子的驾驶座旁  有的人在转弯的时候遇到了障碍物感觉不到距离 (比如我老妈)所以可以用这个有个判断  代码什么的可能有需要修改 你们自由动手 具体的就不多说了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册

x
回复

使用道具 举报

发表于 2012-8-23 19:06:13 | 显示全部楼层
顶一下~..............
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-8-23 19:56:13 | 显示全部楼层
pww999 发表于 2012-8-23 19:06
顶一下~..............

谢啦~~               ,,,
回复 支持 反对

使用道具 举报

发表于 2012-8-24 08:28:12 | 显示全部楼层
很高级啊.....
回复 支持 反对

使用道具 举报

发表于 2012-8-24 09:00:37 | 显示全部楼层
大概意思是这样的吧?用超声波传感器放在车体外面做距离探测,然后把探测得到的距离通过无线模块发回到接收端显示在LCD1602上,呵呵!不错,顶一个!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-8-24 10:59:21 | 显示全部楼层
Randy 发表于 2012-8-24 09:00
大概意思是这样的吧?用超声波传感器放在车体外面做距离探测,然后把探测得到的距离通过无线模块发回到接收 ...

对的  试用ok
回复 支持 反对

使用道具 举报

发表于 2012-8-24 12:15:32 | 显示全部楼层
L.anrist 发表于 2012-8-24 10:59
对的  试用ok

  恭喜咯,继续努力!
回复 支持 反对

使用道具 举报

发表于 2012-11-3 21:27:56 | 显示全部楼层
比较郁闷呀,我实验了无数次,还是接收不到,两个板子不能有联系。IDE是用的0023版本,编译也通过,也能运行。程序就是拷贝帖子上的,一字不拉,就加个串口监测。然后接收监测始终是0.发射端超声波串口监测工作正常。 然后一直担心是不是线接错了,上面也没个指示灯。也不知道NRF24L01模块是好是坏。
回复 支持 反对

使用道具 举报

发表于 2012-11-4 22:11:42 | 显示全部楼层
好创意,到时试试NRF24L01模块
回复 支持 反对

使用道具 举报

发表于 2012-11-9 10:13:04 | 显示全部楼层
不错不错,顶一个,拿来学习学习
回复 支持 反对

使用道具 举报

发表于 2013-2-3 15:47:22 | 显示全部楼层
不错不错,顶一个
回复 支持 反对

使用道具 举报

发表于 2013-2-3 15:52:38 | 显示全部楼层
这个库文件是IDE里本来就有呢,还是在那个压缩包里啊
回复 支持 反对

使用道具 举报

 楼主| 发表于 2013-2-3 20:36:16 | 显示全部楼层
普通人 发表于 2013-2-3 15:52
这个库文件是IDE里本来就有呢,还是在那个压缩包里啊

另外下载的
回复 支持 反对

使用道具 举报

发表于 2013-2-25 19:07:18 | 显示全部楼层
支持一下,值得支持
回复 支持 反对

使用道具 举报

发表于 2013-8-1 14:07:18 | 显示全部楼层
请问楼主 #include "SPI.h" 和 #include <SPI.h>有什么区别?
我看有的例子里是#include <SPI.h> 这句啊,2中通用吗?
回复 支持 反对

使用道具 举报

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

本版积分规则 需要先绑定手机号

Archiver|联系我们|极客工坊

GMT+8, 2024-4-25 06:36 , Processed in 0.049406 second(s), 28 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

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