Enkelt #1
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.
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.
Video som visar att trådlös kommunikation med NRF24L01 fungerar – lysdioden på mottagaren blinkar 3 gånger vid varje reset på sändaren.
Kod – Mottagare (RxLeft/main.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);
}
}Kod – Sändare (TxRight/main.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() {}Länkar
Bibliotek (GitHub Mirf): https://github.com/aaronds/arduino-nrf24l01/tree/master/Mirf
Arduino Playground NRF24L01: https://playground.arduino.cc/InterfacingWithHardware/Nrf24L01/
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.


