Full-Chip.net

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

» » Цифровой FM приемник на Arduino и модуле RDA5807 с графическим дисплеем и функцией RDS
Статистика
9632 (+0)
Всего пользователей
1
Сейчас на сайте
84 (+0)
Всего статей
1440 (+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качиваний: 5148)

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


Цифровой 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качиваний: 1092)
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? (ответ запишите числом)
Ответ:*
Введите код: *
Кликните на изображение чтобы обновить код, если он неразборчив
Ответить Цитата
  • anton

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

  • 1 апреля 2016 14:49
  • Группа: Администраторы
  • Регистрация: 5.03.2012
  • Статус: Пользователь offline
  • комментария
  • публикаций
    • Нравится
    • 0
Цитата: anton


1.6.8
Ответить Цитата
  • anton

  • 1 апреля 2016 11:40
  • Группа: Гости
  • Регистрация: --
  • Статус:
  • комментариев
  • публикаций
    • Нравится
    • 0
Какую версию ардуино иде использовали для компиляции?
Ответить Цитата
  • Группа: Посетители
  • Регистрация: 16.03.2016
  • Статус: Пользователь offline
  • комментарий
  • публикаций
    • Нравится
    • 0
После установки фьюзов на 8мГц зависания ушли, так что если кто решит питать от 3.3 Вольт не тактируйте мегу от кварца, хотя все зависит от конкретного экземпляра меги. После первого включения всё так же не играет станцию- шумит и показывает низкий уровень сигнала.
Ответить Цитата
  • max

  • 24 марта 2016 18:35
  • Группа: Администраторы
  • Регистрация: 5.03.2012
  • Статус: Пользователь offline
  • комментария
  • публикаций
    • Нравится
    • 0
Цитата: Stas
А чтобы подключить радио такое к колонкам нужен усилитель или активные колонки? В таком случае схема согласования не нужна?

Через конденсаторы 1 микрофарад хватит. Развязывать нужно обязательно.
Ответить Цитата
  • Stas

  • 24 марта 2016 07:12
  • Группа: Гости
  • Регистрация: --
  • Статус:
  • комментариев
  • публикаций
    • Нравится
    • 0
А чтобы подключить радио такое к колонкам нужен усилитель или активные колонки? В таком случае схема согласования не нужна?
Ответить Цитата
  • Группа: Посетители
  • Регистрация: 16.03.2016
  • Статус: Пользователь offline
  • комментарий
  • публикаций
    • Нравится
    • 0
Цитата: max
мега по даташиту только от 5 вольт может на 16 мегах работать

Знаю, в других проектах отлично работает от 3.3 на 16 и даже на 27 от 5, это видимо мега такая досталась с ардуиной. Отпишусь как на 8ми себя вести будет сутки.
Ответить Цитата
  • max

  • 23 марта 2016 20:54
  • Группа: Администраторы
  • Регистрация: 5.03.2012
  • Статус: Пользователь offline
  • комментария
  • публикаций
    • Нравится
    • 0
мега по даташиту только от 5 вольт может на 16 мегах работать
Ответить Цитата
  • Группа: Посетители
  • Регистрация: 16.03.2016
  • Статус: Пользователь offline
  • комментарий
  • публикаций
    • Нравится
    • 0
Выходит что видимо не хочет мега нормально работать от 3.3 Вольт при 16мГц, даже блинк завис. Буду пробовать затактировать от внутренней RC цепи на 8 мГц и посмотрю как прошивка себя поведет.

На 8мГц работает отлично, буду тестировать на зависания.
Ответить Цитата
  • Группа: Посетители
  • Регистрация: 16.03.2016
  • Статус: Пользователь offline
  • комментарий
  • публикаций
    • Нравится
    • 0
Попробовал- висит. Сейчас блинк залил, пробую как с ним.
Ответить Цитата
  • max

  • 22 марта 2016 00:00
  • Группа: Администраторы
  • Регистрация: 5.03.2012
  • Статус: Пользователь offline
  • комментария
  • публикаций
    • Нравится
    • 0
все может быть, попробуй прошивку без изменений может че переполняется
Ответить Цитата
  • Группа: Посетители
  • Регистрация: 16.03.2016
  • Статус: Пользователь offline
  • комментарий
  • публикаций
    • Нравится
    • 0
Цитата: max
чудес не бывает, где то косяк, я человеку с ардуинки мегу вынял, прошитую, все на макетке спаял и работает, и с первого раза все работает автоматом на станцию которую он в основном слушает.

