Найти в Дзене
Электроника, ESP32, Arduino

Сборка FM радиоприемника по ардуиновски

Радио работает в FM диапазоне на частоте 87,5—108 МГц. Программное решение полностью автономно - для настройки (перенастройки) перепрошивка радиоприемника с помощью компьютера не потребуется. Список радиостанций сохраняется во внутренней флеш-памяти ESP32, и будет доступен даже после отключения питания. Радио управляется 2 энкодерами. Кнопка правого энкодера включает/выключает радиоприемник. Когда радио включено - ручка энкодера выполняет роль регулятора громкости. Кнопка левого энкодера переводит радио в режим настройки предназначенный для поиска и заполнения списка радиостанций. Ручка энкодера служит для переключения между сохраненными каналами (всего для записи доступно 99 ячеек) После прошивки ESP32 необходимо выполнить сохранение частот вещающих местных радиостанции в ячейки памяти. Нажимаем кнопку правого энкодера: Вращением правого энкодера устанавливаем громкость: Переводим радио в режим установок нажатием на кнопку левого энкодера Вращаем правый энкодер - выбираем канал (д

Радио работает в FM диапазоне на частоте 87,5—108 МГц. Программное решение полностью автономно - для настройки (перенастройки) перепрошивка радиоприемника с помощью компьютера не потребуется. Список радиостанций сохраняется во внутренней флеш-памяти ESP32, и будет доступен даже после отключения питания.

Радио управляется 2 энкодерами.

Кнопка правого энкодера включает/выключает радиоприемник. Когда радио включено - ручка энкодера выполняет роль регулятора громкости.

Кнопка левого энкодера переводит радио в режим настройки предназначенный для поиска и заполнения списка радиостанций. Ручка энкодера служит для переключения между сохраненными каналами (всего для записи доступно 99 ячеек)

После прошивки ESP32 необходимо выполнить сохранение частот вещающих местных радиостанции в ячейки памяти.

Нажимаем кнопку правого энкодера:

Вращением правого энкодера устанавливаем громкость:

-2

Переводим радио в режим установок нажатием на кнопку левого энкодера

-3

Вращаем правый энкодер - выбираем канал (для примера выберем 10)

-4

Вращаем левый энкодер на одно положение (в любую сторону)

-5

Вращаем правый энкодер, чтобы найти нужную радиостанцию (можно поискать сетку вещания в Интернет или по старинке крутить пока, что-нибудь не заиграет в наушниках)

-6

Нажимаем на кнопку правого энкодера

-7

Появляется надпись сохранено и можно настраивать следующий канал

-8

или выйти из режима настроек нажав на кнопку левого энкодера. Всего в энергонезависимой памяти можно сохранить 99 частот радиостанций.

В обычном режиме на дисплее отображается номер канала, частота и уровень громкости. Левый энкодер переключает сохраненные станции, правый регулирует уровень громкости.

-9

Нажатие на кнопку правого энкодера выключает радио и гасит дисплей.

-10

За 15 минут вращения ручек в радио был добавлен вот такой список:

-11

Местные радиостанции в памяти можно расположить в том приоритете который Вам нравится.

Радио было собрано на плаформе ESP32

Схема FM-РАДИОПРИЕМНИКА
Схема FM-РАДИОПРИЕМНИКА

Для подключения энкодера потребуется задействовать 3 цифровых входа. Выводы всех интерфейсов я решил сохранить и поэтому для подключения кнопок энкодеров было решено задействовать выводы 34 и 35. Выводы 34, 35, 36, 39 могут использоваться только как входы и у них отсутствует возможность программного подключения внутренних подтягивающих резисторов, то есть сконфигурировать их как "INPUT_PULLUP" не получится - обязательно нужна внешняя подтяжка.

Для отображения данных используется старый добрый текстовый дисплей LCD2004 с переходником с параллельного интерфейса на интерфейс на I2C.

LCD2004 + переходник на I2C
LCD2004 + переходник на I2C

Как подключать модуль Si4703 было написано тут, дисплей подключается через переходник на шину I2C.

У переходника дисплея адрес 0x3F, у Si4703 адрес 0х10
так что проблем не будет. Для вывода русских букв используется самодельный русификатор (iRusFont.h) - максимум 8 русских символов (если в фразе будут символы совпадающие с символами английского алфавита - будут использованы они). У данного метода есть ограничение на длину фразы - за то он будет работать на любых дисплеях в том числе и без зашитой вовнутрь кириллицы.

Названия радиостанций энкодером заносить неудобно - поэтому в следующей версии радио планируется прикрутить WEB интерфейс.

Список модулей:

ESP32 WROOM DevKit v1
Радио модуль SI4073
Энкодер ЕС11
Текстовый дисплей LCD2004 + переходник I2C
Резистор 10к 2шт.

Ежели у Вас есть Интернет то имеет смысл собрать Интернет-радио - о том, что это, такое читайте здесь

А исходники кода данного устройства можно скачать по этой ссылке

Полный список статей канала доступен по этой ссылке