092-Универсальный обучаемый пульт.

Автор: | 05.12.2012


Давно хотел себе заиметь небольшой пульт для управления различной бытовой техникой. И вот, наконец, дошли руки, и хватило свободного времени для создания своего универсального пульта! Постарался сделать его поменьше, поудобней, покрасивей… в общем смотрите что получилось!


1 Принцип работы.

Универсальные пульты, имеющиеся я в продаже, в большинстве своем, работают по принципу предустановленных IR-команд. То есть в памяти пульта записана большая база протоколов различных пультов и для выбора нужного вбивается его код (книжечка с кодами прилагается к пульту).  Плюсом такого подхода есть то, что для настройки всех клавиш пульта нужно набрать один код. Недостаток очевиден – пульт сможет работать только с той бытовой техникой, от которой у нее есть команды, записанные в память (для случая, если в книжечке не нашлось нужной модели бытовой техники, производитель универсального пульта рекомендует пробовать ближайшие подходящие по модели или вообще все подряд).

Я пошел по другому пути. Для того чтобы не создавать огромную базу команд различных пультов, я решил записывать IR-команды с оригинального пульта в память микроконтроллера и впоследствии их воспроизводить (своего рода диктофон для IR-команд).  Обучаемому пульту нет разницы, по какому протоколу работает оригинальный пульт, нет разницы какого формата и длины IR-команда, он записывает всю передаваемую оригинальным пультом  информацию в сыром (RAW) виде и точно так же воспроизводит.

Конечно, есть ограничения, и некоторые пульты не могут быть изучены по объективным причинам:
— обучаемый пульт воспринимает IR-посылки TSOPом работающем на частоте 36 или 38 кГц (подавляющее большинство пультов работает именно в этом диапазоне) — это не дает возможности воспринять посылку от пульта который работает на несущей сильно отличающейся от несущей TSOP (например, 30 или 56 кГц);
— протоколы пультов с обратной связью (например, как у кондиционеров), по понятным причинам, не могут быть воспроизведены;
— нестандартные протоколы, которые имеют специфическое построение IR-команды (например, команда разбита на несколько посылок).


2 Конструкция пульта.

Обучаемый пульт представляет из себя небольшую коробочку с сенсорным клавишами. Питается вся конструкция от трехвольтовой батарейки 2032 . На корпусе имеется 9 сенсорных клавиши, 6 из них служат для управления техникой (клавиши пульта) и оставшиеся 3 – для выбора набора команд (соответственно, можно записать и воспроизвести до 3х наборов команд по 6 команд). Еще есть тактовая кнопка для переходов между режимами работы. Конструктивно пульт состоит из двух плат:
— первая – плата управления – это универсальная плата, собранная нами ранее;
— вторая – плата сенсоров (ее описание Вы найдете ниже по тексту).
Обе платы соединяются между собой при помощи разъемов, образуя цельную компактную конструкцию.


2 Схема пульта (шилда универсального пульта).

Remote-Scheme.spl7 - Схема универсального пульта

На рисунке показана схема универсальной платы вместе с шилдом обучаемого пульта.  На базовой плате могут быть установлены разные микроконтроллеры из серии ATmega48/88/168. Компоненты схемы не критичны по номиналам и допускают небольшое варьирование. Наверное, придется подобрать гасящий резистор для IR-светодиода. Чем меньше значение этого резистора — тем мощнее сигнал пульта, но быстрей будет садится батарейка.

Изначально пульт планировалось питать от трех батареек размера ААА, которые располагались бы в батарейном отсеке, прикрепленному снизу пульта, но полевые испытания показали, что небольшой батарейки 2032 на 3 вольта, вполне достаточно для удовлетворительной работы. Конечно, несколько уменьшается мощность IR-сигнала, но остается в приделах комфортной работы. В связи с этим была немного изменена печатка платы сенсоров, куда было добавлено место для крепления батарейки 2032.

Но нужно учитывать, что не все TSOPы способны работать при напряжении питания 3в. Если Ваш TSOP не заработал от 3х вольт, или Вам нужен мощный IR-сигнал, способный работать на больших расстояниях, отражаясь от стен и потолка, то прикрепите батарейный отсек на три батарейки типа ААА к низу пульта (закрытый батарейный отсек даже не испортит внешнего вида) и Вы получите мощный пульт и продолжительную работу.


