Дорогие посетители, поздравляем вас с новым годом, от души желаем вам хорошего настроения, деньжат мешок и счастья с избытком :)



Сенсорный переключатель восьми аудио каналов на контроллере

Этот сенсорный переключатель восьми аудио каналов на контроллере позволяет легко коммутировать восемь (8) сигнальных каналов небольшой мощности одним простым прикосновением!

Переключатель запоминает своё последнее состояние и при подаче питания включает именно те каналы (в данном случае - звуковые), которые были включены до его выключения.

Предыстория устроства такова:

Как-то старший братик пожаловался на отсутствие возможности слушать и переключать музыку в его Peugeot 407 в широком диапазоне, т.е. в самой магнитоле некуда вставить диск либо флешку, даже линейного входа нету, есть только радио и CD-чейнджер на 6 CD. Только 6 CD! И только CD! Ставить другую магнитолу не охота: -заводская отлично влита под дизайн авто, другую туда ну никак не вставить - коряво будет выглядеть.

Подумал я немного и спросил, как он на счёт идеи слушать музыку с телефона, который всегда можно вставить в зарядное и получится портативный плеер, у которого никогда не сядет батарейка и с помощью которого можно скачать музыку из интернета. Правда, без высоких технологий, без блютуза и прочих приблуд (не дорос я ещё до такого) - просто по проводу. В магнитолу монтируется вход 3,5 Jack, а коммутацию осущевствлять простой механической кнопкой. Он согласился.

Было бы всё так просто....

Дело в том, что микросхема УНЧ управляется по шине I2C. То есть, не получится одной кнопкой управлять громкостью с телефона. В магнитоле осущевствлено программное управление энкодером. Это первый косяк.

Второй косяк заключается в том, что входов в этой микросхеме - четыре. Два задних и два передних. Параллелить входы тогда, когда коммутирутеся туда ещё телефон - занятие не самое благодарное.

Да и где я возьму маленькую красивую кнопочку или тумблер, которая позволит переключить сразу несколько звуковых каналов??? Не нашёл я ни у себя, ни на рынке таких кнопочек, только громоздкие многовыводные переключатели.

Незадолго до этого начал читать про контроллеры, такие программируемые микросхемы с массой возможностей, которые можно адаптировать под свои нужды.

Почитал литературы, запрограммировал пару платок: поморгал светодиодом, кнопкой заставил моргать и сел за сенсор. На страницах интернета вникнул, как они устроены. Забегая наперёд скажу, что много (очень много) строк кода, которые я тут нарисовал можно было оформить гораздо проще. Просто на момент написания кода я ещё плохо знал все операторы наизусть. А если ещё использовать язык С (читается си), то вообще по объёму программа займёт максимум листик :)

Так вот, почитал я, значит, как сенсорные кнопки работают, усвоил общий принцип, нарисовал на листе макет, накинул примерный алгоритм работы, составил первую программу. Из всех PIC контроллеров, что у меня были я выбрал pic16f84a. Почему этот всем приевшийся и устаревший PIC? Да потому, что он содержит минимум перефирии, дёшев и к тому же был у меня дома в smd исполнении.

Единственное что - много лишних и свободных ног остаётся, хотя тут не принципиально, но для этого проекта хватило бы любого контроллера на 8 ног. Даже на 6 :)

Кстати, в контроллерах STM32 в большинстве моделей есть выводы, которые превращаются в сенсорные простым конфигурированием (выбором функции сенсора из множества доступных конкретно на данном выводе). У них узнать есть касание или нет и дать команду на дальнейшую обработку события по сути можно с помощью двух-трёх строк кода языка С.

Замечательно, не правда ли?

Вот так выглядит этот самый сенсорный переключатель восьми аудио каналов на контроллере PIC.

 

Всё. Весь сенсорный переключатель. Обычно в таких случаях кладут рядом линейку Я не подумал, когда фотографировал :)

Размеры этой платы с кварцем - 55х25х5. Если заменить кварц на SMD вариант, то плата становится тоньше на 2 мм, итого в высоту будет 3 мм!

