Меню

Fm приемник на rda5807m своими руками

Собрал приемник по этой схеме: http://labkit.ru/html/radio_shm?id=465 Работает отлично, спасибо автору, рекомендую к повторению.

Видео Самодельный FM-приемник на RDA5807M канала Сергей Рудаков

Показать

Как сделать ФМ приемник своими руками на модуле fm rda5807m Нам понадобится всего 4 кнопки и Ардуино.

Ссылка на видео

Библиотека разработанная для этого модуля позволяет сканировать частоты в поиске радиостанций, выводить на дисплей RDS, создавать каналы и записывать их в EEPROM память, загружать последнюю станцию которую вы слушали перед отключением, управление радио через монитор порта.
Очень маленькое энергопотребление. Питание от 3,3 Вольт. Связь с Ардуиной всего по 2 проводам, по интерфейсу I2C. Рабочие частоты от 50 МГц до 115 МГц. В видео показано rda5807m подключение. Приложен рабочий скетч с выводом на дисплей, Названия радиостанции, частота, номера канала, громкость звука.

Loading…

РадиоКот >Схемы >Аналоговые схемы >Приемники и передатчики >

Портативный FM приемник на радиомодуле RDA5807M с RDS

       В интернете встречаются достаточно много вариантов радиолюбительских ФМ приемников на радиомодуле с микросхемой RDA5807M, либо микросхеме RDA5807FP. Но многие варианты  не являются портативными и миниатюрными, питаются от источника питания 3..5В, ограничены по функционалу. Захотелось создать приемник, который бы удовлетворял всем моим требованиям, а именно:
— миниатюрный (помещается в карман рубашки);
— питание от 2 «Ð¿Ð°Ð»ÑŒÑ‡Ð¸ÐºÐ¾Ð²Ñ‹Ñ…» или «Ð¼Ð¸Ð·Ð¸Ð½Ñ‡Ð¸ÐºÐ¾Ð²Ñ‹Ñ…» аккумуляторов или батареек, сохраняет работу до 2В;
— яркий OLED экран;
— два режима работы – режим сканирования частоты с возможностью запоминания станций и режим фиксированных настроек;
— автоотключение питания;
— блокировка клавиш от случайного нажатия;
— включение/отключение питания кнопкой;
— регулировка громкости кнопками.

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

 

Перечень элементов:

ZQ1 Кварцевый резонатор 4.000 МГц HC-49SM -1шт.
С1,С2 Конденсатор 0805 22пФ — 2шт.
С3,С7-С9 Конденсатор 0805 0,1 мкФ — 4шт.
С4,С12,С13 Конденсатор танталовый тип D 470 мкФ x 10В — 3 шт.
С5,С6 Конденсатор 0805 1,0 мкФ — 2шт.
С10 Конденсатор 0805 10,0 мкФ -1шт.
С11 Конденсатор подстроечный КТ4-23 5-25 пФ  (можно аналог. имп.) — 1шт.
С14 Конденсатор 0805 2,2 мкФ — 1шт.

DD1 Микроконтроллер ATmega328p-AU -1шт

HG1 OLED 0.96 128х64 желто-голубой -1 шт.

L1 Катушка 0,1 мкГн  5 витков провода 0,5мм на оправке 4мм -1шт.
L2,L3 Дроссель LQH32MN6R8K 6.8 мкГн — 2шт.

SB1-SB13 Кнопка мембранная SOP-114HST — 13шт.

U1 Модуль rrd-102v2.0 — 1шт

X1 Вилка PLD2-12S  — 1шт.

X2 Розетка PJ-327A  — 1шт.

Плата приемника изготовлена методом ЛУТ. В круглых площадках просверлены отверстия и впаямы межслойные перемычки.

Собранная плата:

      В качестве корпуса приемника используется корпус от китайского приемника с Aliexspress. Для программирования микроконтроллера использовалась программа AVRDUDE. Вот FUSE:

Приемник в корпусе:

И, наконец, рабочий приемник:

Для прослушивания использовались наушники Urbanfun hi-fi. Качество звука хорошее, присутствует басс.

Вот как-то так.

Файлы:
Архив ZIP

Все вопросы в
Форум.


Как вам эта статья?

Заработало ли это устройство у вас?


Эти статьи вам тоже могут пригодиться:

