Full-Chip.net

Все об электронике, секреты ремонта
сборки компьютеров и периферии !!!

» » Цифровой FM приемник на Arduino и модуле RDA5807 с графическим дисплеем и функцией RDS
Статистика
9567 (+0)
Всего пользователей
0
Сейчас на сайте
84 (+0)
Всего статей
1435 (+0)
Всего комментариев
Реклама


Цифровой FM приемник на Arduino и модуле RDA5807 с графическим дисплеем и функцией RDS

Попался мне модуль радиоприемника на микросхеме RDA5807, он заинтриговал меня своей ценой и размерами, а когда я посмотрел весь его функционал, то понял что с ним можно поработать. В итоге в связке с arduino получился полноценный радиоприемник, с функцией RDS, цифровой регулировкой громкости, и авто настройкой.
Цифровой FM приемник на Arduino и модуле RDA5807 с графическим дисплеем и функцией RDS

Назначение контактов модуля RDA5807.
Цифровой FM приемник на Arduino и модуле RDA5807 с графическим дисплеем и функцией RDS

К ардуино данный модуль подключается по следующей схеме.
Цифровой FM приемник на Arduino и модуле RDA5807 с графическим дисплеем и функцией RDS

Из компонентов нам понадобятся:
Сам модуль приемника RDA5807.
Плата ARDUINO.
Графический дисплей NOKIA 5110.
3 тактовых кнопки.
Резисторы:
10кОм - 3шт.
47 Ом - 1шт.
10 Ом - 2шт.
И 2 электролитических конденсатора 330 мкФ 16 вольт.
Наушники.
Соединяем все согласно схемы, и обращаем особое внимание на подключение ЖК индикатора, так как они собираются в разных подвалах китая и выводы могут отличатся.
PIN_SCE подключен к выводу 3 arduino
PIN_RESET подключен к выводу 4 arduino
PIN_DC подключен к выводу 5 arduino
PIN_SDIN подключен к выводу 6 arduino
PIN_SCLK подключен к выводу 7 arduino
По выводам питания и подсветки разберетесь сами.
Кнопки по схеме
1-я значение (-)
2-я (Меню)
3-я значение (+)
Наушники подключать на прямую к модулю приемника RDA5807 нельзя, собираем простую схему согласования.
Цифровой FM приемник на Arduino и модуле RDA5807 с графическим дисплеем и функцией RDS

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






После старта приемник установит громкость "2" и частоту 104.7 мГц. кнопкой меню перелистываем пункты:
VOLUME - Громкость
AUTO TUNE - авто настройка частоты
MANUAL TUNE - ручная настройка на частоту.
INFO - данные системы RDS
Вот небольшое видео работы данного приемника


И видео от нашего пользователя который повторил конструкцию.


Для корректного отображения данных RDS нужна нормальная антенна, на индикаторе сверху есть буква S - и значение, это уровень принимаемого сигнала. дальше идет уровень громкости от 0 до 15, строка меню, текущая частота сигнала, и данные RDS. Если возникают вопросы пишите в комментариях.

Необходимые компоненты для сборки устройства с Китая по доступной цене.
Плата ARDUINO UNO (качественная)
Модули RDA5807M 10 шт.
Дисплей 84X48 LCD NOKIA5110
Набор выводных резисторов на все случаи жизни
Тактовые кнопки 12X12X11 мм. 20 ШТ.
40 шт. цветные провода для ардуино

Скачать все файлы проекта priemnik-RDS.rar [486,58 Kb] (cкачиваний: 5025)

Еще одна модификация с ик пультом, свою версию предоставил Эдуард.


Цифровой FM приемник на Arduino и модуле RDA5807 с графическим дисплеем и функцией RDS
Цифровой FM приемник на Arduino и модуле RDA5807 с графическим дисплеем и функцией RDS

1. Использовал ИК-приемник от сломанного авто-трансмиттера , судя из даташита TSOP48xx. Подключение: Vo-PIN10 , GND-GND, Vs-5V.
Цифровой FM приемник на Arduino и модуле RDA5807 с графическим дисплеем и функцией RDS

