Arduino fm-радио: создание приемника своими руками

Собираем управляемый Arduino радиоприемник с AM на СВ/КВ и FM в УКВ диапазоне

Объедините радиоприемник Si4844-A10 с аналоговой настройкой и плату Arduino, чтобы собрать полнофункциональный, многодиапазонный радиоприемник.

Идея радиоприемника на одной микросхеме выглядит довольно увлекательной. Такая возможность интересна особенно мне, потому что, честно говоря, я завидую людям, обладающим навыками в аналоговой схемотехнике, необходимыми для создания радиоприемника.

Когда я просматривал литературу на эту тему, я наткнулся на микросхемы от Silicon Labs. Моё внимание привлекла одна из этих микросхем, Si4844-A10.

Этот приемник может работать в AM сигналом в диапазонах СВ/КВ и FM сигналом в диапазоне УКВ и предназначен для работы с микропроцессором и компонентами управления, при этом потребуется лишь небольшая антенна. Я не мог удержаться.

Справочные документы

Рекомендуется с данными микросхемы и информацией по её использованию. Рекомендуется ознакомиться с тремя документами, приведенными ниже, для понимания и сборки проекта:

Основная схема

Схема радиоприемника

На рисунке 1 представлена основная схема радиоприемника, взятая и адаптированная из технического описания Silicon Labs Si4844 и рекомендаций по применению.

Для приема в диапазоне КВ я использовал ферритовую антенну от старого портативного приемника. Q1 – усилитель для СВ/УКВ, здесь я так же использовал телескопическую антенну от старого приемника.

Стоит заметить, что руководство по проектированию, приведенное выше, дает несколько альтернатив и различные подходы к антеннам.

Переменный резистор (VR1) является критичным элементом схемы, поскольку он будет использоваться для настройки частоты приемника (ручка настройки). Рекомендуется использовать линейный потенциометр.

Для аудиовыхода я решил использовать пару «экономичных» аудиоколонок со встроенным усилителем, которые у меня остались от старого компьютера. Разумеется, можно использовать простой стереоусилитель.

Возможно, наиболее сложная часть сборки – это работа с микросхемой в корпусе SSOP-24. Если у вас нет опыта работы с SMD микросхемами, возможно, самым простым способом будет использование переходной платы.

У меня была переходная плата SSOP-28; немного пайки, и с микросхемой стало можно работать, как с микросхемой в DIP корпусе. Другими потенциально трудными компонентами для работы является пара из ферритового фильтра (бусинки) и конденсатора.

Эти компоненты также можно припаять на переходную плату, чтобы работать с ними как с DIL элементом.

SMD компоненты, припаянные на переходные платы

Список компонентов основной схемы

КомпонентОписание
B1 Ферритовый фильтр (бусинка) 2,5 кОм (100 МГц)
C1,C2,C5 Неполярный конденсатор 4,7 мкФ
C3,C4 Конденсатор 22 пФ
C6,C7,C9 Конденсатор 0,1 мкФ
C8 Неполярный конденсатор 47 мкФ
C10,C11 Конденсатор 0,47 мкФ
C12,C14 Конденсатор 33 нФ
C13 Конденсатор 33 пФ
C15 Конденсатор 10 пФ
IC1 Радиоприемник Si4844-A10
Q1 NPN транзистор SS9018
R1, R2 Резистор 2,2 кОм
R3 Резистор 1 кОм
R4,R7 Резистор 100 кОм
R5 Резистор 10 Ом
R6 Резистор 120 кОм
R8 Резистор 100 Ом
L1 Индуктивность 270 нГн
VR1 Линейный потенциометр 100кОм
Y1 Кварцевый резонатор 32,768 кГц
ANT1 Ферритовая антенна
ANT2 Телескопическая/штыревая антенна

Подключение Arduino

Еще одна вещь, которую надо решить до включения схемы для тестирования, – это взаимодействие с Arduino. Здесь я решил использовать плату Arduino Pro Mini 3В/8МГц.

Это небольшая плата Arduino, полностью работающая на напряжении 3,3 В и совместимая с Si4448-A10, что является главным преимуществом. Небольшой размер платы – второе преимущество.

Подключение к Si4448-A10 осуществляется по четырем линиям, как описано ниже:

Подключение Arduino к Si4844-A10

Arduino (3.3 В)Si4844-A10
A5/SCL SCLK
A4/SDA SDIO
D2 INT
D12 RST

Кроме того, используется стандартный преобразователь USB/TTL для подключения Arduino к компьютеру для программирования. Таким образом, у Arduino также будут задействованы выводы TX, RX и GND. Так вы сможете программировать и тестировать Si4844-A10 «внутрисхемно», что облегчает разработку и экспериментирование.

Когда всё будет завершено, это подключение может быть убрано для автономной работы нового радиоприемника. Питание платы радио и платы Arduino должно осуществляться внешним стабилизированным источником питания на 3,3 В.

Не пытайтесь запитывать их от преобразователя USB/TTL, даже если у него есть выходной вывод 3,3 В – нельзя полагаться, что он обеспечит необходимый ток для питания и Arduino, и Si4844-A10.

Тестирование основной схемы

Когда у вас будет собранная на макетной плате схема, подключенные к ней Arduino и аудиоколонки со встроенным усилителем, вы сможете запустить тестовую программу, которая приведена в архиве в конце статьи (Si4844_Quick_Test.ino).

Эта программа выполняет простой тест, который включает питание устройства, устанавливает диапазон FM (УКВ) и предоставляет информацию о версии микросхемы.

Если всё пройдет хорошо, вы сможете настроить частоту радиоприемника, повернув ручку VR1, увидите частоту, динамически отображаемую на экране и, конечно, услышите то, что выдает радиоприемник.

Скриншот экрана с результатами вывода тестовой программы

Если основная схема и ее подключение к Arduino работают, то можно собирать полноценный радиоприемник.

Программирование Arduino

Микросхема Si в этом проекте является ведомым устройство I2C, имеющим фиксированный адрес 0x11; при этом ведущим устройством (мастером) является плата Arduino. Однако скорость обмена информацией по I2C у этой микросхемы относительно медленная: максимальная поддерживаемая скорость 50 кГц.

Кроме того, во время процедуры включения питания скорость не должна превышать 10 кГц. Чтобы удовлетворить эти требования, мы должны явно установить у Arduino скорость I2C, которая, как правило, слишком велика для Si4844-A10.

К счастью, благодаря большому количеству документации по функциям I2C Arduino, мы можем легко выполнить необходимые изменения.

В принципе, скорость I2C для наших целей определяется в программном обеспечении Arduino двумя переменными. Эти переменные – это TWBR и TWSR. Биты 0 и 1 TWSR управляют предделителем, который работает со значением TWBR для установки скорости I2C. Скорость (тактовая частота) передачи по I2C рассчитывается по формуле:

Частота = Тактовая частота процессора / (16 + (2 * (TWBR) * (предделитель))

Arduino Pro mini 3,3В работает на частоте 8 МГц. Чтобы установить скорость I2C на 10 кГц, мы используем значение TWBR 98 и установим предделитель в значение 4 (путем установки в 1 только бита 0 TWSR). Таким образом,

8 000 000 / (16 + (2 * 98 * 4 )) = 10 000 или 10 кГц

Чтобы установить скорость I2C на 50 кГц, мы используем значение TWBR 18 и установим предделитель в значение 4 (путем установки в 1 только бита 0 TWSR). Таким образом,

8 000 000 / (16 + (2 * 18 * 4)) = 50 000 или 50 кГц

Для более подробной информации смотрите документацию библиотеки Wire для Arduino. Суть в том, что мы можем выполнить изменение скорости I2C всего парой строк кода, что вы можете увидеть в тестовой программе.

Еще один важный момент, связанный с программирование, заключается в том, что нам в коде нужно использовать подпрограмму внешнего прерывания. Мы используем INT0 на Arduino, и, когда Si4844-A10 установит уровень на этом выводе в 1, выполнится простая функция, которая «привязана» к этому прерыванию.

Всё, что делает эта функция, это изменяет значение переменной флага, которая может быть проверена и изменена в других частях программы. Si4844-A10 будет запускать прерывания (т.е. подавать уровень логической единицы на вывод INT) при определенных условиях, в основном в случае изменения сопротивления потенциометра настройки.

Так Si4844-A10 сообщает Arduino, что вы повернули ручку настройки, и что необходимо обновить данные на дисплее.

Программирование Si4844-A10

По сути, Arduino посылает команды микросхеме радиоприемника по шине I2C, затем микросхема выполняет запрошенные действия и возвращает информацию о состоянии. Микросхема Si может работать в нескольких режимах, что позволяет настроить в ней точную частоту и нужные параметры.

В этом проекте мы используем чип Si4844-A10 в режиме, который принимает предварительно определенные (или стандартные) диапазоны радиочастот с параметрами по умолчанию.

Этот режим был выбран потому, что он легко дает доступ к базовому функционалу и при этом предлагает определенную степень настройки.

Вместо того, чтобы просто устанавливать значение «регистра» СВ/КВ/УКВ, в радиочипе может быть выбран один из 41 различных частотных диапазонов.

Диапазоны 0–19 – ультракороткие волны (FM) 87–109 МГц; диапазоны 20–24 – средние волны (AM) 504–1750 кГц; диапазоны 25–40 – короткие волны 5,6–22,0 МГц (SW). Эти дипазоны различаются шириной, что может усложнить настройку.

Более того, частотные диапазоны нескольких запрограммированных диапазонов равны или отличаются незначительно, но имеют различные параметры, например, предыскажения (УКВ/FM), ширина канала (СВ/AM), пороги разделения стереосигналов (УКВ/FM) и уровня принимаемого сигнала.

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

В данном проекте программное обеспечение будет обеспечивать доступ ко всем стандартным диапазонам, а также к управлению основными параметрами, включая изменение режима (AM/FM/SW), громкость, тон и отключение звука.

Добавление клавиатуры

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

Простая мембранная клавиатура

Подключение клавиатуры к Arduino

КлавиатураArduino
Строка 1 D8
Строка 2 D9
Строка 3 D10
Строка 4 D11
Столбец 1 D13
Столбец 2 D14
Столбец 3 D15

В программном обеспечении я использовал библиотеку от Марка Стэнли и Александра Бревига, которая выпущена под лицензией GNU General Public License. Для проекта мы сопоставим функции с кнопками, как показано ниже.

Назначение кнопок для управления радиоприемником

Назначение кнопок клавиатуры:

  • AM: переключить в режим AM (средние волны), диапазон 22;
  • FM: переключить в режим FM (ультракороткие волны), диапазон 8;
  • SW: переключить в режим SW (короткие волны), диапазон 31.

Обратите внимание, что стандартные диапазоны для изменения режима настраиваются в программе и легко могут быть изменены. Кроме того, текущие значения громкости и тона будут перенесены в новый режим.

  • Vol+ / Vol- : Увеличить или уменьшить громкость на один шаг. Есть 64 уровня громкости. Поскольку в проекте используются колонки со встроенным усилителем, эти кнопки не сильно важны, но их наличие всё равно радует;
  • Band+/Band- : Изменение диапазона на один шаг, но из числа доступных в текущем режиме;
  • B/T+ / B/T- : Увеличить или уменьшить тон на один шаг. Я признаю, что несколько вольно использую термин «тон». Для режима FM это увеличит или уменьшит уровень низких частот от 0 (макс. бас) до 8 (макс. высокий). Для режимов AM/SW это установит канальный фильтр от 1 до 7. Фильтры составляют 1.0 кГц, 1.8 кГц, 2.0 кГц, 2.5 кГц, 2.83 кГц, 4.0 кГц и 6.0 кГц соответственно. Также обратите внимание, что для простоты и удобства программирования (т.е. лени) в режимы AM/SW могут быть добавлены уровни 0 и 8, но они не будут отличаться от уровней 1 и 7 соответственно;
  • Mute: Включить или выключить звук на выходе.

Добавление дисплея

Теперь, когда у нас есть устройство ввода, нам необходима возможность отображать настройки радиоприемника. Я не смог придумать ничего лучше, чем использовать дисплей от старых мобильных телефонов Nokia 5110/3310.

Дисплей Nokia 5110/3310

При работе с этим дисплеем необходимо учитывать два важных момента. Во-первых, существует несколько разновидностей этих дисплеев, и у них могут быть разные распиновки.

Вы должны проверить распиновку на своем дисплее, убедиться, что он на самом деле работает от 3,3 В, и проверить правильность подключения к Arduino Pro Mini.

Во-вторых, поскольку все входы/выходы Arduino используют напряжение 3,3 В, мне не пришлось использовать понижающие резисторы, которые вы обычно видите, когда эти дисплеи используются 5-вольтовыми платами Arduino, например, Uno.

Подключение дисплея Nokia 5110/3310 к Arduino

Вывод дисплея / НазначениеВывод Arduino или точка на схеме
1-RST D3
2-CE D4
3-DC D5
4-DIN D6
5-CLK D7
6-VCC Vcc (3.3v)
7-LIGHT GND
8-GND GND

В программе я решил использовать библиотеку LCD5110_Basic, которая быстра и очень проста в использовании.

На рисунке ниже показан заполненный данными дисплей радиоприемника.

Дисплей Nokia 5110/3310 при использовании в радиоприемнике (на скриншоте некорректно показаны единицы измерения частоты mHz, в прошивке это исправлено MHz)

Начиная с левого верхнего угла, мы показываем:

  • строка 1 – режим (AM/FM/SW) и номер диапазона;
  • строка 2 – частотный диапазон;
  • строка 3 – уровни громкости и баса/тембра;
  • строка 4 – текущая частота (МГц или кГц);
  • строка 1 – индикаторы стерео (только для FM) и выключения звука (если активно).

Разумеется, эта информация постоянно обновляется, чтобы показывать изменения в настройках или вводе с клавиатуры.

Собранный радиоприемник

Ниже представлен собранный на макетной плате проект радиоприемника – возможно, не такой аккуратный, каким мог бы быть (хорошо, здесь полный бардак), но полностью рабочий. Конечно, качество его работы можно улучшить только с помощью окончательной сборки.

Макет радиоприемника на Arduino

Программное обеспечение для запуска приемника доступно для загрузки ниже. Оно снабжено комментариями и, надеюсь, легко понятно и при необходимости легко модифицируется.

Читайте также:  Ардуино термометр ds18b20: схемы соединения, код проекта

Основной цикл программы очень прост. Он (1) проверяет и отображает любое изменение частоты приемника и (2) проверяет, выполнено ли нажатие клавиши, и, если да, выполняет соответствующую команду.

Остальная часть программы состоит из вспомогательных функций.

Я был очень впечатлен качеством приема с учетом того, что это просто макет. В FM всё очень хорошо. На средних волнах тоже всё нормально, и я смог принять довольно много сигналов на коротких волнах. Тем не менее, качество приема может быть улучшено за счет использования нормальных антенн.

Заключение

Это был сложный и приятный проект. Я определенно поражен микросхемой Si4844-A10 и ее возможностями. Этот проект только слегка затронул её функционал и может послужить основой чего-то для более сложного.

Код программ

Оригинал статьи:

  • Raymond Genovese. Build an Arduino-Controlled AM/FM/SW Radio

Arduino Pro Mini

Отладочная плата Arduino Pro Mini построена на микроконтроллере ATmega328.

Она имеет 14 цифровых входных/выходных выводов (6 из которых могут использоваться в качестве ШИМ выходов), 6 аналоговых входов, кварцевый резонатор, кнопку перезагрузки и отверстия для монтажа выводных разъемов. Шестипиновый разъем может быть подключен к FTDI кабелю для подачи питания от USB и для установки связи с платой. Arduino…

LCD дисплей Nokia 5110

Модуль состоит из печатной платы, на которой размещен графический жидкокристаллический индикатор Nokia 5110 на базе контроллера PCD8544 фирмы Philips. Разрешение экрана: 84×48 точек. Интерфейс управления: SPI.

Мембранная клавиатура 4×3

Матричная мембранная клавиатура 4×3.

Источник: https://radioprog.ru/post/232

Радио на Arduino

Сейчас куда не глянь, везде используют Arduino. Так как эта область мне интересна уже некоторое время, решил все же освоить эту платформу. Для этой цели отлично подошла плата Arduino Nano, а именно версии 3.0 (на основе микроконтроллера Atmega328p) – действительно очень небольшой размер.

Удивили кварцевые резонаторы на плате размером 1 мм х 3 мм, причем уже с конденсаторами небольшой емкости. Плату заказывал из Китая с преобразователем USB – UART на микросхеме CH340. Этот вариант более дешевый, чем по сравнению с FT232, но никаких проблем я не вижу, только другие драйвера необходимо устанавливать – специальные для CH340 / 341.

В остальном все полностью идентично оригинальным платам Arduino.

Итак, для работы с Arduino нам необходимо установить софт Arduino, посредством которого можно написать код прошивки (прошивка для Arduino называется скетч) и там же в одно нажатие загрузить ее в микроконтроллер.

Прошивка происходит через UART (для чего и нужен USB – UART преобразователь), это особенность платформы Arduino, что позволяет без программатора записывать скетчи. На самом деле удобно, а еще достаточно быстро.

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

К слову скетчи компилируются при помощи все того же священного GCC, хотя язык написания программ слегка видоизменен, это уже как бы не Си, но все подчиняется законам языка программирования Си, Си++. Интерфейс софта крайне минималистичен, работает шустро, свои функции выполняет хорошо, а больше и не нужно.

Таким образом, чтобы опробовать платформу Arduino, было решено создать небольшой проект, а именно радио с управлением через персональный компьютер. В итоге родилась схема, по которой собираем устройство:

Сразу стоит отметить, что по желанию схему можно минимизировать, но об этом чуть позже. В основе схемы заложена плата Arduino Nano 3.0.  На ней же имеется микроконтроллер само собой и интерфейс USB для подключения к компьютеру на основе микросхемы CH340. Это позволит нам обмениваться информацией с компьютером.

Дальше я использовал модуль согласования уровней I2C для безопасной работы с модулем радио RDA5807M, который работает от напряжения 3 (3,3) вольта. На модуле согласования уровней I2C помимо транзисторов расположен стабилизатор напряжения на 3,3 вольта, поэтому на схеме этот стабилизатор также присутствует.

Другим вариантом может быть использование просто транзисторов для согласования уровней, либо применить специализированную микросхему, например PCA9517 или аналогичные. Тогда стабилизатор напряжения VR1 можно исключить из схемы, а напряжение 3,3 вольта брать от платы Arduino.

Резисторы R3, R4 и R5, R6 необходимы для корректной работы интерфейса I2C, образуя высокий уровень на линиях передачи данных. Номинал можно варьировать в разумных пределах. Как это хорошо видно, в качестве FM тюнера используется модуль на основе RDA5807M.

Здесь, как минимум в моем случае в городских условиях (много шума от бытовых приборов, бетонные стены и так далее), необходима антенна достаточной длинны, чтобы сигнал принимался более уверенно, кроме того такую антенну желательно расположить ближе к окну, например, чтобы сигнал ловился наименее заглушенный.

Звуковой выход модуля радио соединяется с усилителем звуковой частоты на микросхеме PAM8403. Это усилитель D-класса, мощность до 3 Ватт. По качеству звучания достаточно неплох. Цепь усилителя звуковой частоты построена в соответствии с даташитом. Кроме того, уже готовый модуль можно приобрести (как на фото) и использовать при построении подобных схем. Модуль собран по такой же схеме.

Переменные резисторы R7 и R8 регулируют уровень громкости, желательно использовать вообще один сдвоенный резистор. Динамики лучше всего использовать сопротивлением не менее 8 Ом, чтобы не перегружать USB порт компьютера или ноутбука.

При нагрузке в 8 Ом, согласно даташиту, выходная мощность составит 1,4 – 1,8 Вт, что укладывается в стандартную мощность USB порта. Хотя на этот счет можно возразить тем, что современные компьютеры давно вышли из рамок 500 мА на порт и могут выдавать больше на самом деле.

При подключении динамиков сопротивлением 4 Ом выходная мощность составит 2,5 – 3,2 Вт, что при учете потребления всей схемы не уложится в 500 мА.

Схема собрана на безпаечной плате с применением модулей (шилдов):

При сборке макета из-за отсутствия второго динамика использовался только один правый канал аудио и соответственно один переменный резистор для регулировки звука.

Раз уж схема настраивается посредством софта на компьютере, то и усилитель с динамиками можно выбросить из схемы и подключать либо напрямую к колонкам, либо через аудио разъем подключиться к входу аудио аудиокарты компьютера (обычно это вход для микрофона) и в настройках разрешить выводить звук на колонки.

Можно выбрать любой, удобный для вас способ получения звука от радио. В случае, если подключать к колонкам, резисторы, регулирующие громкость R7 и R8, также можно исключить, так как громкость регулируется либо на самих колонках, либо через Windows.

Третий вариант это регулировка уровня громкости через настройки радио модуля, но пока что этой функции нет в софте.

Софт, необходимый для поиска станций радио (скачать можно в конце статьи):

С платой Arduino соединяется через USB – UART преобразователь (он уже является частью платы Arduino).

В программке соответственно присутствуют настройки выбора COM порта. Поиск станций осуществляется ползунком. Данные по UART передаются в виде номера канала для модуля радио.

Получив эти данные, Arduino сохраняет последний полученный канал радио в память EEPROM и при следующем включении используются параметры, сохраненные в энергонезависимой памяти микроконтроллера.

То есть можно один раз настроить через компьютер на любимую станцию (если вдруг вы любитель послушать радио) и включать уже без него – последняя станция будет всегда сохранена. Программа написана на C# в Visual Studio при помощи Windows Forms.

В данной разработке не преследовалось целей сделать что-то супер функциональное, это скорее некоторый опыт работы на основе Arduino со всеми вытекающими последствиями.

К статье прилагается скетч для Arduino, программа FM для настройки станций, видео работы устройства.

Скачать список элементов (PDF)

Прикрепленные файлы:

Источник: http://cxem.net/arduino/arduino171.php

Arduino: FM-радиомодуль на микросхеме RDA5807m

разделы: Arduino , RDA5807M , дата: 2 апреля 2017г

Данный модуль на Али торгуется по цене около 20р, и представляет собой полноценный сканирующий радиоприемник FM диапазона с управлением по I2C интерфейсу.

Здесь я расскажу как по-быстрому проверить его работоспособность с помощью Arduino, а также поделюсь той информацией о чипе, что мне известна на данный момент.

    На официальном сайте производителя заявлены следующие возможности чипа:

  1. CMOS single-chip fully-integrated FM tuner
  2. Low power consumption
  3. Support worldwide frequency band
  4. Support flexible channel spacing mode
  5. Support RDS/RBDS
  6. Digital low-IF tuner
  7. Fully integrated digital frequency synthesizer
  8. Autonomous search tuning
  9. Support 32.768KHz crystal oscillator
  10. Digital auto gain control (AGC)
  11. Digital adaptive noise cancellation
  12. Programmable de-emphasis (50/75 μs)
  13. Receive signal strength indicator (RSSI) and SNR
  14. Bass boost
  15. Volume control and mute
  16. Line-level analog output voltage
  17. 32.768 KHz 12M,24M,13M,26M,19.2M,38.4MHz Reference clock
  18. Only support 2-wire bus interface
  19. Directly support 32Ω resistance loading
  20. Integrated LDO regulator
  21. MSOP-10pins

Говоря по-русски, здесь нам обещают управление через I2C интерфейс(400KHz). Поддержку приема текстовых сообщений – RDS/RBDS(последний формат используется исключительно в США). Работа от часового кварца.

Возможность прямого подключения 32-омных(плеерных) наушников. Индикация уровня сигнала – RSSI. Несколько диапазонов FM: Западная Европа, Восточная Европа, Япония, всемирный диапазон). Частотная коррекция(de-emphasis).

Авто-регулировка усиления.

Чип предназначен для использования в сотовых телефонах, автомагнитолах, планшетах, ноутбуках, MP3 и MP4 плеерах.

Однако скачать datasheet с официального сайта не получится. Это видимо особенность всего китайского бизнеса(попробуйте найти datasheet на ESP8266). Неофициальное руководство на английском можно скачать например здесь.

Шина I2C формируется двумя подтягивающими резисторами. Если подключить к модулю питание и воспользоваться мультиметром, то на SDA и SCL можно будет наблюдать высокий потенциал. Это значит, что подтягивающие резисторы для формирования I2C шины не нужны, они уже есть и работают.

Если запустить сканер I2C шины, то обнаружатся три устройства с адресам: 0x20, 0x22, 0xC0. При обращении по адресу 0xC0, устройство работает в режиме совместимости чипа NXP TEA5767.

При обращении по адресу 0x20 устройство работает в режиме блочной записи/чтения. В этом режиме, в начале I2C сессии, указатель адреса при записи автоматически сбрасывается в значения 0x02, при чтении он устанавливается в 0х0А. Если счетчик адреса достигает значения 0x3A, то после он сбрасывается в ноль. Счетчик адреса автоматически увеличивается на единицу при обращении к регистрам.

Регистры 16-битные. Всего функциональных регистров двенадцать: c 0x02 по 0x0F.

При обращении по адресу 0x22 доступен режим произвольного доступа с регистрам. В таком случае протокол работы походит на DS1307, за тем исключением, что регистры двух-байтные, и при операциях записи чтения сначала записывается/читается старший байт регистра, а потом младший. В остальном все тоже самое:

запись произвольного регистра в RDA5897M: 1)начало сессии: формируется START
2)запись байта : посылается адрес 0x22
3)запись байта : посылается адрес записываемого регистра
4)запись байта : записывается старший байт регистра
5)запись байта : записывается младший байт регистра
6)завершение сессии: формируется STOP чтение произвольного регистра в RDA5897M: 1)начало сессии: формируется START
2)запись байта : посылается адрес 0x22
3)запись байта : посылается адрес считываемого регистра
4)завершение сессии: формируется STOP 5)начало сессии: формируется START
2)запись байта : посылается адрес (0x22 + 0х01) // режим чтения
4)чтение байта : считывается старший байт регистра
5)чтение байта : считывается младший байт регистра
6)завершение сессии: формируется STOP

Замечу, что в “неофициальном руководстве” режим произвольного доступа к регистрам не рассматривается.

Карта регистров устройства:

Если подключить к чипу только лишь питание, то так проверить его работоспособность не получится. Чип будет молчать, даже белого шума не услышите. Включить его можно только через I2C интерфейс.

Если на гитхабе в строке поиска ввести rda5807m, то первым выпадет проект за авторством csdexter:

Это библиотека для Arduino. Скачав ZIP архив и распаковав его в папку Arduino/libraries, следует загрузить единственный пример содержащийся в библиотеке:

Это программа управления радиоприемником через UART. Т.к автор, судя по всему из Северной Америки, нам нужно поменять диапазон частот на RDA5807M_BAND_WORLD, чтобы можно было слушать FM диапазон. Там еще есть диапазон RDA5807M_BAND_EAST, т.е. Восточная Европа, но это УКВ диапазон, на котором сейчас никто не вещает.

В README проекта сказано, что т.к. модуль на 3.3V, то подключать его к Arduino следует через преобразователь логических уровней. Но за насколько дней подключения напрямую, у меня с модулем ничего не случилось. Можно сделать вывод, что I2C порт модуля устойчив к 5V логике. Т.о. подключение модуля к Arduino такое:

RDA5807M Arduino GND

После подключения модуля к Arduino и загрузки скетча в микроконтроллер, в наушниках будет такой звук: “Пииииуууу”. Это нормально. Радио включилось, теперь нужно найти радиостанцию.

Управляется модуль через последовательный порт. Послав знак вопроса можно получить подсказку по командам:

По команде s должна найтись станция, и наконец-то пойти звук. Командой f можно напечатать частоту станции, а командой q можно посмотреть уровень приема.

Читайте также:  Поделки с микроконтроллерами avr: примеры решений

Можно немного доработать конструкцию добавив обработку нажатия трех кнопок, для управления радиоприемником без компьютера. Схему подключения кнопки можно найти здесь: Практическое программирование Arduino/CraftDuino – цифровой ввод – кнопка

Модифицированный скетч:

