ТЕА5767 FM радио с ретро функции и Arduino
Управление с бутони
/kn34pc.com/конструкции/...

Независимо от многобройните експерименти с Arduino и TEA5767, които направих в последната половин година, всъщност плавно и сигурно извървях пътя към конструиране на Ретро FM радио. Или по-точно: FM радио с ретро функции, представляващо едно малко завръщане към недалечното минало.

Разбира се, още докато обмислях този проект, се вгледах в панелите на два фабрични тунера от стари маркови производители на известни в миналото марки - ONKYO и TECHNICS. Така изглеждат те:

Всъщност тези снимки ми зададоха основните функции на проекта:

- захранване с 2 броя Li-Ion акумулаторни батерии
- търсене по честота напред със стъпка 100 kHz - UP
- търсене по честота назад със стъпка 100 kHz - DOWN
- бързо сканиране на честотния обхват - SCAN
- запаметяване на станция по избора или запаметяване на последната - SAVE in MEMO
- извикване на запаметената станция по всяко време - RECALL RST
- гасене или светване на подсветката на LCD дисплея - BACK LIGHT
- цифров индикатор на честотата
- аналогов индикатор на честотата със стрелкова система
- цифров индикатор за силата на сигнала
- аналогов индикатор за силата на сигнала със стрелкова система
- буквена индикация на цифровия дисплей - STEREO/MONO
- светодиоден индикатор STEREO/MONO

Със следващата опростена схема ви представям нагледно идеята:

На тази схема допълнителните опции като памет и подсветка не са представени, тъй като ги включих в процеса на разработване на програмния код. Например: след като сглобих Ретро FM радиото в подходяща кутия, се оказа, че консумацията е около 100 mA и батериите се изтощават за около два часа. Измерих консумирания ток със и без включена подсветка на дисплея LCD16x2 и разликата се оказа съществена - 50 mA, което ме накара да допиша кода добавяйки бутон, който да изпълнява две команди: включване и изключване на подсветката чрез допълнителен ключов транзистор.

Честно казано, само с тази функция направих няколко експеримента, които пряко са свързани с функции, които съм виждал във фабричните тунери.

Например:

- включване и изключване с един и същи бутон
- включване с бутон и самоизключвне чрез таймер (millis()) след 10 секунди
- включване с натискане на кой да е бутон на панела и самоизключване чрез таймер

Експериментирайки практически и трите функции накрая се спрях на първата - ръчно включване и изключване на подсветката, която ми се стори най-удобна от потребителска гледна точка.

След като обмислих функциите, които са ми необходими за проекта, създадох графичния оригинал на печатната платка, която направих така, че дисплея да се закрепи за гърба й и да се образува сдвояване на двете платки тип "сандвич" с което да спестя място, а и да получа един удобен за използване модул. Всички връзки, които са постоянни (виж схемата) са осъществени на платките, а функционалните връзки към системите и бутоните са с куплунги, които лесно позволяват да бъдат заменени с кабелчета (jumpers). На следващата снимка виждате първоначалния вариант на печатната платка, а наскоро направих нова подобрена версия, съдържаща множество връзки изведени на куплунг с цел разширяване на функциите на програмния код, както и се получи на практика, добавяйки бутона за включване и изключване на подсветката на LCD16x2.

На горната платка са вградени 5 команди и три изхода за две стрелкови ситеми и светодиод за наличието на стереосигнал. Светодиодът е включен през резистор 390 Ohm, което на опростената принципна схема не съм показал. На платката е предвиден тример-потенциометър за регулиране на контраста на дисплея, който е със стойност 10 kOhm. Нискочестотният усилвател е с модул PAM8403, който е свързан към НЧ изходите на модул ТЕА5767 чрез кабелчета. Освен него съм разработил свой аудио стерео-модул с две ИС TOSHIBA TA7368 като съм използвал потенциометър със средна точка (tap), към която съм свързал тон-компенсираща верига за повдигане на ниските честоти, която прави звученето по-дълбоко и меко.

А ето как изглежда сглобена печатната платка:

Извървях твърде дълъг път докато стигнах до тази конструкция, която много улесни моите експерименти по този проект. Но ето как започнах опитите си с една платка Arduino UNO, бредборд и дисплей:

Двете стрелкови ситеми се отличават функционално, като системата вляво показва силата на сигнала, а системата вдясно показва пропорционално на честотата отклонение. Скалата може да се разграфи в MHz. В случая три деления, видни на системата съответстват на около 6 MHz, отговарящи на 94,5 MHz, отчетени на цифровия дисплей.

Скоро получих от производителя основната печатна платка, бързо и нетърпеливо запоих всички елементи и куплунги по нея. След това запоих куплунга за дисплея от задната страна на платката и включих в него дисплея. Ето така получих желаната конструкция тип "сандвич".

След като запоих и рейките с пинове, вече бях готов за сглобяване на поредния FM радиоприемник с ТЕА5767. Сега вече можех да зареждам и тествам софтуер с три, четири или шест бутона за управление и с това да тествам всички планирани предварително функции.

Конструкцията стана много достъпна и прегледна. Следващата стъпка беше свързването на "сандвича" с бредборд, на който бях монтирал бутоните, както и включването на светодиода за стерео индикация с двете стрелкови системи.

А сега нека да ви покажа как стрелковите системи и цифровия дисплей реагират на изменението на честотата и силата на приетия сигнал с програмен код с пет бутона:

