Подключение радиомодуля к ардуино
Подключение и программирование радио модуля 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 к ардуино можно ознакомится на рисунке.
Программирование радиомодуля 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
}
}
Поделиться:
Нет комментариев. Ваш будет первым!