От Alex  17.10.2018 | 12:10

Опубликовано в Самоделки, Электроника 

Загрузка…


9 356

Очень простой и тем не менее качественный цифровой FM радиоприёмник можно собрать на китайском модуле RDA5807M и в качестве управления этим модулем и вывода различной информации на ЖК дисплей будет использоваться Arduino. Кроме самого приёма станций модуль умеет получать цифровую информацию RDS от этих станций.

Цифровой радомодуль RDA5807, представляет собой крохотную плату с маленькой микросхемой с 10-тью ножками и кварцем и при своём маленьком размере обеспечивает качественный, чистый приём в диапазоне частот 76 – 108 МГц в стерео режиме, также он имеет цифровую шину I2C по которой общается с микроконтроллером и передаёт данные RDS.

FM радио на модуле RDA5708 и Ардуино

FM радио на модуле RDA5807 и Ардуино

Несколько справочных данных о модуле RDA5807:

  • Поддерживаемый диапазон частот: 50 – 115 МГц;
  • Шаг перестройки: 100 КГц, 200 КГц, 50 КГц и 25 КГц;
  • Потребляемый ток: 20 mA при напряжении 3В;
  • Поддержка цифровых данных формата RDS/RBDS;
  • Напряжение питания от 1.8 до 3.3В.

Для того чтобы сделать FM приёмник нам понадобится:

  • Модуль FM радиоприёмника RDA5807M;
  • Плата Arduino Uno;
  • Дисплейный модуль с дисплеем от Nokia 5110;
  • 3 тактовые кнопки;
  • 3 резистора на 10к;
  • Макетная плата с проводками;
  • Гнездо для наушников;
  • Наушники.

Собираем ФМ приёмник на модуле RDA5807m по этой схеме:

FM радио на модуле RDA5708 и Ардуино

FM радио на модуле RDA5807 и Ардуино

FM радио на модуле RDA5708 и Ардуино

FM радио на модуле RDA5807 и Ардуино

FM радио на модуле RDA5708 и Ардуино

FM радио на модуле RDA5807 и Ардуино

Наушники подключаем по такой схеме:

FM радио на модуле RDA5708 и Ардуино

FM радио на модуле RDA5807 и Ардуино

Подключаем Ардуино USB кабелем к компьютеру и заливаем этот скетч (или вторую версию) — RDA5807_fmradio_3buttons_ver0.ino.

Во второй версии скетча я добавил возможность сохранять значение текущей частоты и шага перестройки в памяти EEPROM — RDA5807_fmradio_3buttons_ver1.ino.

FM радио на модуле RDA5708 и Ардуино

FM радио на модуле RDA5807 и Ардуино

FM радио на модуле RDA5708 и Ардуино

FM радио на модуле RDA5807 и Ардуино

FM радио на модуле RDA5708 и Ардуино

FM радио на модуле RDA5807 и Ардуино

FM радио на модуле RDA5708 и Ардуино

FM радио на модуле RDA5807 и Ардуино

На дисплее вы можете увидеть:

  • Уровень сигнала;
  • В каком режиме идёт приём, стерео или моно;
  • То, что вы можете выбрать кнопками: автопоиск, информация о станции, ручной поиск и громкость;
  • Информация RDS (статические и прокручивающие тексты).

FM радио на модуле RDA5708 и Ардуино

FM радио на модуле RDA5807 и Ардуино

Всё, такой вот несложный и функциональный FM радиоприёмник на модуле RDA5807 и Ардуино получился за короткое время. Вы можете поместить всё в красивый корпус, добавить по желанию усилитель и динамик и получится отличный приёмник с качественным звуком.

FM радио на модуле RDA5708 и Ардуино

FM радио на модуле RDA5807 и Ардуино

#include <Wire.h>

    /* Select the frequency we want to tune to by way

     * of selecting the channel for the desired frequency

     */

uint16_t channel = 187;

    /*

     * предполагаем что диапазон начинается с частоты 87.0MHz (для приведенных ниже настроек)

     * расстояние между каналами составляет 100kHz (0.1MHz) (per settings below)

     * тогда номер канала можно вычислить с помощью следующего выражения:

     *  

     * channel = (<desired freq in MHz> — 87.0) / 0.1

     *

     * или можно записать это выражение в другом виде:

     * <10 x desired freq in MHz> — 870

     */