Очевидна е промяната както по честота, така и силата на сигнала, индицирани както от цифровия дисплей, така и от аналоговите системи. На тази конструкция все още липсва бутона за включване и изключване на подсветката, тоест шестата функция.

На следващата снимка може да видите ранната версия на FM радиоприемника, монтиран в съответната кутия и реализиран с програмния код "4b_TEA5767 Freq_Signal_LED Graph_3 Buttons_EEPROM.ino":

Така бавно и постепенно се приближавах към заветната цел. Оставаше да реша проблема с голямата консумация на ток от батериите.

Сигурно се питате "защо"? Защото исках този радиоприемник да работи с автономно захранване, тоест да стане преносим, но очевидно с консумация 100 mA това е непостижимо. Именно така стигнах до въвеждането на команда за включване и изключване на подсветката, която както казах в началото, реализирах по три начина, от които избрах практически един бутон с две команди, което правеше тази функция независима и ръчно управлявана.

Всъщност тази е шестата команда, чийто шести бутон ще видите на видеото, демонстриращо работата на подсветката:

На следващото видео може да видите демонстрация на работата на подсветката, която се включва от същия бутон, но се самоизключва след 10 секунди от таймер, изграден с функцията millis().

За продължението на проекта отново седнах зад клавиатурата и изчертах няколко платки, една с по-големи възможности (която вече показах по-горе), платка с бутони и платка за стерео НЧУ с ИС TOSHIBA TA7368P (която ще замени фабричния модул PAM8403, работещ с максимално напрежение 5V), докато усилвателя с TA7368 работи в широк диапазон на захранващото напрежение 2-10 V и мога да свържа директно към батериите, с което се облекчава по ток стабилизатора за 5 V.

Платката, съдържаща почти всички команди, които могат да се въведат с бутони има следния вид:

Нискочестотният стерео усилвател, който реализирах с две интегрални схеми на TOSHIBA ТА7368P, може да видите на следващите снимки:

С помощта на всички модули, които сам създадох, конструирах хардуера на FM радио с модула TEA5767 и проиграх нагледно всички части от софтуера за Arduino и можеше да продължа с още функции. Или другата възможност е отново радиото, което най-много ми допада да поставя в кутията, която видяхте по-горе, но за целта трябва да измеря консумацията на ток от батерии 6 x "AA" или 9V. С това вече проектът отиваше към своя логичен край.

Сглобих новите модули и свързах отново Arduino Nano, LCD дисплея към същата платка и с проводници: нисокчестотния усилвател и клавишния блок. След това добавих аналоговата система за отчитане на силата на сигнала, втора система, имитираща честотната скала на FM радиото и светодиод (вграден в системата) за индикация на стерео сигнала.

С това всички функции, описани в началото на статията като задание, вече са налични, с което считам този интересен проект за приключен.

А ето окончателна снимка на конструкцията:

FM радиото на горната снимка, реализирано с модул ТЕА5767 и управлявано само с бутони в Arduino IDE среда, е с програмен код "UP_DOWN SEARCH_SAVE in MEMO_LIGHT Button.ino". В архива към статията съм включил библиотеката за ТЕА5767, която съм използвал.

За да не се получава объркване не съм включил в архива един друг код, в който подсветката се включва с едно натискане на бутона BACKLIGHT и се самоизключва след, примерно, 10-15 секунди, но ако някой прояви интерес, бих могъл на по-късен етап да го добавя.

За тези, които искат да видят практически разликата в организацията, изпълнението и управлението на барграфа, споменат в моята статия "ТЕА5767 FM радио с Arduino и управление с бутони" предлагам програмния код "UP_DOWN_SAVE in MEMO_LIGHT Button.ino". Той се различава съществено от кода, по който работих през последните месеци, описан в тази статия. Барграфът в този код се описва байт по байт и има следния вид:


byte a1[8] = {0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b00000, 0b11111};  // 1 line


Програмният код изгражда FM радио с ТЕА5767 със следните функционалности:

UP - сканиране по честота нагоре
DOWN - сканиране по честота надолу
SAVE in MEMO - запаметяване на която и да е желана честота на приемане
LIGHT Button - включване/изключване на подсветката на LCD1602
Analog Signal - аналогов индикатор за силата на сигнала
Freq. Indicator - аналогов индикатор за настройката по честота
STEREO/MONO - LED индикатор

И тук бутона LIGHT за включване и изключване на подсветката на LCD дисплея може да се реализира по два начина. Единият като бутон с две команди, а вторият като бутон с таймер, който ще изключва автоматично подсветката след, примерно, 10-15 секунди.

И на края следва снимката на окончателния вариант на FM радиото с ТЕА5767. Тук вече то е с четири бутона, като единият е за включване/изключване на подсветката, бутона "S" е с това означение, тъй като с единия програмен код играя ролята на "Save", а в другия случай на "Scan". Осъществих захранването чрез адаптер и Li-Ion батерии 3,7 V / 3000 mAh с които то работи в зависимост от силата на звука най-малко 20 часа непрекъснато, както и с включена подсветка, а когато тя е изключена надхвърля 30 часа.

Archive Arduino sketches [zip,ino,cpp,h][11kb]

Литература:
1. Arduino Examples
2. New TEA5767 Sketches to Make an FM Radio with Arduino
3. Radio FM cu TEA5767 si ... Arduino
4. FM радио на Arduino
5. FM приемник на TEA5767 (Arduino)
6. FM радиоприемник с ИС TEA5767 под управление на Arduino
7. FM радиоприемник с ИС TEA5767 и дистанционно управление под управление на Arduino

Валери Терзиев
14 октомври 2021 година