87 102.0 3.3 “proper”
2f 6″ breadboard jumper wire too. USING THE SKETCH:
Once you've connected the RRD-102 to your Arduino board (and antenna(s), as
appropriate), connect the Arduino to your computer, select the corresponding
board and COM port from the Tools menu and upload the sketch. After the sketch
has been updated, open the serial terminal using a 9600 baud speed. The sketch
accepts single character commands (just enter the character and press 'send').
Here is a list of the acceptable commands:
v/V – decrease/increase the volume
s/S – seek down/up with band wrap-around
m/M – mute/unmute audio output
f – display currently tuned frequency
q – display RSSI for currently tuned station
t – display decoded status register
? – display this list #define BTN_1 12
#define BTN_2 11
#define BTN_3 10 #include #include RDA5807M radio; char command;
word status, frequency; void setup()
{ pinMode(BTN_1, INPUT); Serial.begin(9600); radio.begin(RDA5807M_BAND_WORLD);
} void loop()
{ if(Serial.available()){ command = Serial.read(); switch(command){ case 'v': if(radio.volumeDown()) Serial.println(F(“Volume decreased”)); else Serial.println(F(“ERROR: already at minimum volume”)); Serial.flush(); break; case 'V': if(radio.volumeUp()) Serial.println(F(“Volume increased”)); else Serial.println(F(“ERROR: already at maximum volume”)); Serial.flush(); break; case 's': Serial.println(F(“Seeking down with band wrap-around”)); Serial.flush(); radio.seekDown(); break; case 'S': Serial.println(F(“Seeking up with band wrap-around”)); Serial.flush(); radio.seekUp(); break; case 'm': radio.mute(); Serial.println(F(“Audio muted”)); Serial.flush(); break; case 'M': radio.unMute(); Serial.println(F(“Audio unmuted”)); Serial.flush(); break; case 'f': frequency = radio.getFrequency(); Serial.print(F(“Currently tuned to “)); Serial.print(frequency / 100); Serial.print(“.”); Serial.print(frequency % 100); Serial.println(F(“MHz FM”)); Serial.flush(); break; case 'q': Serial.print(F(“RSSI = “)); Serial.print(radio.getRSSI()); Serial.println(“dBuV”); Serial.flush(); break; case 't': status = radio.getRegister(RDA5807M_REG_STATUS); Serial.println(F(“Status register {“)); if(status & RDA5807M_STATUS_RDSR) Serial.println(F(“* RDS Group Ready”)); if(status & RDA5807M_STATUS_STC) Serial.println(F(“* Seek/Tune Complete”)); if(status & RDA5807M_STATUS_SF) Serial.println(F(“* Seek Failed”)); if(status & RDA5807M_STATUS_RDSS) Serial.println(F(“* RDS Decoder Synchronized”)); if(status & RDA5807M_STATUS_BLKE) Serial.println(F(“* RDS Block E Found”)); if(status & RDA5807M_STATUS_ST) Serial.println(F(“* Stereo Reception”)); Serial.println(“}”); Serial.flush(); break; case '?': Serial.println(F(“Available commands:”)); Serial.println(F(“* v/V – decrease/increase the volume”)); Serial.println(F(“* s/S – seek down/up with band wrap-around”)); Serial.println(F(“* m/M – mute/unmute audio output”)); Serial.println(F(“* f – display currently tuned frequency”)); Serial.println(F(“* q – display RSSI for current station”)); Serial.println(F(“* t – display decoded status register”)); Serial.println(F(“* ? – display this list”)); Serial.flush(); break; } } int val = digitalRead(BTN_1); if(val==HIGH) { Serial.println(F(“Seeking down with band wrap-around”)); Serial.flush(); radio.seekDown(); } val = digitalRead(BTN_2); if(val==HIGH) { if(radio.volumeDown()) Serial.println(F(“Volume decreased”)); else Serial.println(F(“ERROR: already at minimum volume”)); Serial.flush(); } val = digitalRead(BTN_3); if(val==HIGH) { if(radio.volumeUp()) Serial.println(F(“Volume increased”)); else Serial.println(F(“ERROR: already at maximum volume”)); Serial.flush(); } delay(100); }

Здесь первая кнопка дублирует команду s, вторая – v, третья – V. Если стереовыход подключать к компьютерной аккустике, то вторая и третья кнопки будут не нужны. Уровень громкости можно будет регулировать на самой аккустике.

Выглядит все это как-то так:

Теперь Arduino можно запитать от обычной зарядки от телефона. Минимальный FM приемник готов.

поделиться:

Источник: http://www.count-zero.ru/2017/rda5807m/

TEA5767 стерео FM радио модуль

TEA5767 стерео FM радио модуль.

Модуль TEA5767 FM Stereo Radio

Позволяет собрать цифровой стерео радиоприемник УКВ-FM диапазона. Управление режимами работы выполняется микроконтроллером по шине I2C соединяемой с контактами модуля.

Модуль TEA5767 FM Stereo Radio работает совместно с модулем микроконтроллера собственного изготовления или распространенных модулей Arduino, Raspberry Pi и других марок. Основной компонент микромодуль с использованием микросхемы TEA5767 ф. NXP.

На выходе УКВ приемника установлена микросхема звуковой усилитель для наушников TDA1308.  Имеется индикатор питания. Работа УКВ приемника показана в видеофрагменте.

Характеристики

Напряжение питания 5 В Диапазон принимаемых частот 76–108 МГц Принимает частотно модулированный сигнал Сопротивление подключаемых наушников 32 Ом

Размеры платы 30 х 31 мм

Контакты

Модуль содержит гнезда для установки штекеров диаметром 3,5 мм. Подключаются антенна и наушники. Для подключения питания и информационной шины используются штыревые контакты.

Первое включение

Соедините модуль TEA5767 FM Stereo Radio как изображено на рисунке с микроконтроллерным модулем Arduino UNO.

В программном пакете Arduino IDE есть специальная библиотека для работы с этим модулем. Она имеет единственную функцию – отправить в модуль TEA5767 FM Stereo Radio частоту приема. Загрузите в Arduino UNO программу, приведенную ниже с указанием требуемой частоты приема.

#include #include TEA5767Radio radio = TEA5767Radio(); void setup() { Wire.begin(); radio.setFrequency(105.0); //Здесь укажите частоту вещания принимаемой радиостанции в МГц } void loop() {

}

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

Полезные сведения

Адрес модуля на шине I2C имеет значение 0x60. Команды передаваемые модулю TEA5767 по шине I2C представляют собой последовательность из пяти байт.
Приемник имеет предустановленные настройки для получения звукового сопровождения телевещания Японии на частоте 108 МГц.

Цифровой УКВ приемник TEA5767 может работать в режиме поиска радиостанции. Поиск останавливается, когда обнаружена станция, имеющая уровень сигнала выше заданного порогового значения. В случае приема слабого сигнала происходит переключение из режима стерео в режим моно.

Купить TEA5767 стерео FM радио модуль за $$3.63

  • FS8205A DW01 .
  • Рации RETEVIS RT628 0.5 Вт UHF 446 МГц

Источник: http://alielectronics.net/2016/09/11/tea5767-stereo-fm-radio-modul/

Радиоприёмник своими руками

Простейшие радиоприемники непригодны ловить FM диапазон, модуляция частотная. Обыватели утверждают: отсюда повелось название. С английского литеры FM трактуем: частотная модуляция. Четко выраженный смысл, читателям важно понять: простейший радиоприемник, своими руками собранный из хлама, FM не примет.

Возникает вопрос необходимости: сотовый телефон ловит вещание. В электронную аппаратуру встроена подобная возможность. Вдали от цивилизации люди по-прежнему хотят ловить вещание старым добрым способом — чуть было не сказали зубными коронками — конструировать дельные приборы прослушивания любимых передач.

На халяву…

Детекторный простейший радиоприемник: основы

Зубных пломб рассказ коснулся неспроста. Сталь (металл) способна преобразовывать эфирные волны в ток, копируя простейший радиоприемник, челюсть начинает вибрировать, кости уха детектируют сигнал, зашифрованный на несущей. При амплитудной модуляции высокая частота повторяет размахом голос диктора, музыку, звук.

Полезный сигнал содержит некоторый спектр, сложно пониманию непрофессионала, важно, что при сложении составляющих получается некоторый закон времени, следуя которому, динамик простейшего радиоприемника воспроизводит вещание. На провалах челюстная кость замирает, воцаряется тишина, пики ухо слышит.

