Скетч для управления передатчиком

В следующем эксперименте мы отправим в радиоэфир традиционное «Hello world!».

 

//=================================================================

//Подключаем библиотеки

#include <SPI.h> // управление взаимодействия модуля с Ардуино по каналу SPI,

#include <nRF24L01.h>// управление самим модулем

#include <RF24.h>

 

//Создаём объект «Радио» типа RF24

RF24 radio(9, 8); // CE на 9 контакте, CSN на 8 контакте

 

//назначаем адрес - имя трубы по которой будут общаться два модуля

//(имя описывается массивом из 5 символов: 00001, node1, myFM1 и т.д.)

//имя трубы прописывается как идентификатор модуля, общающиеся модули должны //иметь один и тот же идентификатор

const byte address[6] = "00001";

 

void setup()

{

radio.begin(); //начинаем работу объекта Радио

 

//открываем трубу для передачи данных с именем (address)

radio.openWritingPipe(address);

 

//прекращаем слушать эфир – модуль переходит в режим передатчика

radio.stopListening();

}

void loop()

{

//Создаём сообщение приёмнику в виде массива символов

const char text[] = "Hello World";

//переписываем в трубу по-байтно начиная с байта (&text) в котором хранится

//сообщение в трубу,

// количество передаваемых байт равно размеру сообщения (sizeof())

radio.write(&text, sizeof(text));

 

delay(1000); // задержка между состояниями системы

}

 

//==========================================================================

 

Метод Write позволяет отправлять сообщения размером до 32 байт. Метод возращает Истину, если было получено уведомление о получении сообщения приёмником, и Ложь если, сообщение были потеряно.

ВАЖНО! Пока не будет получено уведомление о получении сообщения приёмником или пока не кончатся все попытки заново отправить сообщение КОД ДАЛЬШЕ НЕ ВЫПОЛНЯЕТСЯ.

Скетч для управления приёмником

//=================================================================

//Подключаем библиотеки

#include <SPI.h> // управление взаимодействия модуля с Ардуино по каналу SPI,

#include <nRF24L01.h>// управление самим модулем

#include <RF24.h>

 

//Создаём объект «Радио» типа RF24

RF24 radio(9, 8); // CE на 9 контакте, CSN на 8 контакте

 

//назначаем адрес - имя трубы по которой будут общаться два модуля

//(имя описывается массивом из 5 символов: 00001, node1, myFM1 и т.д.)

//имя трубы прописывается как идентификатор модуля, общающиеся модули должны //иметь один и тот же идентификатор

const byte address[6] = "00001";

 

void setup()

{

 

 Serial.begin(9600); // открываем соединение с последовательным портом 

                    //для передачи данных

   while (!Serial);   //ожидаем подключения последовательного порта. Нужно          

                   //только для Leonardo

   radio.begin(); //начинаем работу объекта Радио

 

//открываем трубу для приёма данных с именем (address)

//первый аргумент – номер трубы, второй её адрес. (модуль может общаться по

//шести трубам (каждая со своим адресом) с шестью различными модулями,

//таким образом можно построить сеть из модулей.

radio.openReadingPipe(0, address);

 

//начинаем слушать радиоэфир – переключаем модуль в режим приёмника

radio.startListening();

}

 

void loop()

{

// Если данные в буфере объекта Радио есть, то (метод возвращает Истину,  

//если данные есть и Ложь, если их нет)

if (radio.available())

{

//Создаём массив из 32 символов и инициализируем его нулями

char text[32] = {0};

//читаем данные из буфера объекта Радио по-байтно начиная с байта (&text)   

// в котором хранится сообщение, количество передаваемых байт равно 

// размеру сообщения (sizeof())

 

radio.read(&text, sizeof(text));

// Печатаем сновой строки в монитор порта принятое сообщение

Serial.println(text);

}

}

 

//===========================================================================

 

 

В результате выполнения программы в мониторе порта каждую секунду должны выводиться сообщения «Hello World!».

 

 


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: