4.10.1. Лабораторная работа №4.10.1.md
Беспроводная связь - сканер радиоэфира
Тема работы
До сих пор все наши устройства были «привязаны» проводами. В этой лабораторной работе мы сделаем первый шаг в мир беспроводных технологий. Мы познакомимся с популярным радиомодулем NRF24L01, который позволяет устройствам общаться друг с другом «по воздуху». Мы не будем передавать данные, а напишем полезную программу-сканер, которая покажет нам, какие радиоканалы свободны, а какие заняты. Это важнейший первый шаг перед настройкой любой беспроводной связи.
Цель
- Понять назначение и принцип работы интерфейса
SPI. - Познакомиться с характеристиками и возможностями радиомодуля
NRF24L01. - Научиться использовать специальные разъёмы на плате
Рудирондля быстрой установки модулей. - Написать программу-сканер для анализа радиоэфира.
Оборудование и материалы
- Отладочная плата
Рудирон. - 1 радиомодуль
NRF24L01. - USB-кабель для подключения
Рудирона. - Компьютер с
Arduino IDEи установленной библиотекойRudiron_NRF24L01.
Ход работы
-
Интерфейс
SPIРадиомодуль
NRF24L01обменивается данными с микроконтроллером по интерфейсуSPI(Serial Peripheral Interface). В отличие отI2C,SPI— это более быстрый и простой интерфейс, который идеально подходит для устройств, требующих высокой скорости передачи данных, таких как радиомодули, дисплеи или SD-карты.В простейшем случае
SPIиспользует 4 линии:MISO(Master In, Slave Out) — данные от ведомого к ведущему.MOSI(Master Out, Slave In) — данные от ведущего к ведомому.SCK(Serial Clock) — тактовый сигнал, синхронизирующий передачу.CSилиSS(Chip Select / Slave Select) — пин для выбора ведомого устройства, с которым будет общаться ведущий.
Рудирон, как ведущий, управляет всем процессом, аNRF24L01является ведомым. -
Модуль
NRF24L01NRF24L01— это трансивер, то есть он может и передавать, и принимать данные. Он работает на частоте 2.4 ГГц (как Wi-Fi и Bluetooth).Важно! Модуль
NRF24L01очень чувствителен к питанию и работает от 3.3В. Никогда не подключайте его выводVCCк пину5V— это мгновенно выведет модуль из строя!На плате
Рудиронесть специальный разъём, предназначенный для прямой установки модуляNRF24L01. Это невероятно удобно, так как вам не нужно соединять 8 пинов проводами.- Установите модуль. Просто вставьте
NRF24L01в соответствующий разъём на платеРудирон. Убедитесь, что он вставлен правильно, согласно ключу (маркировке) на плате и модуле.

