TEA5767 и Ардуино
Малогабаритный микромодуль очень практичен – его можно задействовать во многих современных проектах и начинаниях (например, для реализации сборки цифрового стерео-радиоприемника УКВ-FM диапазона). Как вы понимаете, сложно переоценить удовольствие, которое получает истинный "ардуинщик" от сборки радио своими руками!
Рассмотрим базовые технические параметры:
- напряжение: 2,5-5V;
- есть звуковой усилитель для наушников УНЧ TDA1308 (сопротивление в 32Ом);
- ток: 70-200мА;
- тип шины: I2C;
- рабочие частоты: 76 – 108 МГц;
- температурный диапазон: -20 ... +80°С;
- размеры: 11 х 12 мм.
Подключим радио модуль TEA5767 к Arduino. Для этой цели нам понадобятся такие аппаратные элементы: плата расширения Ардуино UNO, модуль TEA5767, комплект соединительных проводов.
Схема подключения показана на скриншоте:
Для дальнейшей работы и непосредственно программирования понадобится специализированная библиотека Wire. Ее можно отыскать в среде разработки IDE.
Заливаем скетч:
// Подключение библиотеки для 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() {;}
Можно добавить к этой схеме динамики для получения более насыщенного звука и дисплей для вывода значений на экран. Обратите внимание, как тогда будут выглядеть сборка и прошивка:
Пример кода:
// Подключение библиотек
#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);
}
У нас получилась полноценная радиостанция.
Если у вас что-либо не получается, ничего не работает, советуем переместить устройства в другое место (где сигнал лучше), а также попробовать использовать антенну. Это должно помочь исправить ошибку!
Сегодня поговорим о том, как воплотить в жизнь подключение FPM10A к Arduino, что это за модуль, где используется, каковы параметры его работы и т.д. Речь идет...
FM радио модуль стерео RDA5807M для Ардуино - отличное решение для создателей интересных проектов, в которых понадобится FM-радиоприемник. Модуль имеет ряд...
В этой статье мы рассмотрим подключение ADS1115 к Ардуино. Речь идет о 16-битном аналого-цифровом преобразователе, оснащенном 4 входами непосредственно для...
GSM модуль NEOWAY M590 – один из самых простых и бюджетных контроллеров, с помощью которого можно совершать звонки, принимать ∕ отправлять SMS-сообщения, а...
Сегодня рассматриваем подключение VL53L0X к Ардуино, а также основные особенности этого устройства. Датчик выбран нами для обзора не случайно – он вполне...