Промышленное производство
Промышленный Интернет вещей | Промышленные материалы | Техническое обслуживание и ремонт оборудования | Промышленное программирование |
home  MfgRobots >> Промышленное производство >  >> Manufacturing Technology >> Производственный процесс

FM-радиоприемник на Arduino и модуле TEA5767

Компоненты и материалы

Компонент Количество
Arduino Nano (в тексте указан Micro, но далее используется Nano) 1
Модуль TEA5767 1
LCD-дисплей Nokia 5110 (84x48) 1
Потенциометр 10 кОм (регулировка частоты) 1
Аудиоусилитель LM386 (модуль) 1
Динамик 3 Вт 1
Плата для прототипирования 1
Аудиокабель (3.5 мм джек) 1
Перемычки 1 набор
FM-передатчик (для тестов) 1

Программное обеспечение

О проекте

Введение

Соберем простой FM-радиоприемник на макетной плате. Мозг проекта — Arduino Nano. Дисплей Nokia 5110 показывает частоту, уровень сигнала и индикатор стерео. Громкость и частота регулируются двумя потенциометрами. Стоимость проекта ~$15.

Шаг 1: Детали

Список выше. Nokia 5110 — любимый дисплей автора: низкое потребление (0.4 мА без подсветки, 0.06 мА в спящем режиме), интерфейс SPI (8 проводов). TEA5767 — FM-чип с I2C. На модуле есть слабый усилитель для наушников, поэтому нужен внешний LM386 и потенциометр громкости.

Шаг 2: Подключение

  1. Расположите детали на breadboard. Общие GND и VCC (кроме потенциометров).
  2. TEA5767: SCL → A5, SDA → A4 (I2C).
  3. Потенциометр частоты: средний вывод → A0.
  4. Громкость: аудиокабель в выход модуля → вход потенциометра громкости → средний вывод → вход LM386. GND кабеля → GND LM386. Питание LM386 от рельсов breadboard. Динамик на выход LM386.
  5. Nokia 5110: RST→D12, CE→D11, DC→D10, DIN→D9, CLK→D8, VCC→3.3V, LIGHT→GND (подсветка ВКЛ), GND→GND.
  6. Опционально: конденсатор 330 мкФ на питании для снижения шумов.

Шаг 3: Программная часть

Используются библиотеки: Nokia5110_Graph и библиотека для TEA5767.

Алгоритм:

  1. Инициализация радио и дисплея, заставка 3 сек.
  2. В loop: чтение потенциометра частоты, маппинг 0–1023 → 87.0–107.0 МГц.
  3. Для стабильности: перестройка только если частота изменилась ≥ 0.1 МГц.
  4. Обновление экрана: частота, уровень сигнала, стерео-индикатор.
void setup() {
  radio.setMonoReception();
  radio.setStereoNoiseCancellingOn();
  initScreen();
  showSplashScreen();
  Serial.begin(9600);
}

void loop() {
  int val = analogRead(A0);
  int frequencyInt = map(val, 2, 1014, 8700, 10700);
  float frequency = frequencyInt / 100.0f;

  static float previousFrequency = 0;
  if (abs(frequency - previousFrequency) >= 0.1f) {
    lcd.clrScr();
    radio.selectFrequency(frequency);
    printSignalStrength();
    printStereo();
    printFrequency(frequency);
    previousFrequency = frequency;
  }
}

Полный код в архиве FMRadio.zip (ссылка в оригинале). Актуальная версия на сайте проекта: educ8s.tv.

Итоги и планы

За полчаса собран рабочий радиоприемник. Качество звука с текущим усилителем и динамиком среднее — планируется улучшение: другой усилитель/динамик, переход на монтажную плату, 3D-печати корпуса в ретро-стиле, доработка кода (тонкая настройка, снижение потребления для батарейного питания).

Схема

FM-радиоприемник на Arduino и модуле TEA5767

Производственный процесс

  1. Цифровые кости на Arduino: генератор случайных чисел с LCD-дисплеем и кнопкой
  2. Wi‑Fi интернет-радио на Raspberry Pi и Arduino: стриминг станций со всего мира
  3. Строим Iron Man на Arduino: компоненты, сенсоры и пошаговый гайд
  4. Find Me: Умный поисковик вещей на Arduino и Bluetooth
  5. Сборка функционального 3D-печатного манипулятора на Arduino: пошаговое руководство
  6. DIY-контроллер увлажнителя на Arduino с реле: безопасная работа с высоким напряжением
  7. Сборка компактного FM-радио на Arduino Nano и RDA5807M
  8. NeoPixel Matrix Pong на Arduino Nano: неоновая игра Pong на матрице 15×10
  9. Своё рулевое управление (джойстик) для игр на Arduino
  10. Arduino 101: Пedometer с датчиком DHT11 и LCD-дисплеем