Тачскрин на Arduino


http://pics.video.qip.ru/player.swf?file=u18013944c42



На картинке распиновка тачскрина


Здесь можно скачать

Исходник управляющей программы на VB6


Здесь можно скачать

Откомпелированную упровляющую программу


Код самой ардуины:

#define Lo 2 // LEFT к цифровому выходу 2
#define Bo 3 // BOTTOM к цифровому выходу 3
#define Ro 4 // RIGHT к цифровому выходу 4
#define To 5 // TOP к цифровому выходу 5

#define Ti 3 // TOP к аналоговому входу 3 (проводок от цифрового 5)
#define Ri 4 // RIGHT к аналоговому входу 4 (проводок от цифрового 4)

// установим координаты прикосновения
int touchX = 0;
int touchY = 0;

void setup() {
Serial.begin(115200);
}

void loop() {
if (touched()) {
// Здесь нужно будет поэкспериментировать так как пороговые координаты могут отличаться в
// зависимости от модели тачскрина у меня это 100 - 920 я обрезаю по 20 с каждой оси так как
// 920 это точка прилегающая в плотную к краю и нажать ее можно исключительно иголкой =)
if (touchX<120)
touchX = 120;
if (touchY<120)
touchY = 120;
if (touchX>900)
touchX = 900;
if (touchY>900)
touchY = 900;

// выводим координаты в порт/консоль
// вывод клика я еще не прописал но в скором времени я и до этого доберусь =)
// а так если сложно осилить сам тач можно прилепить тупо кнопку и отследить ее нажатие =)
// и также передать ее в порт. При этом надо будет прописать обработку команды в управляющей программе или попросить меня я пропишу =))

Serial.print(touchX);
Serial.print(",");
Serial.print(touchY);
Serial.println();
delay(1);
}
}

boolean touched() {
boolean touch = false;
pinMode(Lo, OUTPUT);
digitalWrite(Lo, LOW);
pinMode(Ro, OUTPUT);
digitalWrite(Ro, HIGH);
pinMode(To, INPUT);
pinMode(Bo, INPUT);
delay(10);
touchX = analogRead(Ti);
pinMode(Bo, OUTPUT);
digitalWrite(Bo, LOW);
pinMode(To, OUTPUT);
digitalWrite(To, HIGH);
pinMode(Ro, INPUT);
pinMode(Lo, INPUT);
delay(10);
touchY = analogRead(Ri);
if(touchX < 1000 and touchX > 0 and touchY < 1000 and touchY > 0)
touch = true;
return touch;
}

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

Arduino

Что такое Arduino?
Зачем мне Arduino?
Начало работы с Arduino
Для начинающих ардуинщиков
Радиодетали (точка входа для начинающих ардуинщиков)
Первые шаги с Arduino

Разделы

  1. Преимуществ нет, за исключением читабельности: тип bool обычно имеет размер 1 байт, как и uint8_t. Думаю, компилятор в обоих случаях…

  2. Добрый день! Я недавно начал изучать программирование под STM32 и ваши уроки просто бесценны! Хотел узнать зачем использовать переменную типа…

3D-печать AI Android Arduino Bluetooth CraftDuino DIY IDE iRobot Kinect LEGO OpenCV Open Source Python Raspberry Pi RoboCraft ROS swarm ИК автоматизация андроид балансировать бионика версия видео военный датчик дрон интерфейс камера кибервесна конкурс манипулятор машинное обучение наше нейронная сеть подводный пылесос работа распознавание робот робототехника светодиод сервомашинка собака управление ходить шаг за шагом шаговый двигатель шилд

OpenCV
Робототехника
Будущее за бионическими роботами?
Нейронная сеть - введение