#define RDA5807M_ADDRESS  0b0010000 // 0x10

#define BOOT_CONFIG_LEN 12

#define TUNE_CONFIG_LEN 4

/*

*  Эти байты устанавливают нашу первоначальную конфигурацию

*  На этом этапе мы не беспокоимся о настройке приемника на нужный канал.

*  Здесь мы производим сброс модуля.

*/

uint8_t boot_config[] = {

  /* register 0x02 */

  0b11000001,

    /*

     * DHIZ audio output high-z disable

     * 1 = normal operation

     *

     * DMUTE mute disable

     * 1 = normal operation

     *

     * MONO mono select

     * 0 = stereo

     *

     * BASS bass boost

     * 0 = disabled

     *

     * RCLK NON-CALIBRATE MODE

     * 0 = RCLK is always supplied

     *

     * RCLK DIRECT INPUT MODE

     * 0 = ??? not certain what this does

     *

     * SEEKUP

     * 0 = seek in down direction

     *

     * SEEK

     * 0 = disable / stop seek (i.e. don’t seek)

     */

  0b00000011,

    /*

     * SKMODE seek mode:

     * 0 = wrap at upper or lower band limit and contiue seeking

     *

     * CLK_MODE clock mode

     *  000 = 32.768kHZ clock rate (match the watch cystal on the module)

     *

     * RDS_EN radio data system enable

     * 0 = disable radio data system

     *

     * NEW_METHOD use new demodulate method for improved sensitivity

     * 0 = presumably disabled

     *

     * SOFT_RESET

     * 1 = perform a reset

     *

     * ENABLE power up enable:

     * 1 = enabled

     */

  /* register 0x03 */

    /* Don’t bother to tune to a channel at this stage*/

  0b00000000,

    /*

     * CHAN channel select 8 most significant bits of 10 in total

     * 0000 0000 = don’t boher to program a channel at this time

     */

  0b00000000,

    /*

     * CHAN two least significant bits of 10 in total

     * 00 = don’t bother to program a channel at this time

     *

     * DIRECT MODE used only when test

     * 0 = presumably disabled

     *

     * TUNE commence tune operation

     * 0 = disable (i.e. don’t tune to selected channel)

     *

     * BAND band select

     * 00 = select the 87-108MHz band

     *

     * SPACE channel spacing

     * 00 = select spacing of 100kHz between channels

     */    

  /* register 0x04 */

  0b00001010,

    /*

     * RESERVED 15

     * 0

     *

     * PRESUMABLY RESERVED 14

     * 0

     *

     * RESERVED 13:12

     * 00

     *

     * DE de-emphasis:

     * 1 = 50us de-emphasis as used in Australia

     *

     * RESERVED

     * 0

     *

     * SOFTMUTE_EN

     * 1 = soft mute enabled

     *

     * AFCD AFC disable

     * 0 = AFC enabled

     */

  0b00000000,

    /*

     *  Bits 7-0 are not specified, so assume all 0’s

     * 0000 0000

     */  

  /* register 0x05 */

  0b10001000,

    /*

     * INT_MODE

     * 1 = interrupt last until read reg 0x0C

     *

     * RESERVED 14:12

     * 000

     *

     * SEEKTH seek signal to noise ratio threshold

     * 1000 = suggested default

     */  

  0b00001111,

    /*

     * PRESUMABLY RESERVED 7:6

     * 00

     *

     * RESERVED 5:4

     * 00

     *

     * VOLUME

     * 1111 = loudest volume

     */

  /* register 0x06 */

  0b00000000,

    /*

     * RESERVED 15

     * 0

     *

     * OPEN_MODE open reserved registers mode

     * 00 = suggested default

     *

     * Bits 12:8 are not specified, so assume all 0’s

     * 00000

     */  

  0b00000000,

    /*

     *  Bits 7:0 are not specified, so assume all 0’s

     *  00000000

     */    

  /* register 0x07 */

  0b01000010,

    /*

     *  RESERVED 15

     * 0

     *

     * TH_SOFRBLEND threshhold for noise soft blend setting

     * 10000 = using default value

     *

     * 65M_50M MODE

     * 1 = only applies to BAND setting of 0b11, so could probably use 0 here too

     *

     * RESERVED 8

     * 0

     */      

  0b00000010,

    /*  

     *  SEEK_TH_OLD seek threshold for old seek mode

     * 000000

     *

     * SOFTBLEND_EN soft blend enable

     * 1 = using default value

     *

     * FREQ_MODE

     * 0 = используем значение по умолчанию

     */  

};

