|
花了几十分钟DIY一个无线距离传感装置 用到两个arduino 两个NRF24L01模块 一个超声波测距仪 一个1602LCD显示器
建议大家使用0023以及之前的版本编译程序 否则库文件无法使用 【【谢谢合作--。、
先上代码
发送端部分 接线方式:
无线部分: CE:8 CSN:7 SCK:13 MOSI:11 MISO: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; //加载24L01 SPI
- 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:6 D6: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; //加载24L01 SPI
- 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();
- }
-
- }
-
复制代码 弄好之后 将发送端装到汽车的外部 比如车头底部 或者车尾 接收端放在车子的驾驶座旁 有的人在转弯的时候遇到了障碍物感觉不到距离 (比如我老妈)所以可以用这个有个判断 代码什么的可能有需要修改 你们自由动手 具体的就不多说了
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?注册
x
|