Содержание
- Обзор
- Характеристики модуля
- Подключение к плате Arduino
- Подключение динамиков к модулю TEA5767
- Пример использования
- Часто задаваемые вопросы FAQ
Обзор радио модуля TEA5767 FM
Модуль TEA5767 (рис. 1) предназначен для сборки цифрового стерео радиоприемника FM диапазона. Подключение к микроконтроллеру по протоколу I2C. На модуле установлены гнезда для подключения антенны и наушников. Содержит звуковой усилитель TDA1308 для наушников.
Рисунок 1. Модуль TEA5767.
Модуль TEA5767 может работать в режиме поиска радиостанций. Поиск останавливается при нахождении первой станции, имеющей уровень сигнала определенного значения, которое можно изменять. В случае слабого сигнала приемник автоматически переходит в режим моно.
Характеристики модуля TEA5767
- Напряжение питания : 5 В;
- Интерфейс: I2C;
- Диапазон принимаемых частот : 76 – 108 МГц;
- Функция поиска радиостанций.
Подключение к плате Arduino
Модуль TEA5767 подключается к плате Arduino по протоколу I2C. Для подключения по протоколу I2C используем 2 вывода Arduino.
Подключим модуль TEA5767 к плате Arduino Uno (по схеме рис. 2) и загрузим скетч I2C-сканера. В мониторе последовательного порта определяем I2C-адрес TEA5767, который равен 0x60.
Рисунок 2. Подключение к плате Arduino.
Рисунок 3. Определение I2C-адреса TEA5767 (скетч I2C-сканер).
Управление модулем осуществляется отправкой команд (5 байт) по протоколу I2C. Модуль так же позволяет читать из него информацию для реализации функции автопоиска и уровня сигнала. В листинге 1 показана настройка радио на определенную частоту.
Листинг 1
// Подключение библиотеки для I2C #include <Wire.h> // частота воспроизведения float f = 105.4; // массив для отправки I2C byte arr[5]={0,0,0xB0,0x10,0x00}; void setup() { Wire.begin(); // запуск радио unsigned int freqB = 4 * (f * 1000000 + 225000) / 32768; byte freqH = freqB >> 8; byte freqL = freqB & 0XFF; arr[0]= freqH; arr[1]= freqL; Wire.beginTransmission(0x60); for(int i=0;i<5;i++) { Wire.write(arr[i]); } Wire.endTransmission(); } void loop() {;}
Подключение динамиков к модулю TEA5767
На выходе УКВ приемника установлена микросхема TDA1308 – звуковой усилитель для наушников. Чтобы подключить к данному разъему динамики и получить громкий звук необходимо использовать усилитель, например показанный на рис. 4.
Рисунок 4. УНЧ для подключения динамиков к модулю TEA5767.
Рисунок 5. Подключение динамиков к модулю TEA5767.
Рисунок 6. Подключение динамиков к модулю TEA5767.
Пример использования TEA5767
Создадим на модуле TEA5767 радиоприемник с поиском доступных радиостанций. Данные о найденной радиостанции будем отображать на экране дисплея, а поиск радиостанций будем осуществлять по нажатии на кнопки (вниз или вверх по частоте).
Нам потребуются следующие компоненты:
- Плата Arduino Uno или Nano – 1;
- Кабель USB – 1;
- Плата прототипирования – 1;
- Модуль FM-радио TEA5767 – 1;
- УНЧ стерео – 1;
- LCD WH1602 I2C – 1;
- Кнопка – 2;
- Резистор 10 кОм– 2;
- Провода.
Схема соединения элементов показана на рис. 7.
Рисунок 7. Схема соединений для радиостанции на Arduino и TEA5767.
Приступим к написанию скетча. Для более удобной работы с модулем создана Arduino-библиотека TEA5767. Данные о найденной радиостанции будем отображать на экране LCD WH1602, по нажатии на кнопок будем осуществлять поиск радиостанций вниз или вверх по частоте.
Содержимое скетча показано в листинге 2.
Листинг 2
// Подключение библиотек #include <TEA5767.h> #include <Wire.h> #include <LiquidCrystal_I2C.h> // оздание экземпляров TEA5767 receiver; LiquidCrystal_I2C displ(0x27,20,4); // служебные переменные double freq; int flag = 0; int dir; unsigned char arr[5]; int mono; int lvl; void setup() { Wire.begin(); // запуск радио receiver.init(); // станция по умолчанию receiver.set_frequency(105.4); // запуск дисплея displ.init(); // подсветка дисплея displ.backlight(); } void loop() { if (receiver.read_status(arr) == 1) { freq = floor(receiver.frequency_available(arr)/100000+0.5)/10; mono = receiver.stereo(arr); lvl = receiver.signal_level(arr); // вывод информации на дисплей displ.setCursor(0,0); displ.print("FM: "); displ.print(freq); displ.setCursor(0,1); if (!mono) { displ.print("STEREO ");} else { displ.print("MONO ");} } // поиск станции if (flag == 1) { if (receiver.process_search (arr, direction) == 1) { flag = 0; } } // поиск вверх по частоте if (digitalRead(2)==HIGH) { flag = 1; dir = TEA5767_SEARCH_DIR_UP; receiver.search_up(arr); delay(250); } // поиск вниз по частоте if (digitalRead(3)==HIGH) { flag = 1; dir = TEA5767_SEARCH_DIR_DOWN; receiver.search_down(arr); delay(250); } delay(100); }
Загружаем скетч на плату Arduino и слушаем радиостанции, кнопками выбираем следующие.
Рисунок 8. Радиостанция в сборе.
Купить обучающие наборы ардуино можно в нашем магазине 3DIY с доставкой по России.
Часто задаваемые вопросы FAQ
- Проверьте правильность подключения модуля TEA5767 к плате Arduino.
- Подключите антенну.
- Переместите радиостанцию в зону уверенного приема
- Для увеличения громкости используйте УНЧ.
- Проверьте правильность подключения усилителя и динамиков к модулю TEA5767.