已解决 关于nrf24L01摇控问题..
本帖最后由 pww999 于 2012-6-12 19:36 编辑求解咯~
没法连接显示模拟数据....
本次以一个电位器接A4 脚模拟数据发送,,,,
接收用LCD显示模拟数据 ....
打算用6个通道 做个摇控小车
根椐官网连接的引脚及库:
http://arduino.cc/playground/InterfacingWithHardware/Nrf24L01
------------发送端代码--------------------
#include "SPI.h"
#include "Mirf.h"
#include "nRF24L01.h"
#include "MirfHardwareSpiDriver.h"
void setup(){
Mirf.spi = &MirfHardwareSpi;
Mirf.init();
Mirf.setRADDR((byte *)"clie1");
Mirf.payload = 32;
Mirf.config();
}
void loop()
{
int n = analogRead(A4);
Mirf.setTADDR((byte *)"serv1");
Mirf.send((byte *)n);
delay(100);
}
------------接收端代码--------------------
#include "Wire.h"
#include <LiquidCrystal_I2C.h>
#include "MirfHardwareSpiDriver.h"
LiquidCrystal_I2C lcd(0x27,16,2);
#include "SPI.h"
#include "Mirf.h"
#include "nRF24L01.h"
#include "MirfHardwareSpiDriver.h"
int n=0;
void setup(){
lcd.init();
lcd.backlight();
delay(20);
Mirf.spi = &MirfHardwareSpi;
Mirf.init();
Mirf.setRADDR((byte *)"serv1");
Mirf.payload = 32;
Mirf.config();
}
void loop(){
if(Mirf.dataReady()){
byte n;
Mirf.getData(n);
lcd.clear(); //清屏
lcd.setCursor(0, 0);
lcd.print(n);
delay(50);
}
}
代码只是一部分,你电路有没连错? 用官网的测试包可以,但自己修改了一下代码,想发送接收 PPM 信号调试 已经OK
迟点上代码~~~ lz的代码我试了下,发现有下面几个问题:
1. TADDR和RADDR地址不匹配,应设为同一的"serv1";
2. 接收端代码不能delay,否则永远不会和发送端信号配对,也就接不到信号;
3. 发送的n原为一整数,然后以byte型发送,再以byte型接收,最后再转回整型,倒数第二行lcd.print(n); 中的n后不能再加中括号了。但我用整型发送没有成功,是乱码,后来把整数转为字符发送成功了。
页:
[1]