3 Печатная плата

Как собрать плату управления – ранее я уже писал — читаем. Изготовление печатной платы шилда обучаемого пульта может представлять некоторую сложность по причине относительно тонких дорожек и больших полигонов сенсорных площадок. После протравки и лужения платы обязательно нужно просмотреть/прозвонить все дорожки на предмет обрывов и замыканий между собой.
Здесь оставляю разводку базовой платы и платы шилда пульта вместе с боковыми стенками в одном месте (для удобства изготовления всех плат за один раз).

Remote-PCB.lay - Рисунок печатной платы пульта


4 Сборка конструкции

После того как Вы убедились в целостности дорожек шилда – запаеваем компоненты. Особо там паять нечего, но есть некоторые нюансы:
— индикаторные SMD светодиоды (их два в параллель) нужно паять боком, для того, чтобы их свечение было видно сквозь плату.

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

Кстати, светодиоды не обязательно должны быть SMD. Можно просверлить в удобном месте платы отверстие и установить туда обычный светодиод, проводами дотянув к нему питание.

— Еще один проблемный для монтажа элемент – пьезоизлучатель. Габариты пьезоизлучателя не позволяют его установить в каком либо определенном месте (он просто не помещается), поэтому к его установке придется подойти творчески. Я, например, обрезал ножницами  стандартную пьезопластинку  до удобных размеров и припаял пластинку в нижней части пульта.

Если с пьезоизлучателем ничего не получается, вместо него можно установить светодиод, не забыв последовательно с ним поставить гасящий резистор (300 – 1000 Ом).

— Плата сенсоров имеет три боковые стенки, припаиваемые перпендикулярно (четвертая торцевая стенка паяется к универсальной плате). При соединении универсальной платы и платы сенсоров боковые стенки не должны затирать или клинить друг между другом. Для этого необходима подгонка плат между собой  — придется поработать напильником :).


5 Прошивка микроконтроллера

Прошивается базовая плата через стандартный разъем для программирования ISP-6 (он средний с боку базовой платы).
ULRemote.hex - Прошивка универсального пульта ATmega88
fusebits88.png - Фьюзы универсального пульта ATmega88
Напоминаю:Для Algorithm Builder и UniProf галочки ставятся как на картинке.
Для PonyProg, AVR Studio, SinaProg галочки ставятся инверсно.
Как программировать микроконтроллеры читаем в FAQ.


6 Декорирование пульта. Изготовление и крепление сенсорной панели.

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

Я выбрал способ, описанный в статье по созданию сенсорной панели. Распечатал при помощи цветного лазерного принтера на самоклеющейся бумаге рисунки передней и задней панели пульта, приклеил рисунки на пульт и покрыл сверху защитным слоем (приклеил сверху широкий скотч).

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

Вот вам несколько общих вариантов дизайна клавиш.

092-Дизайн3+.doc - Рисунки сенсорных панелей для пульта (DOC)


6 Работа обучаемого пульта

Пульт готов, теперь расскажу как с ним работать.

Для начала ознакомления с работой пульта — элементы управления:


— аппаратная (контактная) клавиша Set служит для различных целей, но главные — переход между режимами работы, усыпление пульта и вывод его из сна;
— индикаторные Led (на картинке он немного не на своем месте, но все течет, все меняется …) служит для индикации различных режимов работы + подсветка сенсоров;
— сенсорные клавиши смены программ и изменения уровня имеют автоповтор (функции: громкость, переключение каналов, яркость, тембр, …);
— сенсорные клавиши Power и Mute не имеют автоповтора (нужны для единичных действий: включить-выключить, открыть-закрыть, …);
— сенсоры выбора группы команд делают активным один из трех возможных наборов (по 6 штук) команд-сенсоров (например: 1-телевизор, 2-усилитель, 3-свет) ;
— еще есть пьезоизлучатель Buzzer (внутри корпуса), он озвучивает нажатия клавиш и выполняет ряд других действий.

