Главная » Статьи » Как подключить

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

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





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



 Благодаря этому координаты прикосновения можно легко вычислить, с помощью АЦП, проведя 2 измерения (сперва для одной координаты, затем для другой). Для этого на заднюю пленку подаем постоянное напряжение, например наши +5В (на вывод X+ подаем 5В, а на вывод Х- подключаем к земле). При этом, на каждом горизонтальном участке заднего слоя, ток создает падение напряжение, пропорционально длине участка, которое и нужно нам считать. Щупом послужит передний резистивный слой, один из электродов которого присоединен к АЦП. Это будет координата Х. Аналогично считывается и Y координата.


Код для определения координат
 Фрагмент кода в Bascom-AVR работы с тачскрином ниже; один слой использует подключение к 0 и 2 каналам АЦП, другой к 1 и 3 каналам.



Touchscreen:

Config Pina.= Output                'ставим порты на выход
Config Pina.= Output                'к ним подключены электроды с первой пленки
Reset Porta.1                         'садим электрод на землю
Set Porta.3                           'устанавливаем на электроде напряжение питания
Ddra.= 0                            'делаем порты как вход
Ddra.= 0                            'отсюда будем считывать показания с АЦП

Waitms 100                           'ждем утихания переходных процессов

 X = Getadc(2)                        'читаем координату X
 X = 1023 - X                         'приводим в удобный вид

Xstr = Str(x)                         'готовим переменные для вывода на дисплей

'повторяем для координаты Y

Config Pina.= Output
Config Pina.= Output
Reset Porta.0
Set Porta.2
Ddra.= 0
Ddra.= 0

Waitms 100

 Y = Getadc(3)
 Y = 1023 - Y

Ystr = Str(y)

Return                               'возвращаемся в основной цикл программы




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



 Считанные координаты я просто вывел на дисплей, использовав модуль на atmega32 с дисплеем nokia3310. 






 Теперь можно привязать координаты на выполнение любых действий, все зависит только от фантазии =)

 Полный листинг программы можно скачать по этой ссылке.

Категория: Как подключить | Добавлено: 29.08.2011
Просмотров: 38429 | Комментарии: 17 | Теги: touchscreen, модуль, SENSOR | Рейтинг: 5.0/6
Всего комментариев: 17
17 telefonist   (25.01.2015 02:52) [Материал]
Оказалось - это наводка от самого ЖКИ. Повесил на ноги тача кондёры и резисторы к земле, наводки пропали.
А за ответ - спасибо :)

16 GSV   (22.01.2015 17:42) [Материал]
- telefonist -
В документации к мк есть рисунок как нужно подключать питание АЦП.Там питание заводят на ножку AVCC(мега8) через индуктивность 10мкГн и эту ножку шунтируют керамическим конденсатором на 100нан.Если у вас не так,попробуйте сделать по ДШ.

15 telefonist   (20.01.2015 22:38) [Материал]
А у меня пока нет нажатия на тачскрин - АЦП ловит наводки и помехи. Пытаюсь подтягивать к земле резистором, но есть же другой выход?

14 exersizze   (04.05.2013 22:23) [Материал]
Да, вот хекс  avrproject.ru/touchscreen/touchscreen.hex частота 16МГц

13 MONIKYS   (04.05.2013 16:02) [Материал]
Вы можете выложить Хекс файл. Сделал модель тача для Протеуса, надо проверить. В АВР-ах не понимаю.

12 exersizze   (16.09.2011 20:51) [Материал]
к сожалению ни того ни другого у меня нет, и работать с этим типом дисплея не приходилось.
Зато у mcselectr есть апнот, как раз для вашего случая wink
AN#148

11 AleksanderG   (16.09.2011 17:48) [Материал]
Автор пожалуста,если можно поправтье код для тачскрин-а 128*64 и соответственно для панелки ВИНСТАР 128*64. Спасибо.

10 tenevikus   (09.09.2011 16:01) [Материал]
да уж... согласен... изиэлектрик тяжеловат немного... но у них и впрямь много интересного..

9 exersizze   (05.09.2011 18:18) [Материал]
tenevikus изиэлектроникс такой изиэлектроникс, с этой статьи я и решился на пробу тачскрина smile
ya-zp да, тач соединял проводками напрямую к мк, а модельку отдельно нарисовал в паинте =)
я выбирал тачскрин самый дешевый; можно посмотреть какие есть в наличии у вас и загуглить описания на телефоны к которым они идут, там должно быть написано о типе сенсора wink

8 ya-zp   (05.09.2011 16:45) [Материал]
Интересная идейка!
Одно смущает - цена ( у нас за Самсунговский 710 тачик с меня запросили 150 грн, эт де-то 70-750 рублей). Но попробывать хочется!
И еще вопросик: схемка приведена с протеуса (верно?). Подскажите, вы использовали модель тачскрина в протеусе или это дорисовано позже? smile

7 tenevikus   (05.09.2011 16:37) [Материал]
неплохая статья про основы этого дела тут
http://easyelectronics.ru/rabota-s-rezistivnym-sensornym-ekranom.html
biggrin

6 exersizze   (30.08.2011 19:16) [Материал]
Заметил одну особенность, работая с этим сенсором.. Примерно 30% площади тачскрина остается не задействованной, думаю что из-за резисторов подтяжки внутри мк. Так что либо их отключать и ловить мусор когда нет нажатия, либо повесить два внешних резистора, которые будут компенсировать внутренние. Если кто попробует на своем таче отпишитесь обязательно, как у вас будет работать.

5 exersizze   (30.08.2011 19:04) [Материал]
Дисплеи конструктивно выполнены отдельно, а тачскрин - прозрачная стекляшка, ее встраивают поверх дисплеев.

+1   Спам
4 amv2000   (30.08.2011 16:24) [Материал]
Автор выше в начале статьи приводил ссылку где брал...
Для опытов приобрел здесь сенсорный экран от телефона Samsung I710.
А настройки LCD в полном листинге самый нижний текст или Вы не читаете...

3 cudi   (30.08.2011 10:08) [Материал]
наконец, пример на бейсике))
1) Где ты купил данный тачскрин, и сколько он выходит по деньгам.
2) Странно, а почему ты не конфигурируешь в программе настройки своего LCD (только что заметил)?

2 amv2000   (30.08.2011 08:03) [Материал]
А использовать и как дисплей Samsung I710 не получится, или только как сенсорную панель?

+1   Спам
1 Skyline   (29.08.2011 20:25) [Материал]
Да, проекты становятся все сложнее и интереснее!

Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]






авторизация