2. Загружаем в ардуино скетч IR_CODE_SCAN и в мониторе порта, при нажимании клавиш пульта (я использовал от муз-центра Sony) , определяем их код .
3. Проверяем с помощью скетча IR_REMOTE_LED работу , вставляя коды своих кнопок.
4. Загружаем в ардуино скетч RADIO_FM_IR , подставив значения кодов своих клавиш. Используем библиотеку IRremote.h.
5. Делал приемник больше года назад, решил навести порядок : вытравил плату, всунул в корпус от китайского приемничка, добавил индикатор уровня звука, сегодня приделал ИК-датчик, вроде работает живенько, лучше чем с кнопками.

Файлы проекта Эдуарда (файл платы и необходимые скетчи) radio-fmir-remote.zip [34,96 Kb] (cкачиваний: 1016)
K:218
Уважаемый посетитель, Вы зашли на сайт как незарегистрированный пользователь.
Мы рекомендуем Вам зарегистрироваться либо войти на сайт под своим именем.

Добавление комментария

Имя:*
E-Mail:
  • bowtiesmilelaughingblushsmileyrelaxedsmirk
    heart_eyeskissing_heartkissing_closed_eyesflushedrelievedsatisfiedgrin
    winkstuck_out_tongue_winking_eyestuck_out_tongue_closed_eyesgrinningkissingstuck_out_tonguesleeping
    worriedfrowninganguishedopen_mouthgrimacingconfusedhushed
    expressionlessunamusedsweat_smilesweatdisappointed_relievedwearypensive
    disappointedconfoundedfearfulcold_sweatperseverecrysob
    joyastonishedscreamtired_faceangryragetriumph
    sleepyyummasksunglassesdizzy_faceimpsmiling_imp
    neutral_faceno_mouthinnocent
Вопрос:
Сколько колес у велосипеда +1? (ответ запишите числом)
Ответ:*
Введите код: *
Кликните на изображение чтобы обновить код, если он неразборчив
Ответить Цитата
  • Виталий

  • 1 марта 2016 23:50
  • Группа: Гости
  • Регистрация: --
  • Статус:
  • комментариев
  • публикаций
    • Нравится
    • 0
А влезет этот скетч в атмегу 8а с внутренним тактовым на 8мГц, сделаю из нее ардуину чтобы не покупать плату. И можно ли как то реализовать память станций на 20?
Ответить Цитата
  • max

  • 31 января 2016 21:43
  • Группа: Администраторы
  • Регистрация: 5.03.2012
  • Статус: Пользователь offline
  • комментарий
  • публикаций
    • Нравится
    • 0
Цитата: Павел
Цитата: max
Цитата: Павел
Цитата: Yuri
Добрый день.
Повторил Ваш проект и столкнулся с проблемой. После подачи
питания кратковременно появляется 104.7, потом на дисплее
выскакивает 163,7 и нет возможности изменить частоту настройки.
При этом прочие ветки меню работают, можно менять громкость и
т.д. Может посоветуете что делать.

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

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

А может это быть из-за несоответствия уровня напряжения на шине I2C - 5 В, а для RDA5807 нужен уровень 3.3 В ?

у меня модуль загнулся с делителями на шине, а у товарища в коробке в гараже стоит играет уже пол года на прямую включенный
Ответить Цитата
  • Группа: Гости
  • Регистрация: --
  • Статус:
  • комментариев
  • публикаций
    • Нравится
    • 0
Цитата: max
Цитата: Павел
Цитата: Yuri
Добрый день.
Повторил Ваш проект и столкнулся с проблемой. После подачи
питания кратковременно появляется 104.7, потом на дисплее
выскакивает 163,7 и нет возможности изменить частоту настройки.
При этом прочие ветки меню работают, можно менять громкость и
т.д. Может посоветуете что делать.

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

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

А может это быть из-за несоответствия уровня напряжения на шине I2C - 5 В, а для RDA5807 нужен уровень 3.3 В ?
Ответить Цитата
  • max

  • 31 января 2016 21:28
  • Группа: Администраторы
  • Регистрация: 5.03.2012
  • Статус: Пользователь offline
  • комментарий
  • публикаций
    • Нравится
    • 0