Прежде всего, поговорим о недостатках. Максимальная тактовая частота у этого пика - 10 МГЦ, её недостаточно для точного определения наличия руки в непосредственной близости от, например, пластинки металла размером 10x10, однако более, чем достаточно для определения касания до этой пластинки металла;
Просто я думал, что кнопки и железяки никакой не будет вообще. Планировалась установка сенсорной пластины с внутренней стороны магнитолы.
Не придумал я больше недостатков к задуманному устройству. Если найдёте - опять же - пишите.
А хотя вспомнил - нету предусилителя звукового сигнала со стороны телефона. Иначально он с ним и планировался, глянул на своё же фото:

 

В принципе, сенсор может функционировать и без него. Только возможна ситуация, когда телефон не даст той необходимой громкости, когда хочется "врубить на всю" :)

Примечание - в конце статьи есть продолжение - установка этого устройства в магнитолу. И звука от мобильника, кстати, хватает на то, чтобы слушать очень громко.

Появилась некая "хайтековость" вместо изначально задуманной страшной кнопки :)

Изначально я тренировался на таком же контроллере, только в DIP корпусе. Для этого было изготовлено что-то типа макетки, что ли..

 

Схему напаял на эти выводы, контроллер программировал напрямую, без применения технологии внутрисхемного программирования ISP.

Со всеми детальками первый полуфабрикат появился в таком виде:

 

Страшненько выглядит, правда? Зато работает :)

Плату рисовал в DipTrace, но со временем перевёл для посетителей сайта в *LAY. И вообще, это я дал ей предназначение звук коммутировать, а ведь устройство можно адаптировать и для переключения более мощных нагрузок, с разным количеством каналов и разным количеством сенсорных кнопок.

И вот, первый набросок платы сделан и распечатан - смотрим, сходятся ли ножки, масштаб..

 

Всё сходится. Можно выводить на печать и делать плату. Да вот только смутили меня эти волны на дорожках. Оказалось, это из-за несогласования разрешения печатей принтера и изображения. Поменял на 600 точек на дюйм разрешение и вот она, разница:

 

Так что будьте внимательны, не попадитесь. Особенно это касается тех, у кого плохое зрение.

Дальше по накатанной: печатаем на глянцевом листе от обычного спама в подъездные почтовые ящики:

 

Утюгом переносим изображение на отпалированный текстолит:

 

Травим плату. Только аммоний персульфат. На фото плата протравлена немного не до конца.Вытравленная плата запоминающего сенсорного переключателя звуковых сигналов

 

 

С применением SMD кварца и более мелкого контроллера, платка потеряла бы в длине миллиметров эдак 10, а то и больше.

Лудим, припаиваем контроллер:

 

По-быстрому осваиваем технологию внутрисхемного программирования. А осваивать там в принципе и нечего. Паяем провода в соответствующие места платы. Кстати, те два полигона, что идут от 12 и 13 выводов - не для SMD детали, а для одноразового программирования платы по интерфейсу SPI по принципу: припаял, запрограммировал, отпаял.

 

На последнем фото видно, что я не предвидел остутствия у себя конденсаторов типоразмера 0603 для кварца. И даже 0805 не нашлось, только 1206, поэтому они немного не на своих посадочных местах.

Схема устройства в общем простая:

 

Можно упростить: убрать резистор 1кОм с 4 ноги и напрямую к Vcc.

Update. Вот, покуда добавлю исходник на ассемблере - качайте, смотрите :) Открывать любым блокнотом. И прошивку добавил, слово конфигурации - 0009h. А вот прошивка со словом конфигурации. И даже плата тут есть. Чтобы сохранить прошивку - нажмите правой кнопкой мыши по ссылке - пункт "сохранить по ссылке как..."

Как запрограммировать контроллер по SPI - в интернете полно статей.

Написал продолжение статьи, в котором описывается удачный опыт интегрирования устройства в магнитолу. Читаем, обсуждаем.

 

Совсем недавно все самые полезные компоненты электроники мы начали собирать в нашем магазинчике. Эти вещи проверены временем и опытом как лично нашим, так и наших друзей. Зайдите, вдруг вы найдёте там для себя что-то полезное :)

Ещё статьи

© 2012 - 2017 TOKES.RU. ВСЕ ПРАВА ЗАЩИЩЕНЫ