Простейший радиоприемник, не дай Бог, конечно, заиметь.

Советский Союз славился запуском космической ракеты, впереди планеты всей, научными изысканиями. Времена Союза поощряли степени. Светила принесли немало пользы здесь, – конструирование радиоприемников, – зарабатывают приличные деньги за бугром.

Фильмы пропагандировали умных, не зажиточных, неудивительно, что журналы полны различными наработками. Серия современных уроков создания простейших радиоприемников, доступная на Ютубе, основывается на журналах 1970 года издания.

Поостережемся отходить от традиций, опишем собственное видение ситуации сферы радиолюбительства.

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

Справедливости ради скажем, фокус пройдет со старыми добрыми Д2 советского выпуска, отводы настолько массивные, что послужат антенной. Землю получим в простейшем радиоприемнике, прислонив одну ножку радиоэлемента к батарее отопления, зачищенной от краски.

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

Авторы ролика заметили: сигнал вроде есть, представлен невообразимой мешаниной шорохов, осмысленных звуков. Простейший радиоприемник лишен избирательности. Любой может понять, осознать термин. Когда настраиваем приемник, ловим нужную волну.

Помните, обсуждали спектр. Эфире содержит ватагу волн одновременно, поймаете нужную, сузив диапазон поиска. Существует в простейшем радиоприемнике избирательность. На практике реализуется колебательным контуром.

Известен из уроков физики, сформирован двумя элементами:

  • Конденсатор (емкость).
  • Катушка индуктивности.

Повременим изучать подробности, элементы снабжены реактивным сопротивлением. Благодаря чему волны различной частоты имеют неодинаковое затухание, проходя мимо. Однако существует некий резонанс.

У конденсатора реактивное сопротивление на диаграмме направлено в одну сторону, у индуктивности – в другую, причем выведена зависимость частотная. Оба импеданса вычитаются. На некоторой частоте составляющие уравниваются, реактивное сопротивление цепочки падает до нуля.

Наступает резонанс. Проходят избранная частота, примыкающие гармоники.

Курс физики показывает процесс выбора ширину полосы пропускания резонансного контура. Определяется уровнем затухания (3 дБ ниже максимума). Приведем выкладки теории, руководствуясь которыми человек может собрать простейший радиоприемник своими руками.

Параллельно первому диоду добавляется второй, включенный навстречу. Впаивается последовательно наушникам. Антенна отделяется от конструкции конденсатором емкостью 100 пФ.

Здесь заметим: диоды наделены емкостью p-n-перехода, умы, видимо, просчитали условия приема, какой конденсатор входит в простейший радиоприемник, наделенный избирательностью.

Полагаем, несильно отклонимся от истины, сказав: диапазон затронет области КВ или СВ. Будет приниматься несколько каналов. Простейший радиоприемник является чисто пассивной конструкцией, лишенной источника энергии, больших свершений ждать не следует.

ДВ, СВ и КВ ловятся на значительном удалении, сигнал будет слабым. Следовательно, простейший радиоприемник, рассмотренный выше, является пробным камнем.

Простейший радиоприемник с усилением

В рассмотренной конструкции простейшего радиоприемника нельзя применять низкоомные наушники, сопротивление нагрузки напрямую определяет уровень передаваемой мощности. Давайте сначала улучшим характеристики, пользуясь помощью резонансного контура, затем дополним простейший радиоприемник батарейкой, создав усилитель низкой частоты:

  • Избирательный контур состоит из конденсатора, индуктивности. Журнал рекомендует в простейший радиоприемник включить переменный конденсатор диапазона подстройки 25 — 150 пФ, индуктивность необходимо изготовить, руководствуясь инструкцией. Ферромагнитный стержень диаметром 8 мм обматывается равномерно 120 витками, захватывающими 5 см сердечника. Подойдет медный провод, покрытый лаковой изоляцией, диаметром 0,25 – 0,3 мм. Приводили читателям адрес ресурса, где посчитаете индуктивность, вводя цифры. Аудитории доступно самостоятельно найти, пользуясь Яндексом, вычислить, количество мГн индуктивности. Формулы подсчета резонансной частоты также общеизвестны, следовательно, можно, оставаясь у экрана, представить канал настройки простейшего радиоприемника. Обучающее видео предлагает изготовить переменную катушку. Необходимо внутри каркаса с намотанными витками проволоки выдвигать, вдвигать сердечник. Положения феррита определяет индуктивность. Диапазон посчитайте, воспользовавшись помощью программы, умельцы Ютуба предлагают, наматывая катушку, каждые 50 витков делать выводы. Поскольку отводов порядка 8-ми, делаем вывод: суммарное число оборотов превышает 400. Индуктивность меняете скачкообразно, точную подстройку ведете сердечником. Добавим к этому: антенна для радиоприемника развязывается с остальной схемой конденсатором емкостью 51 пФ.
  • Второй момент, который нужно знать, это то, что в биполярном транзисторе также имеются p-n-переходы, и даже два. Вот коллекторный как раз и уместно использовать вместо диода. Что касается эмиттерного перехода, то заземляется. Затем на коллектор прямо через наушники подается питание постоянным током. Рабочая точка не выбирается, поэтому результат несколько неожиданный, понадобится терпение, пока устройство радиоприемника будет доведено до совершенства. Батарейка тоже в немалой степени влияет на выбор. Сопротивление наушников считаем коллекторным, которое задает крутизну наклона выходной характеристики транзистора. Но это тонкости, например, резонансный контур тоже придется перестроить. Даже при простой замене диода, не то что внедрении транзистора. Вот почему рекомендуется вести опыты постепенно. А простейший радиоприемник без усиления у многих вовсе не будет работать.

А как сделать радиоприемник, который бы допускал использование простых наушников. Подключите через трансформатор, наподобие того, что стоит в абонентской точке. Ламповый радиоприемник отличается от полупроводникового тем, что в любом случае требует питания для работы (накал нитей).

Вакуумные приборы долго выходят на режим. Полупроводники готовы сразу же принимать. Не забывайте: германий не терпит температур выше 80 градусов Цельсия. При необходимости предусмотрите охлаждение конструкции. На первых порах это нужно, пока не подберете размер радиаторов. Используйте вентиляторы из персонального компьютера, процессорные кулеры.

Источник: https://VashTehnik.ru/radioapparatura/radiopriyomnik-svoimi-rukami.html

WiFi интернет радиоприемник для ванной с фоторезистором

  • Интернет радиоприемник на ESP8266 Ардуино open source:
  • Включается / выключается с помощью света. Как только свет в ванной включается начинает играть.
  • Таймер для отключения на ночь.

    Синхронизация времени по NTP-серверу

  • Начинает воспроизводить музыку моментально, благодаря постоянной готовности
  • Органы управления: 2 кнопки 1 регулятор громкости
  • Низкое энергопотребление по сравнению с Raspberry Pi
  • 3 модуля ESP8266, VS1053B, PAM8403
  • Бюджет 11,58€ (Aliexpress).
  • Исходный код на Arduino
  • Может проигрывать 101.

    ru онлайн радио