Цитата: Павел
Цитата: Yuri
Добрый день.
Повторил Ваш проект и столкнулся с проблемой. После подачи
питания кратковременно появляется 104.7, потом на дисплее
выскакивает 163,7 и нет возможности изменить частоту настройки.
При этом прочие ветки меню работают, можно менять громкость и
т.д. Может посоветуете что делать.

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

Модуль жутко боится статики, не стоит трогать его за антенну и шину данных во время работы.
Ответить Цитата
  • Группа: Гости
  • Регистрация: --
  • Статус:
  • комментариев
  • публикаций
    • Нравится
    • 0
Цитата: Yuri
Добрый день.
Повторил Ваш проект и столкнулся с проблемой. После подачи
питания кратковременно появляется 104.7, потом на дисплее
выскакивает 163,7 и нет возможности изменить частоту настройки.
При этом прочие ветки меню работают, можно менять громкость и
т.д. Может посоветуете что делать.

Такая же картина...
При этом сначала все работало, а потом такое...
Подозрение на то, что вышел из строя модуль приемника...
Ответить Цитата
  • max

  • 9 января 2016 16:07
  • Группа: Администраторы
  • Регистрация: 5.03.2012
  • Статус: Пользователь offline
  • комментарий
  • публикаций
    • Нравится
    • 0
Цитата: Yuri
Добрый день.
Повторил Ваш проект и столкнулся с проблемой. После подачи
питания кратковременно появляется 104.7, потом на дисплее
выскакивает 163,7 и нет возможности изменить частоту настройки.
При этом прочие ветки меню работают, можно менять громкость и
т.д. Может посоветуете что делать.

Контакты 4-5 правильно к ардуино подключены? Попробуйте их местами поменять.
Ответить Цитата
  • Yuri

  • 9 января 2016 13:50
  • Группа: Гости
  • Регистрация: --
  • Статус:
  • комментариев
  • публикаций
    • Нравится
    • 0
Добрый день.
Повторил Ваш проект и столкнулся с проблемой. После подачи
питания кратковременно появляется 104.7, потом на дисплее
выскакивает 163,7 и нет возможности изменить частоту настройки.
При этом прочие ветки меню работают, можно менять громкость и
т.д. Может посоветуете что делать.
Ответить Цитата
  • max

  • 15 декабря 2015 13:28
  • Группа: Администраторы
  • Регистрация: 5.03.2012
  • Статус: Пользователь offline
  • комментарий
  • публикаций
    • Нравится
    • 0
Цитата: Syncro
ssd1306

перепиши код под свой дисплей, я проблем не вижу.
Ответить Цитата
  • Syncro

  • 15 декабря 2015 13:19
  • Группа: Гости
  • Регистрация: --
  • Статус:
  • комментариев
  • публикаций
    • Нравится
    • 0
С ssd1306 дисплеем мог бы получиться идеальный приёмник. Жаль, что в и-нете нет (почти) программ для ардуино-радио с этим дисплеем.
Ответить Цитата
  • Группа: Журналисты
  • Регистрация: 30.11.2015
  • Статус: Пользователь offline
  • комментария
  • публикаций
    • Нравится
    • 0
Цитата: max
Цитата: Жоржик
макс, дисплей лучше подключать на 3.3v

на моем вся логика 5 вольтовая но от 3,3 работает

мой от 5v переконтрас

--------------------
Ответить Цитата
  • max

  • 2 декабря 2015 19:14
  • Группа: Администраторы
  • Регистрация: 5.03.2012
  • Статус: Пользователь offline
  • комментарий
  • публикаций
    • Нравится
    • 0
Цитата: Жоржик
макс, дисплей лучше подключать на 3.3v

на моем вся логика 5 вольтовая но от 3,3 работает
Ответить Цитата
  • Группа: Журналисты
  • Регистрация: 30.11.2015
  • Статус: Пользователь offline
  • комментария
  • публикаций
    • Нравится
    • 0
макс, дисплей лучше подключать на 3.3v

