L.anrist 发表于 2012-8-23 18:33:37

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

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

void setup(){

Mirf.spi = &MirfHardwareSpi;//加载24L01SPI
Mirf.init();                                 //开始
   Mirf.setTADDR((byte *)"serv1");//发送到"接收地址"
Mirf.payload = sizeof(float);         
   Mirf.config();

pinMode(TrigPin, OUTPUT);
pinMode(EchoPin, INPUT);
}
void loop(){

dist();
   Mirf.send((byte *)&cm);
   
   while(Mirf.isSending())
   { }
   delay(100);
}

void dist()
{
digitalWrite(TrigPin, LOW); //低高低电平发一个短时间脉冲去TrigPin
delayMicroseconds(2);
digitalWrite(TrigPin, HIGH);
delayMicroseconds(10);
digitalWrite(TrigPin, LOW);

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


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

void setup(){   

lcd.begin(16,2);
lcd.clear();
Mirf.spi = &MirfHardwareSpi;          //加载24L01SPI
Mirf.init();
Mirf.setRADDR((byte *)"serv1"); //接收地址" "
Mirf.payload = sizeof(float);            //数据类型(整数)
      Mirf.config();
   
}

void loop(){

if(Mirf.dataReady())
{                        //如果接收到数据则执行
   Mirf.getData((byte *)&data);   //接收数据
    lcd.setCursor(0,0);
    lcd.print("Distance:");
    lcd.print( data);
    lcd.print("CM");
   Mirf.rxFifoEmpty();   //清理24L01援存
   delay(90);
    lcd.clear();
    }
   
}

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

pww999 发表于 2012-8-23 19:06:13

顶一下~..............

L.anrist 发表于 2012-8-23 19:56:13

pww999 发表于 2012-8-23 19:06 static/image/common/back.gif
顶一下~..............

谢啦~~               ,,,

vigiles 发表于 2012-8-24 08:28:12

很高级啊.....

Randy 发表于 2012-8-24 09:00:37

大概意思是这样的吧?用超声波传感器放在车体外面做距离探测,然后把探测得到的距离通过无线模块发回到接收端显示在LCD1602上,呵呵!不错,顶一个!

L.anrist 发表于 2012-8-24 10:59:21

Randy 发表于 2012-8-24 09:00 static/image/common/back.gif
大概意思是这样的吧?用超声波传感器放在车体外面做距离探测,然后把探测得到的距离通过无线模块发回到接收 ...

对的试用ok

Randy 发表于 2012-8-24 12:15:32

L.anrist 发表于 2012-8-24 10:59 static/image/common/back.gif
对的试用ok

:lol恭喜咯,继续努力!

dgw123 发表于 2012-11-3 21:27:56

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

lenovoyxl 发表于 2012-11-4 22:11:42

好创意,到时试试NRF24L01模块

xuejun 发表于 2012-11-9 10:13:04

不错不错,顶一个,拿来学习学习:lol

普通人 发表于 2013-2-3 15:47:22

不错不错,顶一个

普通人 发表于 2013-2-3 15:52:38

这个库文件是IDE里本来就有呢,还是在那个压缩包里啊
:)

L.anrist 发表于 2013-2-3 20:36:16

普通人 发表于 2013-2-3 15:52 static/image/common/back.gif
这个库文件是IDE里本来就有呢,还是在那个压缩包里啊

另外下载的

florgx 发表于 2013-2-25 19:07:18

支持一下,:lol值得支持

何木又 发表于 2013-8-1 14:07:18

请问楼主 #include "SPI.h" 和 #include <SPI.h>有什么区别?
我看有的例子里是#include <SPI.h> 这句啊,2中通用吗?
页: [1] 2
查看完整版本: DIY一个类似倒车雷达的无线距离传感装置