oregsas Creative Commons License 2024.12.21 0 0 4896

Ebben segítsetek !  nrf24 rádiós jelátvitelben.

Ez évekig működött, csak elfelejtettem a programot, többféle hőfok adatott gyűjtöttem , kijelzés SD kártyára mentés stb .

A vevő programja 200 sor , csak a vázat küldöm.

 

#include <SPI.h>
#include <nRF24L01.h>
#include <RF24.h>
                                                          
  int potiPin = A0;
  int adattomb [ ] = {1,2,3,4};  
  int adat1 ;
  int adat2 ;
  int adat3 ;
  int adat4 ;
                                ADÓ programja
 
  RF24 radio(9, 10); // CE, CSN     
  const uint64_t pipe = 0xE8E8F0F0E1LL;
                                                  // --
void setup(void) {
 Serial.begin(9600);
radio.begin();
radio.setPALevel(RF24_PA_MAX);      // most szúrtam be
radio.openWritingPipe(pipe);
}
                                                 //  --   
void loop(void)
{
  int adat1   =  analogRead (potiPin) ;
  int adat2   =  adat1 + 20 ;
  int adat3   =  adat1 + 40 ;
  int adat4   =  adat1 + 120 ;

  adattomb [1] = adat1     ;
  adattomb [2] = adat2     ;
  adattomb [3] = adat3     ;
  adattomb [4] = adat4     ;
 
    Serial.print (adattomb [1]) ;
   Serial.print ("   ") ;
   Serial.print (adattomb [2]) ;
   Serial.print ("   ") ;
   Serial.print (adattomb [3]) ;
   Serial.print ("   ") ;  
   Serial.print (adattomb [4]) ;
   Serial.println ("   ") ;
  radio.write(&adattomb, sizeof(adattomb));          //   ITT LEHET A HIBA
  delay(250);
}

 

                          VEVŐ programja

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

int adattomb[] ={1,2,3,4}       ;  // 4 adatos tömböt kreáltam csak most "int"
//File dataFile ;
RF24 radio( 3, 4 );      //  CE  ,  CSN         (9, 10); !!
const uint64_t pipe = 0xE8E8F0F0E1LL;

               //   ---

void setup(void) {
    Serial.begin(9600);
    radio.begin();  
    radio.openReadingPipe(1, 0xE8E8F0F0E1LL );   // pipe
    radio.setPALevel(RF24_PA_MAX);   
    radio.startListening();
    delay(15000);
}
                                //   --
void loop(void)
{
 
  if ( radio.available() )
 
    {
      radio.read(&adattomb, sizeof(adattomb));
       
      Serial.print(adattomb[1]);
      Serial.print("    ");
      Serial.print(adattomb[2]);
      Serial.print("    ");
      Serial.print(adattomb[3]);
      Serial.print("    ");
      Serial.print(adattomb[4]);
      Serial.println("    ");
      }
 
  else
  {
      Serial.println("Nem talált Rádiót" ) ;
  }
            delay(500);        
}

Az egészet nem kell leírnotok , csak azt a sort javítsátok.

Ebben a sorban  -  radio.read(&adattomb, sizeof(adattomb));  -  mi a szerepe  az & jelnek ?

Hardwer  hiba nincs , mert  "hello világ " típusú szövegek mennek.

Kérlek , ha van magyarázat azt alapfokon kérem.