--------------------
Ответить Цитата
  • max

  • 19 ноября 2015 20:14
  • Группа: Администраторы
  • Регистрация: 5.03.2012
  • Статус: Пользователь offline
  • комментарий
  • публикаций
    • Нравится
    • 0
Цитата: Магомед
Cобрав заново схему понял свои ошибки. По кнопкам оказалось что на бредборде я подключал нулевой провод к кнопкам 1 и 2 в гнезда где небыло земли, т. е. на длинном бредборде есть разделение по середине по шинам + и - (не внимательность), по дисплею, дисплей оказался не рабочим, т. е. контраст не регулируется, поменял дисплей теперь все работает. Спасибо!

Незачто, я перед публикацией все собираю и перепроверяю, все схемы у нас рабочие)))
Ответить Цитата
  • Группа: Гости
  • Регистрация: --
  • Статус:
  • комментариев
  • публикаций
    • Нравится
    • 0
Cобрав заново схему понял свои ошибки. По кнопкам оказалось что на бредборде я подключал нулевой провод к кнопкам 1 и 2 в гнезда где небыло земли, т. е. на длинном бредборде есть разделение по середине по шинам + и - (не внимательность), по дисплею, дисплей оказался не рабочим, т. е. контраст не регулируется, поменял дисплей теперь все работает. Спасибо!
Ответить Цитата
  • max

  • 18 ноября 2015 22:48
  • Группа: Администраторы
  • Регистрация: 5.03.2012
  • Статус: Пользователь offline
  • комментарий
  • публикаций
    • Нравится
    • 0
Я уже не помню по моему резистор стоит на подсветку, пере собери внимательно что то не так собрал!
Ответить Цитата
  • Группа: Гости
  • Регистрация: --
  • Статус:
  • комментариев
  • публикаций
    • Нравится
    • 0
Контраст пробовал менять на этой строчке, не получилось, ставил значения от В0 до В7. Не помогло. У меня вместо резистора 47 ом стоит перемычка на землю, имеет значение? Все три кнопки подключены аналогично т. е. на 1й контакт первой кнопки идет провод с земли со второго контакта идет резистор 10кОм на 1й контакт второй кнопки и туда же подключена земля, со второго контакта второй кнопки также идет резисто и земля на первый контакт третьей кнопки, с выхода этой кнопки идет сигнальный провод на аналоговый вход ардуино и подтянута к +5 вольтам. Верно??? Sda scl фм модуля тоже подключены правильно, если их вытащит изображение с дисплея исчезает. Завтра попробую заново все собрать. Если есть еще какие нибудь догадки по контрасту и кнопкам подскажите.
Ответить Цитата
  • max

  • 18 ноября 2015 21:39
  • Группа: Администраторы
  • Регистрация: 5.03.2012
  • Статус: Пользователь offline
  • комментарий
  • публикаций
    • Нравится
    • 0
Цитата: Магомед
Здравствуйте!
Подключил все согласно вашей схеме и ничего не работает, на дисплей меню с радиостанцией выводится но контраст высокий, т.е. дисплей черный, информация видна только под углом и работает только одна кнопка , скан радиостанций вверх а другие не реагируют. В чем может быть проблема, Разъясните.

Если все правильно!!! подключено то работать будет по любому!! проверьте подключение кнопок они должны быть включены последовательно через резисторы проверьте не попутали ли контакты кнопок они ставятся только в 1 положении! контраст рерулируется в строке LcdWrite(LCD_CMD, 0xB5); // Set LCD Vop (Contrast). //B1 значение 0xB5
Ответить Цитата
  • Группа: Гости
  • Регистрация: --
  • Статус:
  • комментариев
  • публикаций
    • Нравится
    • 0
Здравствуйте!
Подключил все согласно вашей схеме и ничего не работает, на дисплей меню с радиостанцией выводится но контраст высокий, т.е. дисплей черный, информация видна только под углом и работает только одна кнопка , скан радиостанций вверх а другие не реагируют. В чем может быть проблема, Разъясните.
Ответить Цитата
  • max

  • 29 октября 2015 13:20
  • Группа: Администраторы
  • Регистрация: 5.03.2012
  • Статус: Пользователь offline
  • комментарий
  • публикаций
    • Нравится
    • 0
