Простой тачскрин интерфейс
Тачскрин (Touch Screen — сенсорный экран) изобретен несколько десятилетий назад, однако только в последние года он получил широкое распространение. Для человека, способ ввода при помощи сенсорного экрана более привычен и удобен, чем другие способы.
В данной статье мы рассмотрим работу с резистивным 4-х проводным тачскрином, а именно нахождение X и Y-координат нажатой точки. В проекте мы будем использовать минимальное количество деталей и основной упор статьи сделаем на теорию.
Итак, задачей нашей схемы будет считывание координат с тачскрина и вывод их на LCD-экранчик. Естественно «рулить» всем этим хозяйством будет микроконтроллер.
Список используемых компонентов:
— PIC18F452 — микроконтроллер PIC (даташит)
— 7805 — стабилизатор напряжения 5В (КРЕН5)
— 20 МГц кварцевый резонатор. Частота не критична, могут быть использованы и 4, 8, 16 Мгц
— программатор PICkit 2 и т.п. для прошивки PIC
— 4-х проводной резистивный тачскрин (Touch Screen). Работают они все по одному принципу, поэтому нет никакой разницы, какой именно вы будете использовать
— 16×2 LCD дисплей
— отладочная плата и перемычки
В схеме использовано 6 линий связи тачскрина с микроконтроллером. Две из них используются для АЦП и четыре подключаются к PORTD пинам RD0 — RD3. Здесь PORTD используется для подачи питания или земли к 4-м линиям тачскрина.
LCD-экранчик подключается по 4-битному интерфейсу.
Как работает тачскрин
Чтобы было понятнее, проведем сравнение работы обычного подстроечного резистора и тачскрина. В тачскрине мы пока что будем использовать только одну ось координат.
Напряжение на выходе подстроечного резистора, относительно общего провода, зависит от его текущего сопротивления. Подобный принцип используется и в тач скрине. Если установить стилус на середине экрана (по аналогии с подстроечным резистором это будет половина круга), то выходное напряжение будет составлять 1/2 от входного.
Тачскрин имеет две координаты: X и Y. АЦП микроконтроллера считывает данные с каждой координаты и т.о. формируется координата нажатой точки.
Сборка устройства
На фотографии выше приведены все необходимые компоненты для сборки устройства.
Собираем устройство на отладочной плате согласно принципиальной схеме.
Тачскрин имеет плоский шлейф, и для его соединения с проводами я использовал скотч и обычную скрепку.
Программа
В программе реализуется две основные задачи: аналогово-цифровое преобразование координат и вывод данных на LCD. Реализуется в 4 шага: на первом шаге происходит считывание и преобразование значения Х-координаты через АЦП, затем тоже самое происходит с Y-координатой, третьим и четвертым шагом происходит отображение X и Y точек соответственно. После чего, весь цикл повторяется.
Приведу кусок фрагмента кода преобразования и вывода X-координаты на LCD:
Функция itoa() используется для преобразования аналоговой величины в цифровое 10-битное значение. В десятичном коде максимальное значение составляет 1023, минимальное соответственно 0. Результат преобразования отображается на LCD-экранчике.
Фрагмент кода АЦП преобразования X-координаты:
После того, как все собрано, скомпилируйте исходник и прошейте ваш МК. Устройство заработает сразу, без каких либо настроек. 1024 точек конечно многовато, но если нужно — уменьшите разрядность.
Источник
Устройство резистивного сенсорного экрана
Первый сенсорный экран был собран в 1970 году. Тогда преподавателю Университета из штата Кентукки Сэмуэлю Херсту понадобилось считать много лент из самописцев. Зная, что координаты точек на графиках удобнее заносить в вычислительную машину простым касанием к ним, он собрал передовое устройство ввода, названное впоследствии элографом. Это устройство было больше дигитайзером, но использовало такой же принцип определения координат, как у современных резистивных экранов.
Позже вместе с коллегами единомышленниками Сэмуэль учредил компанию Elotouch, которая стала пионером в массовом выпуске сенсорных экранов.
Первый персональный компьютер с сенсорным экраном HP-150 производства Hewlett Packard, выпущенный в 1983 году, работал вовсе не резистивным образом. Для отслеживания касаний у него применялась сетка инфракрасных лучей, формируемая матрицей 2114. Проще говоря, вокруг обычного ЭЛТ-экрана была поставлена рамочка, составленная из свето- и фотодиодов, с помощью которых и создавалась невидимая, но чувствительная к прикосновению координатная сетка.
Конструкция сенсорных экранов
Каждый современный тачскрин (от английского touch screen — чувствительный к касаниям экран) собран из трех стеклышек:
- Самый скрытый LCD-экран, на котором мы собственно и видим изображение.
- Активная панель, благодаря которой и реальны такие чудесные возможности, как открытие пальцем ярлычков, листание страничек, растягивание картинок.
- Внешний защитный экран, имеется только у емкостных скринов — по сути, прозрачное стекло с антибликовым покрытием.
Сэндвич из трех пластинок скрепляется в цельное устройство тончайшей пленкой. Раньше для сборки сенсорных экранов использовали полимерный клей.
Четырехпроводной резистивный тач-скрин
У резистивного экрана активная панель собрана из стеклянной основы и гибкой пластиковой мембраны. Изнутри основа и мембрана покрыты тонкими проводящими дорожками с высоким удельным сопротивлением в пределах от 50 до 1500 Ом. Внутреннее пространство заполнено микроизоляторами, равномерно расположенными между каждой проводящей дорожкой.
При нажатии, в месте касания перекрестные дорожки на мембране и основе замыкаются, и микропроцессор через аналого-цифровой преобразователь (АЦП) вычисляет по местному изменению сопротивления координаты прикосновения:
- X — на левый электрод подается +5 В, правый заземляется, и замеряется появившееся напряжение между верхними и нижним контактом.
- Y — подается +5 В на верхний электрод, нижний заземляется, проверяется напряжение между левым и правым контактом.
Если вычисленные координаты точки касания совпадут с изображением какой-то активной кнопочки на нижнем LCD-экране, то электронная машина засчитает это как ввод информации.
Четырехпроводной резистивный тач-скрин
Боящаяся повреждений тонкая мембрана этого сенсорного экрана выдерживает пару миллионов нажатий, чего явно недостаточно для использования в общественных местах мегаполиса.
Пятипроводной резистивный тач-скрин
У пятипроводного экрана резистивное покрытие на мембране заменено проводящим, за счет этого он является более надежным, чем четырехпроводной. Мембрана не используется для определения точки касания, она является одним большим электродом, и будет работать даже после того, как прорежется или порвется.
Координаты точки прикосновения определяются по стеклянной основе, у которой имеется четыре электрода по углам. Пятым электродом является мембрана.
Устройство пятипроводного резистивного тачскрина: 1 – стекло, 2 – резистивное покрытие, 3 – наполнитель изолирующий, 4 – мембрана
В состоянии покоя четыре электрода основы заземлены, и на мембрану через резистор подается напряжение, которое должно составлять +5 В.
Как только происходит касание, уровень напряжения на мембране падает, и микропроцессор через АЦП реагирует следующим образом:
- К двум правым электродам подается +5 В, левые заземляются, и замеряется напряжение на мембране, которое и будет соответствовать координате X.
- Подключается +5 В к верхним электродам, нижние заземляются, и считывается координата Y по наличию напряжения на мембране.
Этот сенсор выдерживает уже до 30 миллионов нажатий, чего вполне достаточно, чтобы быстрее вышел из строя какой-нибудь телефон, чем сам экран.
Основное преимущество всех резистивных сенсорников в том, что они реагируют на любое точечное нажатие: банковской картой, любой пластмассовой палочкой, рукой в толстой перчатке. А чтобы поработать зимой на улице с другим, емкостным экраном придется в мороз снять перчатку с руки. Ну и в заключение, своими руками можно переделать обычный монитор под сенсорный . Рекомендуется также ознакомиться с устройством емкостного сенсорного экрана .
Автор: Виталий Петрович, Лисичанск, Украина.
Источник
Электроника для всех
Блог о электронике
Работа с резистивным сенсорным экраном
Хоть резистивный touchscreen и является устаревшим и активно вытесняется емкостными сенсорами, но тем не менее он еще не скоро канет в Лету. Во первых из-за простоты и дешевизны, а во вторых из-за элементарной работы с ним.
Конструктив
Итак, как он устроен. Там все очень и очень просто. Есть две пленки, сделанные из проводящего материала, а между ними гранулы диэлектрика. Когда касаемся пальцем, то продавливаем зазор между пленками и контачим верхнюю на нижнюю. Ну, а определить координаты касания уже дело несложное.
Для этого на каждую пленку нанесено по два электрода. Слева-справа на одной и сверху-снизу на другой. Крест на крест, в общем. Поскольку сопротивление пленки довольно большое, под сотни ом, то образуются как бы два перпендикулярных резистора, висящие друг над другом.
В точке касания они замыкаются между собой и вуаля, получается такая схема:
Теперь достаточно концы одной пленки подтащить к шинам питания (банально заведя туда лог 0 и лог 1), чтобы она образовала обычный резистивный делитель. А с другой пленки снять получившееся напряжение. Которое будет пропорционально координате. Так как сопротивления входа АЦП огромно, то жалкие сотни ом, что составляет остаток пленки (R1) нам никак не помешает. Также не помешает и болтающийся конец (R2).
Теперь меняем положение, растягивая между шинами питания уже другую пленку и снимаем вторую координату. Элементарно!
Вилы в стогу
Но при попытке взять схему в лоб, то получаем первые вилы в бок. Дело в том, что если мы будем тупо менять по очереди пленки и сканировать значения, то много мы не намеряем. Т.к. когда касания нет, то пленки не перескаются, а значит каналы АЦП во время измерения висят в воздухе, ловя всякий мусор. И как их отличить от нажатия? Да никак! АЦП без разницы, что на вход пришло.
Так что нам надо замер координат делать не непрерывно, а тогда и только тогда, когда есть касание. До этого на тачскрин даже не отвлекаться.
Делается это просто — мы одну пленку подтягиваем к земле. А вторую вешаем на вход с pullup. Был тачскрин, стала обычная кнопка.
Ее мы лениво опрашиваем, в ожидании нажатия. Но тут прячутся вторые вилы, на которые мы будем нарываться еще не раз и не два. Дело в том, что тачскрин это две проводящие пленки. Большие плоские пленки, находящиеся очень близко друг от друга. Ничего не напоминает? Правильно — конденсатор, мать его. А значит у него нефиговая емкость. И если ты его переключишь в режим отслеживания нажатия и тут же проверишь — получишь нажатие. Т.к. емкость еще не успела зарядиться, а значит коротит. Так что после перевода порта в режим опроса надо подождать около миллисекунды. А только потом начинать щупать. То же касается, кстати, и режима смены замеров координат. Начнешь быстро переключать пленки с координаты на координату — получишь полную херню на выходе. Переключил, подождал, замерил. Переключил, подождал, замерил. Только так.
Под это дело я набросал небольшой пример кода для ATMega16 на Pinboard.
Код
Код в виде обычного конечного автомата. Правда он разнесен на процедуру и прерывание.
Спасибо. Вы потрясающие! Всего за месяц мы собрали нужную сумму в 500000 на хоккейную коробку для детского дома Аистенок. Из которых 125000+ было от вас, читателей EasyElectronics. Были даже переводы на 25000+ и просто поток платежей на 251 рубль. Это невероятно круто. Сейчас идет заключение договора и подготовка к строительству!
А я встрял на три года, как минимум, ежемесячной пахоты над статьями :)))))))))))) Спасибо вам за такой мощный пинок.
44 thoughts on “Работа с резистивным сенсорным экраном”
Не такая уж она нежная, пленочка эта. Я паялом под 300 и феном под 330 на ней разьем корячил, хоть бы хны. Хотя, с проводами есть риск оборвать дорожки.
Чтобы безопасно припаяться к таким пленочкам можно сделать небольшую печатную платку, с одной стороны которой будут площадки, соответствующие плащадкам на пленке, с другой стороны платы — что угодно. Так можно подпаиваться к другим шлейфам с меньшим шагом между площадками.
Я бы не стал говорить про скорый конец резистивных (р.) экранов. Дело в том, что емкостные очень плохо (читай — почти совсем не) реагируют на руки/пальцы в перчатках, что почти начисто убирает их из списка вариантов для многих промышленных систем. Можно ввернуть им чувствительность, но тогда они начинают ловить кучу помех. Старые р. экраны имели две этих пленки, но вот что я вам скажу — неделю назад на Freescale Technology Forum видел р. экран, который на ощупь не продавливался, но прекрасно работал, в том числе через футболку (ну этот фокус надо было видеть).
Китайцы уже освоили выпуск специальных перчаток, расчитанных на работу с емкостными экранами. На том же DX, например, они есть.
>piroJOKE
>4 июля 2011 в 1:15
>Китайцы уже освоили выпуск специальных перчаток, расчитанных на работу с емкостными экранами. На том же >DX, например, они есть.
А в медицине эти перчатки можно применять, например в операционной? Что-то мне кажется для медицины, где без резиновых перчаток ни куда резистивные экраны самое то.
Бывают и настолько нежные что только сплав розе выручает
> Нет, это не УЖОСНАХ, а GCCшная ассемблерная вставка.
До кучи познай дао раздельной компиляции и ты сможешь вызывать ассемблерные функции из С как родные. Делов-то вспомнить про calling converntion вообще и про abi в частности.
Пробовал, не очень понравилось. Оптимизатор на ней спотыкается и начинает спешно тасовать регистры. Лучше уж дать ему выбор самому определить что куда ныкать.
На многох платах контроллеров жестких дисков (старые Seagate, например)
очень часто стоят разъёмы мотора привода шпинделя,
которые ИДЕАЛЬНО подходят для сенсорных экранов.
Можно даже вырезать кусочек платы с разъёмом, чтобы не выпаивать его,
и припаять провода к плате
Источник