Думаэте в меге засада? Залью в неё блинк, посмотрю сколько проморгает непрерывно.
Ответить Цитата
  • max

  • 21 марта 2016 22:41
  • Группа: Администраторы
  • Регистрация: 5.03.2012
  • Статус: Пользователь offline
  • комментария
  • публикаций
    • Нравится
    • 0
чудес не бывает, где то косяк, я человеку с ардуинки мегу вынял, прошитую, все на макетке спаял и работает, и с первого раза все работает автоматом на станцию которую он в основном слушает.
Ответить Цитата
  • Группа: Посетители
  • Регистрация: 16.03.2016
  • Статус: Пользователь offline
  • комментарий
  • публикаций
    • Нравится
    • 0
Цитата: max
Цитата: Dark-Dante
И все таки проблема зависания мк имеет место быть и происходит это хаотично, может за час зависнуть, а может и 14 проработать, как это побороть? Подсказали что через вотчдог как то надо ресет делать время от времени, но нехочется, настройки сбрасываются.

У товарища работает по целому дню в гараже и ни разу не висло, шины SDA SCL подтяни к питанию через 10к резисторы.

Подтянуты через 3,3 кОм. Модуль то играет, ему то чего виснуть, мега висит, экран замирает, кнопки не реагируют. Перепрошивался уже много раз по разному, сначала фьзы, потом прошивка, наоборот, через среду ардуино, через дудку, с загрузчиком ардуины в памяти мк и без- виснет. И при первой подачи питания модуль не настраивается на заданную частоту- шумит, при последующих отключениях с небольшими перерывами- все ок, через минут 5 отключения снова так же шумит.
Ответить Цитата
  • max

  • 21 марта 2016 21:37
  • Группа: Администраторы
  • Регистрация: 5.03.2012
  • Статус: Пользователь offline
  • комментария
  • публикаций
    • Нравится
    • 0
Цитата: Dark-Dante
И все таки проблема зависания мк имеет место быть и происходит это хаотично, может за час зависнуть, а может и 14 проработать, как это побороть? Подсказали что через вотчдог как то надо ресет делать время от времени, но нехочется, настройки сбрасываются.

У товарища работает по целому дню в гараже и ни разу не висло, шины SDA SCL подтяни к питанию через 10к резисторы.
Ответить Цитата
  • Группа: Посетители
  • Регистрация: 16.03.2016
  • Статус: Пользователь offline
  • комментарий
  • публикаций
    • Нравится
    • 0
И все таки проблема зависания мк имеет место быть и происходит это хаотично, может за час зависнуть, а может и 14 проработать, как это побороть? Подсказали что через вотчдог как то надо ресет делать время от времени, но нехочется, настройки сбрасываются.
Ответить Цитата
  • Группа: Посетители
  • Регистрация: 16.03.2016
  • Статус: Пользователь offline
  • комментарий
  • публикаций
    • Нравится
    • 0
Цитата: max
Цитата: Dark-Dante
А возможно без особых изменений кода сделать чтобы в режиме регулировки громкости и ручной настройки кнопки + и -, а также меню работали на удержание и не приходилось их клацать по 15 раз? Может задержку где поменять?

Скорей нет, код антидребезга проверяет состояние кнопки, нужно пописать условие если кнопка нажата то значение++ и задержку.

Понял, буду использовать как есть))
Ответить Цитата
  • max

  • 20 марта 2016 13:58
  • Группа: Администраторы
  • Регистрация: 5.03.2012
  • Статус: Пользователь offline
  • комментария
  • публикаций
    • Нравится
    • 0
Цитата: Dark-Dante
А возможно без особых изменений кода сделать чтобы в режиме регулировки громкости и ручной настройки кнопки + и -, а также меню работали на удержание и не приходилось их клацать по 15 раз? Может задержку где поменять?

Скорей нет, код антидребезга проверяет состояние кнопки, нужно пописать условие если кнопка нажата то значение++ и задержку.
Ответить Цитата
  • Группа: Посетители
  • Регистрация: 16.03.2016
  • Статус: Пользователь offline
  • комментарий
  • публикаций
    • Нравится
    • 0
А возможно без особых изменений кода сделать чтобы в режиме регулировки громкости и ручной настройки кнопки + и -, а также меню работали на удержание и не приходилось их клацать по 15 раз? Может задержку где поменять?
Ответить Цитата
  • Группа: Посетители
  • Регистрация: 16.03.2016
  • Статус: Пользователь offline
  • комментарий
  • публикаций
    • Нравится
    • 0