/* After reset, we can tune the device

* We only need program the first 4 bytes in order to do this

*/

uint8_t tune_config[] = {

  /* register 0x02 */

  0b11000000,

    /*

     * DHIZ audio output high-z disable

     * 1 = normal operation

     *

     * DMUTE mute disable

     * 1 = normal operation

     *

     * MONO mono select

     * 0 = mono

     *

     * BASS bass boost

     * 0 = disabled

     *

     * RCLK NON-CALIBRATE MODE

     * 0 = RCLK is always supplied

     *

     * RCLK DIRECT INPUT MODE

     * 0 = ??? not certain what this does

     *

     * SEEKUP

     * 0 = seek in down direction

     *

     * SEEK

     * 0 = disable / stop seek (i.e. don’t seek)

     */  

   0b00000001,

    /*

     * SKMODE seek mode:

     * 0 = wrap at upper or lower band limit and contiue seeking

     *

     * CLK_MODE clock mode

     * 000 = 32.768kHZ clock rate (match the watch cystal on the module)

     *

     * RDS_EN radio data system enable

     * 0 = disable radio data system

     *

     * NEW_METHOD use new demodulate method for improved sensitivity

     * 0 = presumably disabled

     *

     * SOFT_RESET

     * 0 = don’t reset this time around

     *

     * ENABLE power up enable:

     * 1 = enabled

     */

   /* register 0x03 */

   /* Here’s where we set the frequency we want to tune to */

   (channel >> 2),

    /* CHAN channel select 8 most significant bits of 10 in total   */

   ((channel & 0b11) << 6 ) | 0b00010000

    /*

     *  CHAN two least significant bits of 10 in total

     *

     * DIRECT MODE used only when test

     * 0 = presumably disabled

     *

     * TUNE commence tune operation

     * 1 = enable (i.e. tune to selected channel)

     *

     * BAND band select

     * 00 = select the 87-108MHz band

     *

     * SPACE channel spacing

     * 00 = select spacing of 100kHz between channels

     */  

};

void setup()

{

  Serial.begin(9600);

  pinMode(A0,INPUT);

  Wire.begin();

  Wire.beginTransmission(RDA5807M_ADDRESS);

  Wire.write(boot_config, BOOT_CONFIG_LEN);

  Wire.endTransmission();

  Wire.beginTransmission(RDA5807M_ADDRESS);

  Wire.write(tune_config, TUNE_CONFIG_LEN);

  Wire.endTransmission();

}//setup end

void loop()

{

  int channel1 =90,newA;

  static int oldA = 0; // set the oldA as HIGH

  int result = 0;

  newA = analogRead(A0);

  if ((newA oldA) > 10 || (oldA newA) > 10){

    Serial.println(newA);

    if(newA!= oldA){

      channel = channel1+(newA/10);

      myChangeChannel(channel);

      oldA=newA;

      }

}

  uint16_t frequency = channel+870;

  uint16_t num1 = (frequency / 1000) % 10;

  uint16_t num2 = (frequency / 100) % 10;

  uint16_t num3 = (frequency / 10) % 10;

  uint16_t num4 = frequency % 10;

  Serial.print(num1);

  Serial.print(num2);

  Serial.print(num3);

  Serial.print(num4);

  Serial.print(«—«);

  Serial.println(channel+870);

}//конец цикла loop

/*

* функция для изменения канала в модуле RDA5807

* Example: channel = 191

*/

void myChangeChannel(int channel){ /* void if nothing is returned else int */

  /*

   * первым делом записываем новый канал в массив tune_config, потом передаем его значение модулю RDA5807

   */

   tune_config[2] = (channel >> 2);

   tune_config[3] = ((channel & 0b11) << 6 ) | 0b00010000;

      Wire.begin();

      Wire.beginTransmission(RDA5807M_ADDRESS);

      Wire.write(tune_config, TUNE_CONFIG_LEN);

      Wire.endTransmission();

  }

  • ×òî äåëàòü?
  • Âèäåî
  • Êàðòèíêè
  • Êàðòû è ìàðøðóòû
  • Ïî÷èòàòü æóðíàë ïîòðåáèòåëÿ

  • NoFolloW çà íàìè â Twitter!
  • Êàòàëîã /
  • Âèäåî /
  • ÊÂ- ðàäèîïðèåìíèê,…

