Позволяет передавать данные на расстоянии ~ 100м
- ОбзорМодель: NRF24l01Напряжение: 3.3VЧастота: 2.4GHzРасстояние: 100м на скорости 250кбит/сСкорость: от 250кбит до 2МбитЧто можно сделать?- Управлять роботом, машинкой, сервами и моторами с помощью пульта управления (без компьютера).- Возможна телеметрия. Сбор данных с удаленных объектов: температура, влажность, данные счетчиков и многое другое.- Двусторонняя связь между модулями - можно не только принимать данные, но и отправлять команды.Схема подключенияРассмотрим скетчи на примере передачи данных от Ультразвукового дальномера (Как подключить Ультразвуковой дальномер HC-SR04 к Arduino UNO) к Компьютеру.Что понадобится?1. Две платы Arduino UNO (можно использовать любые другие платы Arduino)2. Два радиомодуля NRF25L01ОписаниеОдин модуль подключенный к плате Arduino UNO (схема выше) будет подключен к компьютеру, другой же, после заливки скетча может быть отключен от компьютера и запитан от батареи.СкетчиПередатчик/*Передатчик*/#include <SPI.h>#include <Mirf.h>#include <nRF24L01.h>#include <MirfHardwareSpiDriver.h>#include "Ultrasonic.h"#define MAX_BUFF 32Ultrasonic ultrasonic(4,3); //Trig - 4, Echo - 3void setup(){Serial.begin(9600);Mirf.cePin = 7;Mirf.csnPin = 8;Mirf.spi = &MirfHardwareSpi;Mirf.init();Mirf.setRADDR((byte *)"app1");Mirf.payload = sizeof(unsigned int);// Mirf.channel = 10;Mirf.config();Serial.println("Beginning ... ");}void loop(){unsigned int range;//отправка данныхMirf.setTADDR((byte *)"app2");range = ultrasonic.Ranging(CM);Mirf.send((uint8_t *)&range);while(Mirf.isSending()){}Serial.println(range);delay(100);}Приемник/*Приемник*/#include <SPI.h>#include <Mirf.h>#include <nRF24L01.h>#include <MirfHardwareSpiDriver.h>#define MAX_BUFF 32void setup(){Serial.begin(9600);Mirf.cePin = 7;Mirf.csnPin = 8;Mirf.spi = &MirfHardwareSpi;Mirf.init();Mirf.setRADDR((byte *)"app2");Mirf.payload = sizeof(unsigned int);// Mirf.channel = 10;Mirf.config();Serial.println("Beginning ... ");}uint8_t buff[4];int c_count = 0;void loop(){int i;//прием данныхwhile(!Mirf.dataReady()) {}Mirf.getData(buff);Serial.println((unsigned int)*buff);delay(100);}