Блокируемые пины и прерывание
IRQ:- При установке модуля
NRF24L01задействуются пины 20, 21, 22, 24, 28, которые становятся недоступными для других задач. - Модуль также использует линию прерывания, которая подключена к кнопке
B2(пин 31). Чтобы прерывания от радиомодуля работали корректно, необходимо установить перемычкуIRQна плате.
- Установите модуль. Просто вставьте
-
Установка библиотеки
Rudiron_NRF24L01- Скачайте архив с библиотекой из репозитория Rudiron Libraries.
- В
Arduino IDEперейдите в меню Sketch → Include Library → Add .ZIP Library… и выберите скачанный архив.
-
Написание и загрузка кода
- Установите перемычку
PRG | RUNв положениеPRG. -
В
Arduino IDEвведите следующий код:#include <Rudiron_NRF24L01.h> // Создаём объект для работы с радиомодулем RF24 radio(28, 20); // Пины CE, CSN void setup() { Serial.begin(115200); Serial.println("Starting NRF24L01 Channel Scanner..."); if (!radio.begin()) { Serial.println("Радиомодуль не найден! Проверьте подключение."); while (true); // Бесконечный цикл, если модуль не работает } // Устанавливаем минимальную мощность для сканирования radio.setPALevel(RF24_PA_MIN); } void loop() { const int num_channels = 126; int values[num_channels]; // Сканируем все каналы for (int i = 0; i < num_channels; i++) { radio.setChannel(i); radio.startListening(); delayMicroseconds(128); radio.stopListening(); if (radio.testCarrier()) { values[i] = 1; // Канал занят } else { values[i] = 0; // Канал свободен } } // Выводим карту каналов в монитор порта for (int i = 0; i < num_channels; i++) { Serial.print(values[i]); } Serial.println(); delay(1000); // Пауза перед следующим сканированием } - Нажмите кнопку «Upload», чтобы загрузить код на плату.
- Установите перемычку
-
Проверка работы
- Откройте Монитор последовательного порта (
Tools → Serial Monitor) и установите скорость 115200 бод. - Вы увидите строки из нулей и единиц.
0означает, что радиоканал свободен, а1— что на нём есть какая-то активность (например, работает ваш Wi-Fi роутер).
- Откройте Монитор последовательного порта (
Результаты
Вы создали полезную утилиту — сканер радиоэфира. Теперь вы можете определить, на каких каналах меньше всего помех, и использовать эту информацию для настройки надёжной беспроводной связи между вашими устройствами.
Анализ результатов
#include <Rudiron_NRF24L01.h>. Мы подключили библиотеку для работы сNRF24L01.RF24 radio(28, 20);. Мы создали объектradioи указали пиныCEиCSN, которые используются наРудироне(28 и 20).radio.testCarrier(). Эта функция «слушает» эфир на выбранном канале и возвращаетtrue, если обнаруживает несущую частоту (сигнал от другого устройства).
Выводы
В этой лабораторной работе вы научились работать с радиомодулем NRF24L01 и интерфейсом SPI. Вы поняли, как использовать специальные разъёмы на плате Рудирон для быстрой сборки проектов и как важно правильно настраивать перемычки. Навыки работы с беспроводными технологиями открывают огромные возможности для создания систем «умного дома», роботов с дистанционным управлением и сетей датчиков.
Вопросы для самопроверки
- Для чего используется интерфейс
SPI? - Почему модуль
NRF24L01нельзя подключать к5V? - Какие пины на
Рудиронезадействуются при установкеNRF24L01в специальный разъём? - Какую перемычку и в какое положение нужно установить для корректной работы прерываний от радиомодуля?
- Что означает
1в выводе сканера? А0? - Как бы вы выбрали лучший канал для своего проекта, глядя на вывод сканера?
Поздравляем с первым шагом в мир беспроводной связи! Это завершает наше знакомство с основными возможностями Рудирона. Вы прошли огромный путь и теперь готовы к созданию практически любых проектов, которые только сможете придумать
- Страницы
- 1. Введение
- 1.01. Лабораторная работа №1.1
- 1.02. Лабораторная работа №1.2
- 1.03. Лабораторная работа №1.3
- 1.04. Лабораторная работа №1.4
- 1.05. Лабораторная работа №1.5
- 2. Основы электроники
- 2.01. Электрический ток и параметры цепи
- 2.01.1. Лабораторная работа №2.1.1
- 2.01.2. Лабораторная работа №2.1.2
- 2.02. Сопротивление в цепи
- 2.02.1. Лабораторная работа №2.2.1
- 2.02.2. Лабораторная работа №2.2.2
- 2.03. Полупроводники
- 2.03.1. Лабораторная работа №2.3.1
- 2.03.2. Лабораторная работа №2.3.2
- 3. Основы программирование на C++
- 3.01. Типы данных и переменные
- 3.01.1. Практикум
- 3.02. Операторы в C++
- 3.02.1. Практикум
- 3.03. Структуры ветвления
- 3.03.1. Практикум
- 3.04. Структуры повторения
- 3.04.1. Практикум
- 3.05. Массивы
- 3.05.1. Практикум
- 3.06. Функции
- 3.06.1. Практикум
- 3.07. Решения задач
- 4. Программирование микроконтроллеров
- 4.01. Цифровые сигналы и GPIO
- 4.01.1. Лабораторная работа №4.1.1
- 4.01.2. Лабораторная работа №4.1.2
- 4.01.3. Лабораторная работа №4.1.3
- 4.01.4. Лабораторная работа №4.1.4
- 4.01.5. Лабораторная работа №4.1.5
- 4.01.6. Лабораторная работа №4.1.6
- 4.01.7. Лабораторная работа №4.1.7
- 4.01.8. Лабораторная работа №4.1.8
- 4.02. Аналоговые сигналы и ШИМ
- 4.02.1. Лабораторная работа №4.2.1
- 4.02.2. Лабораторная работа №4.2.2
- 4.02.3. Лабораторная работа №4.2.3
- 4.02.4. Лабораторная работа №4.2.4
- 4.02.5. Лабораторная работа №4.2.5
- 4.03. Аналоговый сигнал и АЦП
- 4.03.1. Лабораторная работа №4.3.1
- 4.03.2. Лабораторная работа №4.3.2
- 4.03.3. Лабораторная работа №4.3.3
- 4.03.4. Лабораторная работа №4.3.4
- 4.03.5. Лабораторная работа №4.3.5
- 4.04. Аналоговый сигнал и ЦАП
- 4.04.1. Лабораторная работа №4.4.1
- 4.04.2. Лабораторная работа №4.4.2
- 4.05. Генерация и измерение импульсов
- 4.05.1. Лабораторная работа №4.5.1
- 4.05.2. Лабораторная работа №4.5.2
- 4.06. Аппаратные прерывания
- 4.06.1. Лабораторная работа №4.6.1
- 4.06.2. Лабораторная работа №4.6.2
- 4.07. Псевдопараллелизм
- 4.07.1. Лабораторная работа №4.7.1
- 4.07.2. Лабораторная работа №4.7.2
- 4.08. Интерфейсы связи - UART
- 4.08.1. Лабораторная работа №4.8.1
- 4.09. Интерфейсы связи - I2C
- 4.09.1. Лабораторная работа №4.9.1
- 4.10. Интерфейсы связи - SPI
- 4.10.1. Лабораторная работа №4.10.1
- home
-
imgs
- 1. Введение
- 1.01. Лабораторная работа №1.1
- 1.02. Лабораторная работа №1.2
- 1.03. Лабораторная работа №1.3
- 1.04. Лабораторная работа №1.4
- 1.05. Лабораторная работа №1.5
- 2. Основы электроники
- 2.01. Электрический ток и параметры цепи
- 2.01.1. Лабораторная работа №2.1.1
- 2.01.2. Лабораторная работа №2.1.2
- 2.02. Сопротивление в цепи
- 2.02.1. Лабораторная работа №2.2.1
- 2.02.2. Лабораторная работа №2.2.2
- 2.03. Полупроводники
- 2.03.1. Лабораторная работа №2.3.1
- 2.03.2. Лабораторная работа №2.3.2
- 3. Основы программирование на C++
- 3.01. Типы данных и переменные
- 3.01.1. Практикум
- 3.02. Операторы в C++
- 3.02.1. Практикум
- 3.03. Структуры ветвления
- 3.03.1. Практикум
- 3.04. Структуры повторения
- 3.04.1. Практикум
- 3.05. Массивы
- 3.05.1. Практикум
- 3.06. Функции
- 3.06.1. Практикум
- 3.07. Решения задач
- 4. Программирование микроконтроллеров
- 4.01. Цифровые сигналы и GPIO
- 4.01.1. Лабораторная работа №4.1.1
- 4.01.2. Лабораторная работа №4.1.2
- 4.01.3. Лабораторная работа №4.1.3
- 4.01.4. Лабораторная работа №4.1.4
- 4.01.5. Лабораторная работа №4.1.5
- 4.01.6. Лабораторная работа №4.1.6
- 4.01.7. Лабораторная работа №4.1.7
- 4.01.8. Лабораторная работа №4.1.8
- 4.02. Аналоговые сигналы и ШИМ
- 4.02.1. Лабораторная работа №4.2.1
- 4.02.2. Лабораторная работа №4.2.2
- 4.02.3. Лабораторная работа №4.2.3
- 4.02.4. Лабораторная работа №4.2.4
- 4.02.5. Лабораторная работа №4.2.5
- 4.03. Аналоговый сигнал и АЦП
- 4.03.1. Лабораторная работа №4.3.1
- 4.03.2. Лабораторная работа №4.3.2
- 4.03.3. Лабораторная работа №4.3.3
- 4.03.4. Лабораторная работа №4.3.4
- 4.03.5. Лабораторная работа №4.3.5
- 4.04. Аналоговый сигнал и ЦАП
- 4.04.1. Лабораторная работа №4.4.1
- 4.04.2. Лабораторная работа №4.4.2
- 4.05. Генерация и измерение импульсов
- 4.05.1. Лабораторная работа №4.5.1
- 4.05.2. Лабораторная работа №4.5.2
- 4.06. Аппаратные прерывания
- 4.06.1. Лабораторная работа №4.6.1
- 4.06.2. Лабораторная работа №4.6.2
- 4.07. Псевдопараллелизм
- 4.07.1. Лабораторная работа №4.7.1
- 4.07.2. Лабораторная работа №4.7.2
- 4.08. Интерфейсы связи - UART
- 4.08.1. Лабораторная работа №4.8.1
- 4.09. Интерфейсы связи - I2C
- 4.09.1. Лабораторная работа №4.9.1
- 4.10. Интерфейсы связи - SPI
- 4.10.1. Лабораторная работа №4.10.1
- home