Вот теперь сам алгоритм работы:
— При первом включении пульта (подаче питания), он начнет процедуру автоматической настройке сенсоров. Перед настройкой, с небольшими паузами, прозвучат два длинных и один короткий сигнал. Сразу после короткого сигнала сенсоры автоматически настроятся.  В момент автоматической настройке сенсорные площадки должны быть свободными. — Далее пульт переходит в режим воспроизведения команд из первой группы команд. Прозвучит длинный пииик и сразу за ним короткий (первый набор команд). Загорится Led. Если теперь нажимать сенсоры выбора группы команд то будет звучать длинный пииик и, сразу за ним, в зависимости от номера группы, количество коротких. Переключатели групп команд во всех режимах работают одинаково.
— При нажатии в режиме воспроизведения сенсоров команд, будет издаваться короткий звуковой сигнал (пик) и выдаваться IR-команда.
— Если пульт не трогать некоторое время он сам перейдет в режим сна. В режим сна можно ввести пульт принудительно нажав кратковременно Set. Кратковременное нажатие на Set в режиме сна просыпает пульт и он просигналит номер активной группы команд (чтобы лишний раз не тыкать пальцем 😉 ).
— Если в режиме воспроизведения длительно зажать Set, то пульт перейдет в режим обучения, издав два коротких сигнала, и Led начнет постоянно мигать. При нажатии на любой сенсор — светодиод погаснет, прозвучит длительный сигнал и пульт будет ждать IR-посылку от оригинального пульта. Если посылка получена, прозвучит длинный сигнал, пульт запомнит команду и вернется в режим обучения. Если посылки долго нет — прозвучит короткий сигнал и пульт перейдет в режим обучения самостоятельно. Еще, ожидание IR-посылки можно отменить кратковременным нажатием Set. В режиме ожидания IR-посылки оригинального пульта можно выбирать другие сенсоры или группы. Действия сенсоров-селекторов аналогично режиму воспроизведения. 
— Возвратится назад в режим воспроизведения можно длительно зажав Set (последуют два коротких сигнала) или, спустя некоторого времени бездействия, пульт сам перейдет в режим воспроизведения.


7 Решение проблем. Отладка конструкции.

Сенсоры устройства являются самым тонким и чувствительным элементом конструкции. Они нуждаются в аккуратном изготовлении (не смытый флюс или грязь на плате способны значительно ухудшить или даже сделать невозможным работу сенсоров) и точной настройке. В программе были приняты меры делающие работу сенсоров более надежной:
— при старте, программа проверяет линии сенсоров на отсутствие К.З. В случае, когда на сенсорах будет находиться напряжение питания (худший вариант, который может привести к «выгоранию» портов микроконтроллера) программа остановит свое выполнения и выдаст сигнал ошибки;
— при старте программа автоматически настраивает чувствительность для каждого сенсора отдельно;
— при удачной инициализации портов сенсоров и первой настройке чувствительности срабатывания сенсоров программа запишет уровни чувствительностей для всех сенсорных площадок в EEPROM с первого адреса (нулевой адрес – общая чувствительность) в порядке:

EEPROM:
&01 Up
&02 Down
&03 Plus
&04 Minus
&05 Power
&06 Mute
&07 Sel1
&08 Sel2
&09 Sel3
Прочитав при помощи программатора таблицу чувствительности из EEPROM можно косвенно оценить качество работы сенсоров и диагностировать проблемы с их работой.

