Подключение радиомодуля к ардуино

21 марта 2019 - Администратор

Подключение и программирование радио модуля NRF24L01 к ардуино

На этом уроке мы узнаем, как подключать NRF24L01 радиомодуль к Arduino
Мы разберем подключение и программирование радио модуля к ардуино. Радио модули NRF24L01 существуют двух типов с антенной и без антенны. Радио модуль NRF24L  с антенной передаёт сигнал на расстояние до километра,  без антенны радио модуль передает на 300-500 метров. Радио модуль работает в двух режимах приема и передачи сигнала.   В проектах с радиомодулями на ардуино как правило используются две системы  на ардуино с подключенными к ним радиомолулями. Одна система передатчик, другая систеема приемник. Пример проекта с использованием радиомодуля  Автоматизированная система предупреждения аварий на железных дорогах. Удаленный светофор 

Подключение радиомодуля NRF24L01  к ардуино уно. 

Схема подключения для приемника и передатчика одинаковая. Контакты радиомодуля NRF24L01 подключаются к адаптеру. Адаптер подключается к ардуино следующим образом.
CE радио модуля к пину ардуино ~9
CSN радио модуля к пину ардуино ~10
SCK радио модуля к пину ардуино 12
MO радио модуля к пину ардуино ~11
MI радио модуля к пину ардуино 12
Питание радиомодуля NRF24L01
vcc радио модуля к пину ардуино 5v
gnd радио модуля к пину ардуино gnd
Подробнее со схемой подключения радиомодуля NRF24L01 к ардуино можно ознакомится на рисунке.

подключение радиомодуля nrf24 к ардуино

Программирование радиомодуля NRF24L01 

Пример программы  для радиомодуля NRF24L01  для передачи сигнала. Для передачи сигнала с помощью радиомодуля его необходимо сначала настроить. Предварительно негобходимо установить библиотеки для работы с радио модулями nRF24L01.h и RF24.h  Подробнее об установках библиотек  для ардуино. Все настройки радиомодуля осуществляются в специальной процедуре  radio_setings(). Для  передатчика в этой процедуре необходимо указать что радиомодуль работает в режиме передачи с помощью команды   radio.stopListening();  //не слушаем эфир, мы передатчик. Чтобы послать по радио сигналу  значение переменной используется команда radio.write(&sit,sizeof(sit)); // передаём значение переменной sit
#include <Wire.h> // дополнительная библиотека для работы с радио модулем
#include "nRF24L01.h"     // библиотека радиомодуля
#include "RF24.h" // библиотека радиомодуля
//Подключение библиотек рассматривалось на уроке…
RF24 radio(9, 10); // "создать" модуль на пинах Для Уно
byte address[][6] = {"1Node", "2Node", "3Node", "4Node", "5Node", "6Node"}; //возможные каналы
int sit; //переменная для передачи значения
void setup() {
  Serial.begin(9600); // настройка работы ком порта
//информация выводится в монитор порта с помощью команды Serial.println();
  radio_setings();//настройка радио модуля
}
// процедура настройки радио модуля
void radio_setings ()
{
// все эти строки необходимы для настройки радио модуля
  radio.begin(); //активация радио модуля
  radio.setAutoAck(1);         
  radio.setRetries(0, 15);    
  radio.enableAckPayload();    
  radio.setPayloadSize(32);     
  radio.openWritingPipe(address[0]);   
  radio.setChannel(0x60);  
  radio.setPALevel (RF24_PA_MIN); 
  radio.setDataRate (RF24_2MBPS);  
  radio.powerUp(); //начало работы
  radio.stopListening();  //не слушаем эфир, мы передатчик
}
void loop() {
sit = 102; //задаем значение переменной sit
radio.write(&sit,sizeof(sit)); // передаём значение переменной sit
delay(10);  // ждем 10 миллисекунд 
}

Пример программы для приема сигнала с помощью радиомодуля NRF24L01. Для начала необходимо в процедуре void radio_setings () указать, что радиомодуль работает в режиме приема сигнала radio.startListening();  //начинаем слушаем эфир
Сигнал принимается постоянно с помощью команды   radio.read( &gotByte, sizeof(gotByte) );  Значение будет записано в переменную gotByte
#include <Wire.h>
#include "nRF24L01.h"
#include "RF24.h"
int amountNotes = 13;
byte mass [5] = {0, 0, 0, 0, 0};
RF24 radio(9, 10); // "создать" модуль на пинах Для Уно
int pik = 7;
byte address[][6] = {"1Node", "2Node", "3Node", "4Node", "5Node", "6Node"}; //возможные каналы
void setup() {
  Serial.begin(9600); // настройка работы ком порта
//информация выводится в монитор порта с помощью команды Serial.println();
  radio_setings();//настройка радио модуля
}
void radio_setings ()
{
// все эти строки необходимы для настройки радио модуля
  radio.begin(); //активация радио модуля
  radio.setAutoAck(1);         
  radio.setRetries(0, 15);    
  radio.enableAckPayload();    
  radio.setPayloadSize(32);     
  radio.openWritingPipe(address[0]);   
  radio.setChannel(0x60);  
  radio.setPALevel (RF24_PA_MIN); 
  radio.setDataRate (RF24_2MBPS);  
  radio.powerUp(); //начало работы
 radio.startListening();  //начинаем слушаем эфир
}
void loop() {
  //digitalWrite (7,HIGH);
  byte pipeNo, gotByte;
  while ( radio.available(&pipeNo)) {   
    radio.read( &gotByte, sizeof(gotByte) );         // читаем входящий сигнал
    Serial.println(gotByte); // выводим в ком порт значение gotByte
  }
}

Вернуться к содержанию

Поделиться:

 
Комментарии (0)

Нет комментариев. Ваш будет первым!