Adatum
Янв
11
2016

Радиомодули nRF24L01+ и Joystik

j

Схема в Fritzing
transm
Передатчик

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>

const uint64_t pipe = 0xE8E8F0F0E1LL; 
RF24 radio(9, 10); 
int joystick[4];

void setup()
{
  Serial.begin(9600);
  radio.begin();
  radio.openWritingPipe(pipe);
  pinMode(2, INPUT);
  digitalWrite(2, HIGH);
 }


void loop()   
{
  joystick[0] = analogRead(A0);
  joystick[1] = analogRead(A1);
  joystick[2] = digitalRead(2);
  radio.write( joystick, sizeof(joystick) );
}

re
Приёмник

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
const uint64_t pipe = 0xE8E8F0F0E1LL;
RF24 radio(9, 10); 
int joystick[4];

void setup()   
{ 
  Serial.begin(9600);
  radio.begin();
  radio.openReadingPipe(1,pipe);
  radio.startListening();;
}


void loop()  
{
  if ( radio.available() ) { bool done = false;  while (!done)    {
   
      done = radio.read( joystick, sizeof(joystick) );   
      Serial.print(joystick[0]); Serial.print(" - "); 
      Serial.print(joystick[1]); Serial.print(" - "); 
      Serial.println(joystick[2]);  
  }
  }
  
}

99

Похожие статьи

Оставить комментарий

*

  • Есть: Два комплекта нано+2,4ГГц модули. Надо: один комплект привязать к 3 джойстикам, по радиоканалу передать данные о положении джойстиков на другой комплект, к другому комплекту привязать 2-х или 3-х осевой датчик положения в пространстве для контроля от опракидования (порекомендуете что-либо?), на 6-ти ШИМ-входах смодулировать от принятых данных импульсы, снабдить принимающую сторону логикой модулирования выходов, исключающую резкое изменение скважности (Возможно прописать на каждую пару выходов свой алгоритм изменения?) kucheend@gmail.com

  • Попробуй прописать переменную done в глобальную переменную, примерно так

    #include <SPI.h>
    #include <nRF24L01.h>
    #include <RF24.h>
     
    const uint64_t pipe = 0xE8E8F0F0E1LL; 
    RF24 radio(9, 10); 
    int joystick[4];
    bool done;
     
    void setup()
    {
      Serial.begin(9600);
      radio.begin();
      radio.openWritingPipe(pipe);
      pinMode(2, INPUT);
      digitalWrite(2, HIGH);
     }
     
     
    void loop()   
    {
      joystick[0] = analogRead(A0);
      joystick[1] = analogRead(A1);
      joystick[2] = digitalRead(2);
      radio.write( joystick, sizeof(joystick) );
    }
    
  • ругается на 21 строку приемника — void value not ignored as it ought to be