Может воспроизводить аудиофайлы MP3 или Ogg до 320 кбит / с Может воспроизводить MP3 файлы с любого сервера 100 Интернет-радиостанций могут быть сохранены в файле конфигурации Файл конфигурации можно редактировать через веб-интерфейс Файл конфигурации можно загрузить через веб-интерфейс Может управляться через последовательный интерфейс RS232 (TTL) Автоматически выбирается самая сильная доступная сеть Wi-Fi 20kB кольцевой буфер для плавного воспроизведения Уровни низких и высоких частот настраиваются в конфигурационном файле Синхронизирует время с NTP — сервером Автоматическое переключение летнего / зимнего времени Включается при включении света в помещении с помощью фоторезистора Управление светом с помощью фоторезистора автоматически отключается на ночь по таймеру Выключение усилителя с помощью MUTE сигнала для бесшумной работы в режиме ожидания Может воспроизводить станции iHeartRadio

Может воспроизводить станции 101.ru

Я хотел бы представить свой проект WiFi интернет радиоприемник для ванной комнаты

Программное обеспечение для ESP8266 Arduino было разработано Edzelf и было взято из этого проекта. Я всего лишь изменил концепцию управления и адаптировал радио для работы в ванной комнате. Включение выключение интернет радиоприемника зависит от освещенности в комнате. То есть я установил сенсор освещенности – фоторезистор.

Также добавил синхронизацию времени по ntp и возможность воспроизведения интернет радиостанции 101.ru Когда я захожу в ванную комнату должна начинать играть легкая музыка. Когда я выхожу из ванной музыка должна автоматически выключаться. Эту идею я подсмотрел в одном отеле в Болгарии.

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

В отличие от проектов интернет радио плееров с Raspberry Pi (малинкой), этот самодельный Wi-Fi радиоприемник намного дешевле. Стоимость компонентов составляет всего 11,58 € (с Aliexpress). И, конечно же есть преимущество в том, что вам не нужен Linux, только с помощью знаний Arduino вы можете вносить свои изменения.

Кроме того, такое ESP-радио потребляет намного меньше электроэнергии, чем Raspberry Pi радиоприемник, а также он запускается намного быстрее. В этом интернет радиоприемнике ESP8266 всегда готов к работе и подключен к Wi-Fi и начинает воспроизводить онлайн-радио, моментально после включения лампы в ванной комнате.

Потребляемая мощность в режиме ожидания составляет 130 мА. С wi-fi интернет радио на Raspberry Pi, это было бы проблематично, потому что, либо Raspberry Pi полностью загружен операционной системий и использует много энергии, либо выключен, но тогда загрузка занимает довольно много времени.

Принципиальная электрическая схема цифровая часть

Регулятор громкости

В качестве регулятора громкости может быть использован любой потенциометр в диапазоне 1 кОм … 100 кОм. Он подключается между между питанием 3,3 В и масой. Напряжение с потенциометра считывается преобразователем AD-преобразователем (контакт A0). Чтобы значение не прыгало назад и вперед, в программу введён гистерезис 5.

Практика показала, что по-прежнему необходим электронный фильтр. Самый простой способ для меня – припаять SMD конденсатор 200 нФ непосредственно к плате D1 mini WEMOS. Конденсатор припаивается прямо поверх резистора напротив ножки D0.

Если вы не хотите этого делать, вы можете также присоединить такой RC-фильтр, между входом A0 и массой конденсатор 1 мкФ, и резистор 10 кОм между потенциометром и входом А0.

LDR подключен настолько странно по той причине, что порт D8 должен иметь обязательно низкий уровень во время загрузки модуля ESP. Схема LDR работает следующим образом: D8 переключается как выход и выдает 3,3 В, конденсатор заряжается, затем D8 переключается как вход и проверяет, остается ли напряжение на конденсаторе. Чем больше света попадает на LDR, тем быстрее разряжается конденсатор. Для меня было очень важно, чтобы не было слышно ни малейшего шума, пока WiFi интернет радиоприемник для ванной находится в режиме ожидания. Все усилители создают немного фонового шума при отсутствии сигнала. Единственный способ избавиться от этого шума – отключить усилитель. Для этого нам нужен сигнал. Но все GPIO в ESP8266 заняты. На D1 mini WeMos NodeMcu установлен ESP8266-12F, и у него еще есть дополнительные GPIO. Мне удалось использовать GPIO10 для этой функции.
Я прочитал в Интернете, что некоторые ESP8266-12F (в зависимости от производителя) сбрасываются при переключении GPIO10. Если у вас так происходит, отключите эту функцию в строке 21.

Принципиальная электрическая схема аналоговая часть

Кстати, радиолюбители конструирующиe интернет-радиоприемник на VS1053 скрывают огромную проблему подключения усилителя к модулю VS1053B. Все подключают наушники или усилители с отдельным источником питания и довольны этим.

Проблема в том, что как только вы подключите усилитель с общей массой к модулю VS1053, вы услышите очень сильный цифровой шум, который даже заглушает полезный сигнал.

Контакт массы гнезда для наушников (GBUF) в соответствии с техническим паспортом не должны быть подключены к массе остальной цепи. Два часа я пробовал с различными фильтрами в аналоговый части и на линиях питания. Никакие фильтры не позволяют избавиться от этого шума.

Наконец, я нашел правильное ключевое слово в Интернете – «дифференциальные входы». Если подключить дифференциальный входной усилитель (например, TDA8932) к модулю VS1053, то цифровой шум исчезает полностю.

Секрет массы гнезда для наушников GBUF заключается в том, что он также передает шум с одинаковой полярностью. Таким образом, контакт массы гнезда для наушников GBUF должен быть соеденён с отрицательным входом усилителя, а звуковой сигнал должен быть соеденён с положительным входом усилителя. Я нашел окончательное решение проблемы цифрового шума здесь.

GBUF можно подключить к выходу VREF ножка 8 усилителя PAM8403. После этого цифровой шум полностью исчез. Когда это получилось я чуть не закричал Эврика. Усилитель меньшей фонет если GBUF и VREF соединять не на прямую а через конденсатор 25мФ…100мФ. Припяйте тонкий провод ко входу VREF ножка 8 микросхемы PAM8403. Эту ножку не надо отпаивать от платы. А вот ножка 5 MUTE должена быть отсоединена от платы и поднята вверх. R1, R3 и R2, R4 образуют делитель напряжения, который делит аудиосигнал на 2. Если максимального уровни громкости недостаточно, то удалите R3 и R4 (фон во время пауз также усилится). Конденсатор C4 470 мкФ должен быть установлен как можно ближе к модулю PAM8403, чтобы обеспечить максимальный ток для баса. Требования к источнику питания

Мои измерения показали, что при максимальной громкости при использовании динамика на 120 Вт потребляется 500 мА. Поэтому 5 В USB зарядка должна быть рассчитана на 1 А. Пожалуйста не заводите питание через через гнездо micro USB модуля WeMos. Он не может проводить столько мощности, и усилитель звука получает меньше напряжения из-за потерь микро-USB и зарядном кабеле.

Управление

Управление осуществляется с помощью двух кнопок и регулятора громкости. Кнопка 1 – следующая радиостанция, кнопка 2 – предыдущая радиостанция. Удерживя кнопку «следующая радиостанция» в течение 2 секунд вы выключите самодельный интернет радио плеер. Если wifi интернет радио выключено то его можно снова включить любой кнопкой.

Я сконструировал это интернет-радио для использования в ванной комнате. Для этой цели ESP радиоприемник включается и выключается с помощью светочувствительного датчика LDR. Когда вы войдете в ванную комнату и включите свет, ESP8266 Интернет Радио включиться , а когда вы выключите свет, интернет-радио на ESP8266 снова выключиться.

