ARDUINO Радио ФМ на RDA5807M с управлением одной сенсорной кнопкой

men

★★✩✩✩✩✩
24 Май 2020
13
55
Радио без механических (энкодер, нажимные кнопки) деталей. Отдельно кнопки питания нет. Модули радио (arduino, RDA5807, SSD1306, PAM4803) выключаются и включаются программно.
На экране отображаются: режим звука (стерео/моно), полоска уровня напряжения питания МК,
направление поиска/регулировки громкости/яркости (UP/DN), блокировка (L),
крупным шрифтом - частота ФМ, уровень сигнала станции (RSSI), величины в процентах установленных яркости и громкости,строка RDS.
ssd1306.jpg ttp223.jpg
Управление только одной кнопкой:
При ненажатии кнопки в течении LOCK_TIME управление блокируется (индикатор L слева от частоты).
Громкость регулируется от режима MUTE (полная тишина) до 100% (16 ступеней).
По истечении SCR_TIME экран гаснет, МК засыпает, периодически просыпаясь и отображая на экране частоту станции и уровень напряжения питания МК.

Одинарное нажатие:
при разблокированном управлении - пошаговая регулировка громкости
при заблокированном - поиск следующей станции ФМ
Двойное нажатие:
при заблокированном управлении - разблокировка
при разблокированном - регулировка яркости дисплея
при выключенном устройстве - включение
Непрерывное длительное нажатие:
смена направления поиска/регулировки громкости/яркости (UP/DOWN)

Многократное нажатие подряд (более двух раз): выключение радио, усилителя, экрана, уход в глубокий сон МК.

На плате усилителя PAM4803 необходимо перерезать дорожку между 12 и 13 выводами. Вывод 12 (SHDN) подключается к Ардуино и это позволяет включать и выключать PAM4803 из программы.

Используются дополнительные библиотеки: Tiny4kOLED, RDA5807, GyverPower, OneButton.
Если необходимо кнопку подключать не к выходам Ардуино D2 или D3, то требуется еще и библиотека PinChangeInterrupt .
schema_1B.jpg

Засунул в подходящую пластиковую коробочку.
view1.jpg view2.jpg view3.jpg
 

Вложения

Изменено: