Найти в Дзене
Проводник

Беспроводная связь Arduino с использованием NRF24L01

Шаг 1: Необходимые материалы Что такое NRF24L01? NRF24L01 - это дешевый модуль приемопередатчика, который работает со связью SPI и может быть легко использован для передачи и получения данных от двух Arduino. Следует помнить, что это полудуплексный тип, который означает, что он может отправлять или получать данные одновременно. Модуль может питаться от 3 вольт, но 5 вольт, поступающих от Arduino, убьют его, но хорошо то, что другие выводы выдерживают 5-вольтовую логику. • NRF24L01 • Гнездовой адаптер для модуля NRF • Arduino UNO • Перемычки • Тактильные кнопки • Светодиодный свет Шаг 2: Если вы используете Arduino Pro Mini, Nano или UNO- Если вы используете Arduino Mega- Vcc-5 вольт Arduino. Gnd- Gnd Arduino. IRO pin не используется, так как не требуется Шаг 3: Передача текста Откройте два Arduino ide и выберите платы из инструментов и правильные COM-порты, чтобы правильно загрузить код Перед загрузкой кода вам необходимо скачать и установить библиотеку RF24 с GitHub, потом
Оглавление

Шаг 1: Необходимые материалы

NRF24L01
NRF24L01
-3

Что такое NRF24L01?

NRF24L01 - это дешевый модуль приемопередатчика, который работает со связью SPI и может быть легко использован для передачи и получения данных от двух Arduino. Следует помнить, что это полудуплексный тип, который означает, что он может отправлять или получать данные одновременно. Модуль может питаться от 3 вольт, но 5 вольт, поступающих от Arduino, убьют его, но хорошо то, что другие выводы выдерживают 5-вольтовую логику.

• NRF24L01

• Гнездовой адаптер для модуля NRF

• Arduino UNO

• Перемычки

• Тактильные кнопки

• Светодиодный свет

Шаг 2:

-4

Если вы используете Arduino Pro Mini, Nano или UNO-

  • · CE - 7
  • · CSN - 8
  • · MOSI - 11
  • · MISO - 12
  • · SCK - 13

Если вы используете Arduino Mega-

  • CE - 7
  • · CSN - 8
  • · MISO - 50
  • · MOSI – 51
  • · SCK – 52

Vcc-5 вольт Arduino.

Gnd- Gnd Arduino.

IRO pin не используется, так как не требуется

Шаг 3: Передача текста

-5

Откройте два Arduino ide и выберите платы из инструментов и правильные COM-порты, чтобы правильно загрузить код

Перед загрузкой кода вам необходимо скачать и установить библиотеку RF24 с GitHub, потому что это облегчит программу.

Ссылка - https://github.com/nRF24/RF24

Теперь мы создадим простое сообщение, в котором Arduino отправляет данные в Arduino.

Загрузить указанный код в передатчик -

// Код передатчика

#include <SPI.h> // for SPI communication
#include <nRF24L01.h>
#include <RF24.h>
RF24 radio(7, 8); // CE, CSN
const byte address[6] = "00001"; // the address the the module
void setup() {
radio.begin();
radio.openWritingPipe(address);
radio.setPALevel(RF24_PA_MAX);
radio.stopListening();
}
void loop() {
const char text[] = "Hello World"; // you can customize this text to your wish
radio.write(&text, sizeof(text));
}

Upload the given code to reciever -

//Reciever Code

#include // for SPI communication #include
#include
RF24 radio(7, 8); // CE, CSN
const byte address[6] = "00001"; // the address the the module
void setup() {
Serial.begin(9600);
radio.begin();
radio.openReadingPipe(0, address);
radio.setPALevel(RF24_PA_MAX);
radio.startListening();
}
void loop() {
if (radio.available()) { // if nrf has any incoming data
char text[32] = "";
radio.read(&text, sizeof(text));
Serial.println(text);
delay(5);

Шаг 4: Беспроводная передача данных

-6

Загрузить этот код на обе платы Arduino

#include <spi.h>
#include <nrf24l01.h>
#include <rf24.h>
#define button 2
#define led 10
RF24 radio(7, 8); // CE, CSN
const byte addresses[][6] = {"00001", "00002"};
boolean buttonState = 0;
void setup() {
pinMode(button, INPUT);
pinMode(led, OUTPUT);
radio.begin();
radio.openWritingPipe(addresses[1]); // 00001
radio.openReadingPipe(1, addresses[0]); // 00002
radio.setPALevel(RF24_PA_MAX);
}
void loop() {
delay(5);
radio.stopListening();
int buttonValue = digitalRead(button);
radio.write(&buttonValue, sizeof(buttonValue));
delay(5);
radio.startListening();
while (!radio.available());
radio.read(&buttonState, sizeof(buttonState));
if (buttonState == HIGH) {
digitalWrite(led, HIGH);
}
else {
digitalWrite(led, LOW);
}
}
// This code is uploaded to Arduino Mega
#include
#include
#include
#define button 2
#define led 10
RF24 radio(7, 8); // CE, CSN
const byte addresses[][6] = {"00001", "00002"};
boolean buttonState = 0;
void setup() {
pinMode(button, INPUT);
pinMode(led, OUTPUT);
radio.begin();
radio.openWritingPipe(addresses[0]); // 00002
radio.openReadingPipe(1, addresses[1]); // 00001
radio.setPALevel(RF24_PA_MAX);
}
void loop() {
delay(5);
radio.startListening();
if ( radio.available()) {
while (radio.available()) {
int led_state= 0;
radio.read(&led_state, sizeof(led_state));
digitalWrite(led, led_state);
}
delay(5);
radio.stopListening();
buttonState = digitalRead(button);
radio.write(&buttonState, sizeof(buttonState));
}
}

Оригинал :https://www.instructables.com/id/Arduino-Wireless-Communication-Using-NRF24L01/