Не знаю что с символами, добавил свои строки в Ваш скетч и всеравно вылезает Vol 0, теперь еще и ноль добавился. С моно все хорошо, буст у меня по умолчанию включен и моно его не выключает, в 12м байте 1 и по звуку хорошо слышно что моно включается и отключается, буст не пропадает. По нормальному у меня не хватает знаний написать, за 2 дня освоил только то что сделал и то с подсказками и перешиванием меги 50 раз.
Ответить Цитата
  • max

  • 19 марта 2016 07:44
  • Группа: Администраторы
  • Регистрация: 5.03.2012
  • Статус: Пользователь offline
  • комментария
  • публикаций
    • Нравится
    • 0
С индикацией в начале кода, где название скорей всего с количеством символов накосячил там не зря пробелы стояли.
Ну и бегло глянул твое творчество, if(forcemono++)WriteReg(0x02,0xF00D); замечательно ты включаешь моно режим и с ним вместо все остальное,
F00D = 1111000000001101, если у тебя басбост включен жмешь моно оно его выключает. я думаю смысл ты понял. нужно делать проверки в зависимости от состояния бита, яж говорил там меню по нормальному подростет раза в 3 если по уму написать
Ответить Цитата
  • Группа: Посетители
  • Регистрация: 16.03.2016
  • Статус: Пользователь offline
  • комментарий
  • публикаций
    • Нравится
    • 0
Цитата: max
Цитата: Dark-Dante
Дописал индикацию и добавил в меню пункт форс моно, все работает, но когда выключаешь буст вместо слова буст вылезает слово Vol на его месте, не подскажете почему так, не могу разобратся?

ну видать содрал кусок кода с пункта громкости и что то не убрал

Нет, код не драл, сделал как писал, просто если начинаешь писать что то под ФМ начинают лезть туда строки из меню и всё на кучу, вот скетч http://file.sampo.ru/w82jgs/
Ответить Цитата
  • max

  • 18 марта 2016 22:35
  • Группа: Администраторы
  • Регистрация: 5.03.2012
  • Статус: Пользователь offline
  • комментария
  • публикаций
    • Нравится
    • 0
Цитата: Dark-Dante
Дописал индикацию и добавил в меню пункт форс моно, все работает, но когда выключаешь буст вместо слова буст вылезает слово Vol на его месте, не подскажете почему так, не могу разобратся?

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

  • 17 марта 2016 21:56
  • Группа: Администраторы
  • Регистрация: 5.03.2012
  • Статус: Пользователь offline
  • комментария
  • публикаций
    • Нравится
    • 0
Цитата: Dark-Dante
Есть продвижение по коду на индикацию, читать бит сложно, надо разобраться с и2с, решил задать адрес как переменную и в зависимости от её состояния вывод слова Басс на экран. Напишу как получится чтобы добавить в статью, если захотите. Память на станции сложно написать будет?

на почту напиши uw5rr@mail.ru добавим в статью. Память на станции если писать то нужно наверно переделывать кнопки, не удобно будет на 3х кнопках клацать, нужно переменную отвечающую за частоту писать в память по нажатию кнопки, а потом читать ее толи перелистыванием толи клавиатуру прикруить полноценную. Времени на все нужно много, а из за кучи проэктов его нет(((
Ответить Цитата
  • Группа: Посетители
  • Регистрация: 16.03.2016
  • Статус: Пользователь offline
  • комментарий
  • публикаций
    • Нравится
    • 0
Есть продвижение по коду на индикацию, читать бит сложно, надо разобраться с и2с, решил задать адрес как переменную и в зависимости от её состояния вывод слова Басс на экран. Напишу как получится чтобы добавить в статью, если захотите. Память на станции сложно написать будет?
Ответить Цитата
  • Группа: Посетители
  • Регистрация: 16.03.2016
  • Статус: Пользователь offline
  • комментарий
  • публикаций
    • Нравится
    • 0
Заменил, спасибо, буду индикацию ковырять пробовать еще

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

  • 16 марта 2016 22:42
  • Группа: Администраторы
  • Регистрация: 5.03.2012
  • Статус: Пользователь offline
  • комментария
  • публикаций
    • Нравится
    • 0
Смотри в первом коде в статье находишь строку WriteReg(0x02,0xC00D); убираешь ее и вместо нее ставишь строку WriteReg(0x02,0xD00D); и БассБост будет запускаться сам при включении питания.
Ответить Цитата
  • Группа: Посетители
  • Регистрация: 16.03.2016
  • Статус: Пользователь offline
  • комментарий
  • публикаций
    • Нравится
    • 0
Да, 12й. Некуда уместить все слово, мне бы просто БАСС вывести, там как раз под него место есть отличное под ФМ.

Ах да, так и не понял, при подаче питания буст сразу есть или надо включать? На акустике разница хорошо заметна.