Как управлять сенсорной панелью с шилда без библиотеки?
- Войдите на сайт для отправки комментариев
Добрый день. Вопрос в следующем:
познаю азы по книге "65 проектов Ардуино своими руками". И вот в одной из них есть пункт,где подключается к ардуино сенсорная панель от Nintendo ( BOB-09170). У меня тут в местных магазинах такого не было, но был шилд 2,4" дисплей+сенсор+ микроСД (такая вот: https://arduino-kit.ru/catalog/id/displey-2.4-tft-240h320-sensornyiy-%2B...)
В чём встал вопрос:
в книге описано подключение сенсора без подключения библиотеки Тачскрин. Прикручен ЛСД-дисплей, на который выводятся координаты при нажатии на сенсор.
Столкнулся с такой сложностью: везде в сети и даже в даташите на панели от Нинтендо 4 контакта, пронумерованные У1 У2 и Х1 Х2.
На Шилде же идёт маркировка Ym Yp и Xm Xp.
Глянул в пример библиотеки Тачскрин, там всё понятно - где какой контакт идёт (Ym и т.д.)
Как соотнести Ym...Xp с контактами Y1...X2?
// Проект 34 - Область касания на сенсорном дисплее #include "LiquidCrystal.h" LiquidCrystal lcd(4,5,6,7,8,9); int x,y=0; void setup() { lcd.begin(16,2); lcd.clear(); } int readX() // возвращает координату Х на сенсорном экране { int xr=0; pinMode(A0, INPUT); pinMode(A1, OUTPUT); pinMode(A2, INPUT); pinMode(A3, OUTPUT); digitalWrite(A1, LOW); // подать низкий уровень на А1 digitalWrite(A3, HIGH); // подать высокий уровень на А3 delay(5); xr=analogRead(0); // сохранить координату Х return xr; } int readY() // возвращает координату Y на сенсорном экране { int yr=0; pinMode(A0, OUTPUT); pinMode(A1, INPUT); pinMode(A2, OUTPUT); pinMode(A3, INPUT); digitalWrite(A0, LOW); // подать низкий уровень на А0 digitalWrite(A2, HIGH); // подать высокий уровень на А2 delay(5); yr=analogRead(1); // сохранить координату Y return yr; } void loop() { lcd.setCursor(0,0); lcd.print(" x = "); x=readX(); lcd.print(x); y=readY(); lcd.setCursor(0,1); lcd.print(" y = "); lcd.print(y); delay(200); }
Вот код из учебника.
Да, забыл.
вот код из библиотеки(пример работы сенсора)
Как соотнести Ym...Xp с контактами Y1...X2?
Методом тыка.
Как соотнести Ym...Xp с контактами Y1...X2?
Методом тыка.
Да,его я применил в 4 вариантах. Из-за чего и решил писать тут - при работе от библиотеки в Мониторе одни координаты покоя, при всех возможных вариантах без библиотеки - совсем другие. Это-то и смутило.
ID платы х9325
А какие одни и другие то? Пример из первого сообщения, наверное от 0 до 1023 по обеим осям, а из второго что?
Без библиотеки(на LCD-дисплее):
х = 263
у = 730
С библиотекой( Монитор порта):
х = 778
у = 292
Без библиотеки(на LCD-дисплее):
х = 263
у = 730
С библиотекой( Монитор порта):
х = 778
у = 292
поменяйте x и y - будет в обоих случаях примерно одинаково. Пара десятков единиц разницы - правится правильной калибровкой.
Без библиотеки(на LCD-дисплее):
х = 263
у = 730
С библиотекой( Монитор порта):
х = 778
у = 292
Это нормально. От перемены контактов получается просто перевёрнутая ось. Меняйте по вкусу - хоть провода местами, хоть пины в скетче. Можно и вообще ничего не менять, но наверное уж удобнее, чтобы координаты на дисплее и на таче в одну сторону считались.