А именно:
— Нормальная чувствительность лежит в пределах значений: 20-50. Эти значения не являются абсолютными, так как на чувствительность сенсоров влияет очень много факторов:
— Значения близкие к 0 говорят о том, что сенсорная площадка имеет утечки на «+питания» (КЗ не может быть, так как программа в этом случае просто не начнет работать (будет непрерывно выдаваться сигнал ошибки). Причиной утечек может быть плохо очищенная плата, «сопли» между дорожками, не той величины (меньше 1 Мом) подтягивающие резисторы сенсоров, плохо протравленные промежутки между дорожками на плате.
— Значения близкие к 255 говорят об утечках на «землю» (вплоть до КЗ), или обрыве в цепи сенсорная площадка – ножка микроконтроллера, или обрыве подтягивающего сенсор резистора (тот, который 1 Мом). Причинами утечек на «землю» могут быть: плохо отчищенная плата; «сопли» между дорожками; плохо протравленные промежутки между дорожками на плате.
— Величины чувствительностей сенсоров должны быть примерно одинаковыми. Слишком большой разброс значений хотя и не является однозначным показателем неправильной их работы (сенсоры обрабатываются и подстраиваются индивидуально), но указывает на то, что существуют какие-то проблемы.

Для случая ненадежной работы сенсоров, по нулевому адресу EEPROM, при помощи программатора, можно вручную задать общую чувствительность всех сенсоров. При этом нулевое значение соответствует максимальной чувствительности, 19 – минимальная, значения больше 19 будут устанавливать чувствительность по умолчанию – 5.

EEPROM:
&00 Sensitivity

При прошивке пульта, EEPROM очищается и все ячейки (в том числе и нулевая) получают значения 255, что автоматически устанавливает номинальную чувствительность.


8 Шилд для Arduino

Так как пульт собран на микроконтроллере используемым в платах типа Arduino, Freeduino и им подобных, логично сделать шилд универсального пульта и для них. На данный момент такого шилда я еще не разводил (не дошли руки), но если у Вас это получится сделать быстрей (и опробовать на работоспособность) – присылайте материалы и я с удовольствием выложу их в этой части статьи. Вот, в помощь, основа платы шилда Arduino в Sprint Layout:
Arduino-pin.lay - Заготовка шилда Arduino (Sprint Layout)


Дополнительные материалы:

Топик форума, где велась разработка пульта — можно почитать дополнительные материалы.
Топик обсуждения пульта на форуме.
Remote-Scheme.spl7 - Схема универсального пульта
Remote-PCB.lay - Рисунок печатной платы пульта
ULRemote.hex - Прошивка универсального пульта ATmega88
fusebits88.png - Фьюзы универсального пульта ATmega88
092-Дизайн3+.doc - Рисунки сенсорных панелей для пульта (DOC)
GCn Remote 2.zip - Исходник прошивки универсального пульта

(Visited 5 304 times, 9 visits today)

092-Универсальный обучаемый пульт.: 98 комментариев

  1. SVN

    Получилось просто СУПЕР. 🙂

  2. master chip

    Вот это да!!!Мегасупер даже.

  3. ssql

    Как всегда отлично!!!Очень понравилось, обязательно буду собирать))

  4. Evgen-82

    А нельзя ли его реализовать на MEGA8, вроде они не сильно отличаются от MEGA88

  5. GetChiper Автор записи

    Можно, конечно. В принципе, из нового функционала ничего не используется. Но нужно собирать новый пульт на меге8 его обкатывать… А не проще купить мегу88? Универсальная платка на меге88 может сгодится и на будущее.

  6. Evgen-82

    Да у нас в городе мегу 8 проблема купить а не то что мегу 88 или еще круче.

  7. Evgen-82

    и почему эту же прошивку нельзя использовать под мегу 8, изменив пару строк?

  8. GetChiper Автор записи

    Evgen-82 :

    Да у нас в городе мегу 8 проблема купить а не то что мегу 88 или еще круче.

    Переходите на интернет магазины — дешевле и все есть!

    Evgen-82 :

    и почему эту же прошивку нельзя использовать под мегу 8, изменив пару строк?

    Это не проблема — займет 3 минуты. Проблема в другом: если вдруг прошивка не заработает, чтобы найти проблему, мне нужно будет тоже собирать пульт на меге8… а это время которое я хотел-бы потратить на новое устройство…

  9. Evgen-82

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

  10. GetChiper Автор записи

    Договорились. Как понадобится — скину прошивку.

  11. Evgen-82

    Да хоть завтра, как бы МК мега 8 у меня есть в MLF корпусе, будет прошивка, соберу, проверю, отпишусь

  12. Maxtor62

    Уважаемый автор, а возможно ли сделать так, чтобы при нажатии на кнопку POWER включались и выключались сразу все три записанных устройства? У меня например, необходимо сразу включить ТВ, спутниковый ресивер и аудио ресивер. Такая возможность есть во многих промышленных универсальных пультах. Также интересует возможность использования меги 8 т.к. они имеются в наличии а 88 надо заказывать и ждать целый месяц. Может выложите под мегу 8 прошивку и если Evgen-82 получит положительный результат то будем её использовать.

  13. GetChiper Автор записи

    По поводу глобальной кнопки включения — не проблема. Будет готовый пульт — подправлю.

    А вот по поводу меги8 — это я погорячился. Сел перекомпиливать проект и увидел что переделать прошивку под мегу8 будет совсем не просто. Придется переписывать программу кардинальным образом. Всему виной ущербная функциональность таймеров в меге8 (таймера меги8 и половины функций меги88 не поддерживают!). Поэтому я все-же советую приобрести мегу88.

  14. SVN

    Полностью поддерживаю автора, купить 88 намного проще, в настоящее время, чем переделывать и тестировать программу заново под атмегу8 (потребуется много драгоценного времени, а его к сожалению очень мало). 🙂 Я для этого дела заказывал ATmega168A-AU по цене 70 рублей за штуку. А цена ATmega8A-AU – 55руб, ATmega88PA-AU – 75руб. Не знаю как насчёт месяца, мне пришли через 2 недели. Интернет пестрит предложениями, не ленитесь, приобретайте. 🙂

  15. mal4ugan

    часов на семисегментниках с суточным таймером включения и выключения нагрузки нет ни у кого на тиньке 2313?

  16. Zver666

    Предложение по питанию пульта.
    Есть такая классная батарейка как CR2016 — теже 3 вольта и высота 1,6мм.
    У CR2032 высота 3,2мм. Поэтому кому нужен мощный сигнал — могут поставить под скобу две таких батарейки.
    Единственное возникает вопрос куда стабилитрон впаять и какого номинала?

  17. GetChiper Автор записи

    Стабилитрон не нужен — 6 вольт микроконтроллер выдержит. Проблема будет в другом — сигнал будет мощным, но не долго :). Емкость маленькая. А вот тройка батареек ААА кардинально решает вопрос!

  18. Zver666

    Ну не знаю, насколько их хватит. Только в дистанционке от ворот стоит пара таких батареек около 2х лет (родители юзают три таких пульта, меняю батарейки когда кнопки срабатывают с 3х метров). С каждого пульта не мене четырех нажатий в день. Дедушка держит кнопку пока не откроются ворота, кнопку перепаиваю чаще чем батарейки меняю.

  19. hfelyx

    Всем привет! Скажите , можно ли использовать Atmega48 и прошить ее,без переделки конструкции???

    P.S.Огромное спасибо автору ,за все замечательные девайсы,представленные на сайте :-)!!!

  20. GetChiper Автор записи

    Я не пробовал, но теоретически должно работать.

  21. kazman_ferz

    Всем привет! С огромным интересом и нетерпением жду новых статей на вашем сайте, некоторые конструкции повторил все прекрасно работает! Вопрос к уважаемому автору- возможно ли модифицировать прошивку так чтобы использовать не сенсорные кнопки, а обычные механические? Заранее спасибо!

  22. GetChiper Автор записи

    Есть в планах сделать уменьшенный вариант пульта — сделаю его на кнопках.

  23. Planer

    Уважаемый автор, спасибо за постоянно интересные устройства, всегда есть чего почерпнуть для себя. К сожалению язык программирования assembler для меня чужд, мне ближе С, посему не могли бы вы растолковать «по косточкам» как происходит алгоритм захвата ИК команды в «сыром виде» и как ее потом «проиграть в эфир»? С уважением, ваш постоянный читатель.

  24. GetChiper Автор записи

    Все на самом деле просто. В большинства протоколов кодирование сигнала производится всего двумя периодами сигнала. Поэтому достаточно не запоминать каждый период байтом, а проанализировав всю посылку, найти этих два периода сохранить их как два байта и дальше сигнал можно описать битовым полем (0 — короткий период, 1 — длинный). Кроме того, придется запомнить байтами два первых-пилотных периода (они намного длинней от периодов данных) и конечно сохранить длину (количество периодов) всей посылки. Вот, собственно, и весь алгоритм.

  25. Planer

    Не особо понятно, конечно..
    Будет ли работать такая конструкция:
    После сработки прерывания по изменению состояния на ножке с частотой 36\38 кгц(нужно будет определиться)считываем биты друг за другом и заталкиваем в переменную смещением, понадобится несколько переменных. Только встает вопросс когда следует остановиться? для RC5 там 14 бит — достаточно 2х переменных, а для остальных протоколов, или может лучше по таймеру заканчивать прием бит, но тогда в каждой принятой команде будет много лишних данных.

  26. GetChiper Автор записи

    Я определяю конец посылки по длинной паузе (достаточно 20мС). Иначе никак.

  27. Planer

    Вообщем картина прояснилась, спасибо!

  28. alec220

    Давно читаю ваш сайт, но до этого оставался «тайным поклонником». Данная конструкция зацепила. Сначала кинулся повторять, но потом подумав, решил, что не решит она проблему обилия пультов на столе. Маловато кнопок на панели. Сейчас все устройства управляются «через меню», а для этого нужен «джостик» 4+1 кнопки + 4шт — выбор, возврат и т.д. 2 кнопки + и -, и вкл.выкл. получаем, для управления устройства надо около 12 кнопок.
    Отсюда вопрос: 1.Можно ли добавить количество кнопок на панели до 12х3?
    и 2. Нельзя ли как-то под какие-то кнопки сделать возможность запрограммировать записать последовательность из 2-3х команд для часто повторяемых функций? (например, у меня чтобы включить плеер надо включить плеер, ресивер и ТВ и т.д.)

  29. GetChiper Автор записи

    На каждую кнопку отводится в среднем 12 байт в EEPROM. Это примерно 40 команд.

  30. alec220

    Как раз получается. Я немного доработал уже печатку, получилось 14 кнопок, итого 10х3 по одной команде, плюс в 1 кнопку можно было бы записать даже по три команды. и три кнопки «переключения ус-ва». Могу прислать, то, что у меня получилось. Вот в программировании я практически «0». Если запись трех команд в одну кнопку вызывает большие сложности, то хотя бы немного изменить программу для 14-кнопочного пульта.

  31. GetChiper Автор записи

    Пока не стоит травить. В ближайшее время я все равно не займусь. Вот попозже, когда закончу текущие проекты — можно подумать.

  32. alec220

    Пожалуй, я все-таки вытравлю и сделаю 14 кнопочную версию, просто пока 5 кнопок работать не будут…

  33. Gdr2k106

    Всем привет! Я тут новенький! Очень класный сайт! Просто находка советов! Решил залогинется! Поучится, поскольку только недавно начал заниматся микроконтроллерами вего 3 месяца. Я так понял вы нажимаете на обратную сторону платы, тоесть даже так работает? А в примере написано что с лицевой стороны контакты. И ко мне пришла идея что если зделать матрицу двухсторонних сенсорных контактов, тоесть срабатывание по 2 кнопки одновременно получится тогда увеличится количество кнопок и защиту от нажатия 2 кнопки тоже можно зделать! Поскольку при нажатии второй кнопки будет задействовано 3 контакта!

  34. Gdr2k106

    Ето просто супер схемка аж руки чешутся ее зделать))))

  35. GetChiper Автор записи

    @Gdr2k106
    Да, сенсорные площадки с обратной стороны платы.
    Немного не понял про двусторонние кнопки.

  36. Gdr2k106

    Представьте что контакты с 2-х сторон, можно даже с 1-ной стороны но сделать так чтобы косясь 1 кнопки срабатывало 2 контактных площадки.
    Возьмем к примеру эту схему ССЫЛКА:

    http://images.yandex.ru/yandsearch?text=%D0%9A%D0%BB%D0%B0%D0%B2%D0%B8%D0%B0%D1%82%D1%83%D1%80%D0%BD%D0%B0%D1%8F%20%D0%BC%D0%B0%D1%82%D1%80%D0%B8%D1%86%D0%B0&pos=16&rpt=simage&img_url=http%3A%2F%2Favrproject.ru%2Fmatrix_keyboard%2Fcxema_matrix_keyboard.png

    Диодов не нужно. Почему? Теперь представьте что на выводах 6 11 12 13 как на этой схеме поочередно подается сигнал, сначала на 6 выводе и сработают только те контакты которые к нему прикреплены а контакты 11 12 13 в этот момент, потом 11 , 12 , 13 по очереди. Получится с 8 выводов МК 4 на 4 матрица и в итоге 16 кнопок.

  37. GetChiper Автор записи

    А в этом смысле. Тогда да, можно делать матрицу.

  38. Gdr2k106

    Упс.. Какойто косяк получилсь в цитате «а контакты 11 12 13 в этот момент» (отключены)потом 11,12,13 срабатывают по очереди.

  39. pasha140697

    GetChiper вы указали что на базовой плате могут быть установлены разные микроконтроллеры из серии ATmega48/88/168, для ATmega88 и 168 прошивка одинаковая, а для ATmega48 есть прошивка? Если есть то выложите пожалуйста, а то я уже впаял 48-ю не подумав о прошивке. Зарание спасибо.

  40. GetChiper Автор записи

    А прошивка от 88 не работает?

  41. pasha140697

    Неработает, купил 88 мегу сегодня, впаял, прошил, но есть проблемка, вот посмотрите http://youtu.be/eYdgXCdbU7Q. Пульт включаю светятся светодиоды но потом гаснут, меряю напряжение на батарейке 0,5в до этого было 2,9в значит коза или как. Проверил все две платы под лупой и на просвет, все дорожки целые и не где нету соплей. Если сетодиоды загораются значит МК исправен. Прошу вашей помощи, в чем может быть проблема.

  42. GetChiper Автор записи

    Сейчас будем разбираться с Вашей проблемой.
    Кстати, хорошо получилось собрать конструкцию.

    Для начала проверьте сопротивление обеих плат по питанию. Плата сенсоров должна иметь бесконечное сопротивление, а плата с МК близкое к нему.

    Второе по видео видно что батарейка выдает 2.9 вольта на холостом ходу. Новая батарейка должна давать 3.2 — нужно заменить батарейку, она уже сдохшая.

  43. pasha140697

    В том то и дело что батарейка была новая, но пока я пытался что то сделать с пультом то она и села, я соединял две платы проводками и напрямую мерял питание, оно проседало почти до 0,3в на новой батарейке 2016. Померял сопротивление, у платы сенсоров бесконечное, а у платы с МК около 100 ом. И еще у меня вопрос, ободок где спаиваются стенки сенсорной платы должны быть соединены с плюсом? Просто когда я вставляю батарейку и меряю напряжение, один щуп на минус, второй на этот ободок то показывает те же 3 в.

  44. pasha140697

    Еще вопрос, прошивать же нужно только ULRemote.hex, EE_ULRemote.hex не нужно?

  45. GetChiper Автор записи

    Сопротивление в 100 Ом — это очень мало — где-то непорядок на плате. Отключайте по очереди все внешнее (ИК-приемник, ИК-передатчик, конденсаторы по питанию и т.д.)и найдете причину.
    Ободок соединен с землей, плюса на нем не должно быть.

    Прошивать нужно только Flash. EEPROM прошивать не нужно.

  46. pasha140697

    С ободком разобрался, там маленькая перемычка была в уголку. Выпаял по очереди все детали, остался один МК но сопротивление 540 ом, может вытравить новую плату проще? МК новый покупать неохота. Какое сопротивление должно быть у нормального МК по питанию?

  47. pasha140697

    Сама плата делалась для Arduino, а можете убрать все ненужные детали и оставить только те что нужны для роботы пульта? Если можно пожалуйста скиньте на меил pasha140697@meta.ua

  48. alec220

    В январе задавал вопрос по поводу прошивки под 14 кнопок, так и не дошли руки? Смотрю снова началось обсуждение данной конструкции. И я решил снова напомнить, что все основные пульты сейчас имеют «джостик, т.е. «UP,DOWN,LEFT,RIGHT 7 OK. Плюс еще несколько кнопок. Вот тогда действительно получится «универсальный» пульт. Я, например, хочу в машину медиаплеер поставить, но он управляется только от пульта, не тащить же в машину «стандартную лопату». К сожалению, за полгода я так и не научился изменять исходники «под себя»… А так бы сделал на 168 меге, с 14 кнопками (именно с кнопками), но что-то никак не укладывается в моем аналоговом мозгу программирование….

Добавить комментарий