极客工坊

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 15882|回复: 4

已解决 关于nrf24L01摇控问题..

[复制链接]
发表于 2012-6-10 00:47:59 | 显示全部楼层 |阅读模式
本帖最后由 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.payload];
Mirf.getData(n);
lcd.clear(); //清屏
     lcd.setCursor(0, 0);
    lcd.print(n[Mirf.payload]);  
    delay(50);
}     

}
回复

使用道具 举报

发表于 2012-6-10 18:25:59 | 显示全部楼层
代码只是一部分,你电路有没连错?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-6-10 19:58:43 | 显示全部楼层
用官网的测试包可以,但自己修改了一下代码,想发送接收 PPM 信号调试
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-6-12 19:36:02 | 显示全部楼层
已经OK
迟点上代码~~~
回复 支持 反对

使用道具 举报

发表于 2014-10-29 09:35:20 | 显示全部楼层
lz的代码我试了下,发现有下面几个问题:

1. TADDR和RADDR地址不匹配,应设为同一的"serv1";
2. 接收端代码不能delay,否则永远不会和发送端信号配对,也就接不到信号;
3. 发送的n原为一整数,然后以byte型发送,再以byte型接收,最后再转回整型,倒数第二行lcd.print(n[Mirf.payload]); 中的n后不能再加中括号了。但我用整型发送没有成功,是乱码,后来把整数转为字符发送成功了。
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|联系我们|极客工坊

GMT+8, 2026-6-8 09:40 , Processed in 0.037922 second(s), 20 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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