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; }