У вас также есть возможность автоматически отключать управление светом на ночь. Настройка времени, когда интернет-радио управляется светом, создается в файле «radio.ini».

В переменных «ldr_on_at = 8:00», «ldr_off_at = 21:30». Вы можете изменить файл «radio.

ini» через веб-интерфейс Ардуино радиоприемника ESP8266 или же редактировать его на своем компьютере, а затем загрузить его через веб-интерфейс.

Веб-интерфейс

Чтобы добраться до веб-интерфейса WiFi радиоприемника для ванной , вы должны сначала узнать IP-адрес интернет радиоприемника для ванной. Вы можете это сделать, открыв веб-страницу своего маршрутизатора и ищите WiFi-клиентов. Там вы найдете WiFi-устройство под названием «Esp-radio».

Лучше всего настроить маршрутизатор так, чтобы он всегда назначал один и тот же IP-адрес для «Esp radio». Теперь вы можете вызвать веб-сайт интернет- радиоприемника на ПК, планшет или мобильный телефон по IP-адресу. Через веб-интерфейс на странице „Control“ вы можете управлять веб радио плеером. Вы можете попробовать новые интернет-радиостанции в строке над кнопкой «Play».

Там вы можете указать ссылку на потоковое вещание (streaming link), ссылку на MP3 фаил, ссылку на плейлист, имя станции iHeartRadio или номер станции 101.ru онлайн-радио. На вкладке „Config“ вы можете отредактировать файл конфигурации «radio.ini» или загрузить его с ПК. Здесь вы можете также загрузить любой файл в SPIFF (файловая система ESP8266).

Могут быть загружены не только «radio.ini», но и небольшие MP3-файлы. Здесь также перечислены доступные сети Wi-Fi.

Если ESP8266 не сможет подключиться к Wi-Fi сети , ESP8266 стартует как WiFi Точка доступа с именем „Esp Radio“, и вам нужно будет подключиться к этой точке доступа. Пароль – «Esp-Radio». Затем можно связатся с ESP8266 Arduino радиоприемником по адресу http://192.168.4.1

Если вы еще не загрузили «radio.ini», вы можете сделать это через загрузку файла на странице „Control“.

Файл настроек

Файл конфигурации «radio.ini» находится в папке проекта в каталоге „data“.
Этот файл должен быть загружен в SPIFF (файловая система ESP8266), либо через Arduino IDE и Sketch Data Upload tool, или если вы уже загружаете скомпилированную прошивку с использованием пакетного файла (Batch-file), «radio.ini» будет автоматически преобразовываться в SPIFF и также загружаться.

В этом файле делаются все настройки. Там вы можете ввести несколько названий Wi Fi сетей и пароли, с которыми может связыватся самодельное wi-fi интернет радио: wifi_00 , wifi_01 , wifi_02. В строке 4 «debug = 1» вы можете включать и отключать режим отладки „debug = 1“.

В режиме отладки выдаются сообщения о состоянии и событиях проишодящих в Интернет-радио через последовательный интерфейс. В строках с параметрами «ldr_on_at» и «ldr_off_at» вы можете установить время начала и окончания управления радиоприемником через освещение (LDR). Там вы можете настроить когда будет работать автоматическое включение интернет-радио.

Есть елементарный эквалайзер . Вы можете настроить его здесь: Регулировка усиления высоты Установка частоты высоты Настройка усиления басов Настройка частоты басов Лучше сначала попробовать различные настройки через веб-интерфейс, как только вы найдете оптимальные значения, введите их в файл конфигурации.

В части конфигурационного файла “Presets” вы можете сохранить онлаин радиостанции и ссылки на MP3 / Ogg файлы для воспроизведения. Можно сохранить до 100 станций. Возможны следующие форматы: http://87.98.217.63:23490/stream — Ссылка на потоковое радио 87.98.217.63:23490/stream — Ссылка на поток без “http” www.rockantenne.de/webradio/rockantenne.

m3u — Ссылка на плейлист www.terrasound.de/wp-content/uploads/2016/04/funk_warte_terrasound.mp3 — Ссылка на MP3 файл ihr/IHR_IEDM — iHeartRadio-вебрадио 101/7 — 101.ru онлайн радио – число после косой черты – номер радиостанции.

Скачать Скомпилированную программу – готовая прошивка

Может быть напрямую загружена в микроконтроллер без Arduino IDE и знаний в области программирования. Вам нужен только кабель от сотового телефона. Tool для загрузки находится в ZIP-файле .

Скачать прошивку бинарник под ESP8266 интернет-радио для ванной комнаты D1 mini WeMos NodeMcu  -инструмент для загрузки прошивки и инструкция находятся в архиве. (Скомпилиеровано в Arduino версии 1.8.5, ESP8266 библиотека версии. 2.3.0).

Вы можете установить предварительные настройки для WiFi интернет радиоприемника для ванной в data / radio.ini. Например, введите данные доступа для вашей сети WiFi.

Скачать исходный код ардуино проект (скетч)

В ZIP-файле находится полный проект Arduino и необходимые библиотеки. Библиотеки должны быть скопированы в «папка с Arduino sketch/ libraries».
Скачать проект WiFi интернет радиоприемник для ванной своими руками -Sketch для ардуино, требуется библиотека Core for ESP8266 WiFi chip

Особенности при компиляции Установите скорость процессора 160 МГц

ВАЖНО, пожалуйста, используйте только библиотеку Arduino ESP8266 Версии 2.3.0 . Компиляция с версией 2.4.0 приводит к постоянной перезагрузке(надеюсь когда нибудь билиотеку исправят).

101.ru

Если вы нашли интересное веб-радио на 101.ru, найдите номер радиостанции, (http://101.ru/radio/channel/120 New Age). 120 – это номер станции.
С помощью записи 101/120 в разделе „Presets“ INI-файла вы можете сохранить эту радиостанцию, или через веб-интерфейс самодельного радиоприемника на вкладке „Control“ можете задать и послушать эту радиостанцию.

Команды управления

Команды управления могут быть отправлены через последовательный интерфейс RS232 (TTL). Команды управления могут быть отправлены через веб-браузер в следующем формате: http://192.168.2.13/?[parameter]=[value] (http://192.168.2.

13/?upvolume=2) preset = 12 Select start preset to con uppreset = 1 Select next preset or play downpreset = 1 Select previous preset or preset_00 = [mp3 stream] Specify station for a pres volume = 95 Percentage between 0 and 1 upvolume = 2 Add percentage to current downvolume = 2 Subtract percentage from c toneha = [0..

15] Setting treble gain tonehf = [0..15] Setting treble frequency tonela = [0..15] Setting bass gain tonelf = [0..15] Setting treble frequency station = [mp3 stream] Select new station (will n station = [URL].mp3 Play standalone .mp3 file station = [URL].

m3u Select playlist (will not xml = [Mountpoint] Select iHeartRadio station mute Mute the music unmute Unmute the music stop Stop player resume Resume player wifi_00 = mySSID/mypassword Set WiFi SSID and password status Show current URL to play test For test purposes debug = 0 or 1 Switch debugging on or off reset Restart the ESP8266 analog Show current analog input<\p>

Я извеняюсь за мой русский. Изначально писал на немецком, потом переводил на русский. Живу в Германии 22 года, потому не замечаю корявости слога.

webmaster_x_esp8266-server.de   

Источник: http://esp8266-server.de/InternetradioRu.html

Ссылка на основную публикацию
Adblock
detector