Цитата: Voldemar1985
Добрый день. Не подскажите где код для RDS нашли?

На буржуйском форуме, к сожалению давно было ссылку уже не найду(((
Ответить Цитата
  • Группа: Посетители
  • Регистрация: 29.10.2015
  • Статус: Пользователь offline
  • комментарий
  • публикаций
    • Нравится
    • 0
Добрый день. Не подскажите где код для RDS нашли?
Ответить Цитата
  • max

  • 16 сентября 2015 17:03
  • Группа: Администраторы
  • Регистрация: 5.03.2012
  • Статус: Пользователь offline
  • комментарий
  • публикаций
    • Нравится
    • 0
Цитата: Konst
0xB5

Все верно, B5 переводим в bin и получаем значение в данном случаи 10110101, его можно и хексом записать, работать будет и так и так.
Ответить Цитата
  • Konst

  • 16 сентября 2015 16:58
  • Группа: Гости
  • Регистрация: --
  • Статус:
  • комментариев
  • публикаций
    • Нравится
    • 0
Сегодня подключил дисплей и захотелось подкрутить контраст (как то бледненько у меня показывает) - как я понял в эту строку надо лезть
LcdWrite(LCD_CMD, 0xB5); // Set LCD Vop (Contrast). //B1
как увеличить пока не понял

Вопрос снимается - разобрался.
Вместо 0xB5 устанавливаем своё значение контраста.
В моём случае это 0b11000000 (при большем значении получал переконтраст).
Ответить Цитата
  • max

  • 6 сентября 2015 17:50
  • Группа: Администраторы
  • Регистрация: 5.03.2012
  • Статус: Пользователь offline
  • комментарий
  • публикаций
    • Нравится
    • 0
Цитата: Konst
Может тут дело совсем в другом.
У меня всё работает , но от A4 и А5 к плюс 3,3 в. установлены
резисторы 6,8 к. (подтягивающие).

Их установка как бы не обязательна, у нас только одно устройство на шине висит, внутренних резисторов контроллера должно хватать...
Ответить Цитата
  • Konst

  • 6 сентября 2015 17:48
  • Группа: Гости
  • Регистрация: --
  • Статус:
  • комментариев
  • публикаций
    • Нравится
    • 0
Может тут дело совсем в другом.
У меня всё работает , но от A4 и А5 к плюс 3,3 в. установлены
резисторы 6,8 к. (подтягивающие).
Ответить Цитата
  • max

  • 3 сентября 2015 20:58
  • Группа: Администраторы
  • Регистрация: 5.03.2012
  • Статус: Пользователь offline
  • комментарий
  • публикаций
    • Нравится
    • 0
Цитата: max
Цитата: sandro
У Вас "инклюдирована" только "Wire". Разве есть разница, какие другие библиотеки у меня "лежат" в среде? Пробовал среды 1.6, 1.7.6, 1.5.2, результат одинаков. Сказал-бы, что ошибка в скетче, так в комментариях пишут, что всё заработало. А у меня, к сожалению(очень понравилось оформление) не заработало. Даже УНО плату поменял, не помагло. Проще сказать, что должно "подтянуться".

Попробуй среду 0022 и отпишись!

Цитата: max
Цитата: sandro
У Вас "инклюдирована" только "Wire". Разве есть разница, какие другие библиотеки у меня "лежат" в среде? Пробовал среды 1.6, 1.7.6, 1.5.2, результат одинаков. Сказал-бы, что ошибка в скетче, так в комментариях пишут, что всё заработало. А у меня, к сожалению(очень понравилось оформление) не заработало. Даже УНО плату поменял, не помагло. Проще сказать, что должно "подтянуться".

Попробуй среду 0022 и отпишись!

Если не выйдет пиши в скайп uw5rrmax

у меня 2 версии установленно 0022 и 1,06 я делал в 1.06, только что проверил, у вас модуль точно rda5807?
Ответить Цитата
  • sandro

  • 3 сентября 2015 20:34
  • Группа: Гости
  • Регистрация: --
  • Статус:
  • комментариев
  • публикаций
    • Нравится
    • 0
In file included from sketch_sep03a.cpp:1:
D:\Arduino\libraries\Robot_Control/Wire.h:60: error: conflicting return type specified for 'virtual size_t TwoWire::write(uint8_t)'
D:\Arduino\arduino-0022\hardware\arduino\cores\arduino/Print.h:40: error: overriding 'virtual void Print::write(uint8_t)'
D:\Arduino\libraries\Robot_Control/Wire.h:61: error: conflicting return type specified for 'virtual size_t TwoWire::write(const uint8_t*, size_t)'
D:\Arduino\arduino-0022\hardware\arduino\cores\arduino/Print.h:42: error: overriding 'virtual void Print::write(const uint8_t*, size_t)'

Дайте пожалуйста ссылку на библиотеку для этой среды
Ответить Цитата
  • max

  • 3 сентября 2015 19:59
  • Группа: Администраторы
  • Регистрация: 5.03.2012
  • Статус: Пользователь offline
  • комментарий
  • публикаций
    • Нравится
    • 0
Цитата: sandro
У Вас "инклюдирована" только "Wire". Разве есть разница, какие другие библиотеки у меня "лежат" в среде? Пробовал среды 1.6, 1.7.6, 1.5.2, результат одинаков. Сказал-бы, что ошибка в скетче, так в комментариях пишут, что всё заработало. А у меня, к сожалению(очень понравилось оформление) не заработало. Даже УНО плату поменял, не помагло. Проще сказать, что должно "подтянуться".

Попробуй среду 0022 и отпишись!

Цитата: max
Цитата: sandro
У Вас "инклюдирована" только "Wire". Разве есть разница, какие другие библиотеки у меня "лежат" в среде? Пробовал среды 1.6, 1.7.6, 1.5.2, результат одинаков. Сказал-бы, что ошибка в скетче, так в комментариях пишут, что всё заработало. А у меня, к сожалению(очень понравилось оформление) не заработало. Даже УНО плату поменял, не помагло. Проще сказать, что должно "подтянуться".

Попробуй среду 0022 и отпишись!

Если не выйдет пиши в скайп uw5rrmax
Ответить Цитата
  • sandro

  • 3 сентября 2015 19:39
  • Группа: Гости
  • Регистрация: --
  • Статус:
  • комментариев
  • публикаций
    • Нравится
    • 0
У Вас "инклюдирована" только "Wire". Разве есть разница, какие другие библиотеки у меня "лежат" в среде? Пробовал среды 1.6, 1.7.6, 1.5.2, результат одинаков. Сказал-бы, что ошибка в скетче, так в комментариях пишут, что всё заработало. А у меня, к сожалению(очень понравилось оформление) не заработало. Даже УНО плату поменял, не помагло. Проще сказать, что должно "подтянуться".
Ответить Цитата
  • max

  • 3 сентября 2015 19:03
  • Группа: Администраторы
  • Регистрация: 5.03.2012
  • Статус: Пользователь offline
  • комментарий
  • публикаций
    • Нравится
    • 0
Цитата: sandro
Действительно, библиотек напихано у Вас целая куча, и я в них заплутал...А связь с модулем есть. Тестовый скетч из библиотеки TEA5767Radio работает на ура. Устанавливаю заранее известную частоту и получаю желаемую радиостанцию. Не хотите вникнуть в мою проблему - Ваше право.И на том спасибо. Буду сам мастерить скетч.

Чтоб вам помочь мне нужен как минимум скрин среды ардуино там где библиотеки дабы видеть что подтянулось а что нет!
Ответить Цитата
  • sandro

  • 3 сентября 2015 17:58
  • Группа: Гости
  • Регистрация: --
  • Статус:
  • комментариев
  • публикаций
    • Нравится
    • 0
Действительно, библиотек напихано у Вас целая куча, и я в них заплутал...А связь с модулем есть. Тестовый скетч из библиотеки TEA5767Radio работает на ура. Устанавливаю заранее известную частоту и получаю желаемую радиостанцию. Не хотите вникнуть в мою проблему - Ваше право.И на том спасибо. Буду сам мастерить скетч.