Twix UwU


Ïîõîæèå âèäåî

видео: Ïðèåìíèê íà ïîëåâèêå

Ïðèåìíèê íà ïîëåâèêå

видео: Äëèííîâîëíîâûé ðàäèîïðèåìíèê ñâîèìè ðóêàìè íà 3 òðàíçèñòîðàõ

Äëèííîâîëíîâûé ðàäèîïðèåìíèê ñâîèìè ðóêàìè íà 3 òðàíçèñòîðàõ

видео: Ðåãåíåðàòèâíûé ïðè¸ìíèê AM SSB íà ëàìïàõ ñâîèìè ðóêàìè.

Ðåãåíåðàòèâíûé ïðè¸ìíèê AM SSB íà ëàìïàõ ñâîèìè ðóêàìè.

видео: Ñâåðõðåãåíåðàòèâíûé ïðèåìíèê íà 27ÌÃö,Ñè-Áè, èç èãðóøêè ñâîèìè ðóêàìè.

Ñâåðõðåãåíåðàòèâíûé ïðèåìíèê íà 27ÌÃö,Ñè-Áè, èç èãðóøêè ñâîèìè ðóêàìè.

видео: Ïðèñïîñîáëåíèå äëÿ óñòàíîâêè ðåçüáîâûõ çàêë¸ïîê

Ïðèñïîñîáëåíèå äëÿ óñòàíîâêè ðåçüáîâûõ çàêë¸ïîê

видео: Êàê ïðèíèìàòü ðàäèîëþáèòåëåé CW+SSB íà ïðîñòîé ÊÂ-ðàäèîïðèåìíèê

Êàê ïðèíèìàòü ðàäèîëþáèòåëåé CW+SSB íà ïðîñòîé ÊÂ-ðàäèîïðèåìíèê

видео: 64 ôåððèòîâûõ àíòåííû ïðèåìíèê ïðÿìîãî óñèëåíèÿ âèäåî ¹ 9 èñïûòàíèå. ñàìîäåëüíîå ðàäèî.

64 ôåððèòîâûõ àíòåííû ïðèåìíèê ïðÿìîãî óñèëåíèÿ âèäåî ¹ 9 èñïûòàíèå. ñàìîäåëüíîå ðàäèî.

видео: radio fm RDA5807M è arduino. Ïîäêëþ÷åíèå, íàñòðîéêà, îïèñàíèå.

radio fm RDA5807M è arduino. Ïîäêëþ÷åíèå, íàñòðîéêà, îïèñàíèå.

видео: Êîíâåðòåð èç FM 88-108 ÌÃö â ÓÊ 65-74ÌÃö.Ìóçëî íà ñîâåòñêèé ðàäèîïðèåìíèê.Íà îäíîì òðàíçèñòîðå.

Êîíâåðòåð èç FM 88-108 ÌÃö â ÓÊÂ 65-74ÌÃö.Ìóçëî íà ñîâåòñêèé ðàäèîïðèåìíèê.Íà îäíîì òðàíçèñòîðå.

видео: Ïðèåìíèê êîðîòêîâîëíîâèêà íàáëþäàòåëÿ Ïîëÿêîâà RA3AAE

Ïðèåìíèê êîðîòêîâîëíîâèêà íàáëþäàòåëÿ Ïîëÿêîâà RA3AAE

видео: Äâóõòàêòíûé ãåíåðàòîð íà êò315.Êàêóþ ìîùíîñòü ìîæíî ñíÿòü ñ âêëþ÷åíèåì òðàíçèñòîðîâ â ïàðàëëåëü.

Äâóõòàêòíûé ãåíåðàòîð íà êò315.Êàêóþ ìîùíîñòü ìîæíî ñíÿòü ñ âêëþ÷åíèåì òðàíçèñòîðîâ â ïàðàëëåëü.

видео: AM/FM/SW/LW ðàäèîïðèåìíèê Si4730/Si4735

AM/FM/SW/LW ðàäèîïðèåìíèê Si4730/Si4735


Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *