PchButik.se

Enkelt #1

NRF24L01 Enkelt #1 - översikt

Enklast möjliga kommunikations test med NRF24L01. Den högra Àr sÀndaren och den vÀnstra Àr mottagaren och den har en lysdiod som blinkar och visar att trÄdlöst funkar.

OBS. koppla INTE in USB ström i bÄda Nano korten utan att bryta 5 Volt kabeln mellan de bÄda Nano.

NRF24L01 kopplingsschema
NRF24L01 demo blink

main_rx.cpp

//RxLeft\main.cpp
#include <Arduino.h>
#include <SPI.h>
#include <Mirf.h>
#include <nRF24L01.h>
#include <MirfHardwareSpiDriver.h>

#define PAYLOAD_SIZE 1
#define MESSTYPE_TEST 0x99 //Test med 2675 NRF testare
#define LED1 A5

void MessInkomming(byte[]);
void Blink(uint8_t);

byte RxAddress[6] = {"RX099"};
uint8_t data[PAYLOAD_SIZE]; //payload on client and server must be the same.

void setup() {
  Serial.begin(9600);
  Serial.println("setup Code1 RX");
  Blink(1);

  Mirf.spi = &MirfHardwareSpi;
  Mirf.init();

  Mirf.setRADDR(RxAddress);
  Mirf.payload = PAYLOAD_SIZE;
  Mirf.config();
}

void loop() {
  if(!Mirf.isSending() && Mirf.dataReady()){
    Serial.println("reciving...");
    Mirf.getData(data);
    MessInkomming(data);
  }
}

void Blink(uint8_t c){
  for (uint8_t i = 0; i < c; i++){
    pinMode(LED1, OUTPUT);
    digitalWrite(LED1, LOW);
    delay(200);
    digitalWrite(LED1, HIGH);
    delay(200);
  }
};

void MessInkomming(byte Recive[]){
  if(Recive[0] != MESSTYPE_TEST){
    Serial.println("ERROR wrong MESSTYPE");
    Blink(1);
  }

  if(Recive[0] == MESSTYPE_TEST){
    Serial.println("OK reciving MESSTYPE_TEST.");
    Blink(3);
  }
}
NRF24L01 demo blink

main_tx.cpp

//TxRight/main.cpp
#include <Arduino.h>
#include <SPI.h>
#include <Mirf.h>
#include <nRF24L01.h>
#include <MirfHardwareSpiDriver.h>

#define PAYLOAD_SIZE 1 //
#define MESSTYPE_TEST 0x99 //Test med 2675 NRF testare

byte RxAddress[6] = {"TX099"};
uint8_t TXAddress[6] = {"RX099"};
uint8_t data[PAYLOAD_SIZE]; //payload on client and server must be the same.

void setup() {
    Serial.begin(9600);
    Serial.println("setup Code1 TX");

    Mirf.spi = &MirfHardwareSpi;
    Mirf.init();
    Mirf.setRADDR(RxAddress);
    Mirf.payload = PAYLOAD_SIZE;
    Mirf.config();

    data[0] = MESSTYPE_TEST;
    Mirf.setTADDR(TXAddress);

    if(!Mirf.isSending()){
       Mirf.send(data);
       Serial.println("send...");
       delay(20);
    }else{
       Serial.println("send ERROR...");
    }
}

void loop() {}

NÀr mottagaren startar upp blinkar lysdioden en gÄng. Varje gÄng som sÀndaren fÄr reset startar den om och sÀnder en byte till mottagaren och mottagaren blinkar dÄ 3 gÄnger.

Denna sida Àr konverterad med hjÀlp av AI.
En sida för dig som bygger elektronik sjÀlv, experimenterar och laborerar.
Skapad av Per-Anders Hult för PchButik.se.