Тачскрин на Arduino



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

 

Здесь можно скачатьИсходник управляющей программы на 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;
}
  • 0
  • 30 ноября 2010, 18:50
  • Razdor

Комментарии (0)

RSS свернуть / развернуть

Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.