рд╕рдорд╕реНрдпрд╛
рдкрд╣рд▓реА рд╕рдорд╕реНрдпрд╛ рдпрд╣ рд╣реИ рдХрд┐ рдХреИрд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд┐рдпрд╛ рдЬрд╛рдП, рдХреНрдпреЛрдВрдХрд┐ рдХреЛрдИ рдХрдиреЗрдХреНрдЯрд░ рдирд╣реАрдВ рд╣реИ, рдЗрд╕реЗ рд▓реЗрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╣реАрдВ рд╕реЗ рднреА рдирд╣реАрдВ рд╣реИ, рдФрд░ рдорд╣рдВрдЧреА рдЦрд░реАрдж (рд▓рдЧрднрдЧ $ 4-5, $ 2-3 рдХреА рд╕реНрдХреНрд░реАрди рдХреАрдордд рдХреЗ рд╕рд╛рде)ред рддреЛ, рд╣рдо рдПрдХ рд╕реНрдХреЗрд▓рдкреЗрд▓, рдмреНрд▓реЗрдб рдпрд╛ рдЫреЛрдЯреА рдХреИрдВрдЪреА рд▓реЗрддреЗ рд╣реИрдВ рдФрд░ рд╕рд╛рд╡рдзрд╛рдиреАрдкреВрд░реНрд╡рдХ рдХреЗрдмрд▓ рдХреЛ рдХрд╛рдЯрддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рдмрд╛рдж рддрд╛рд░реЛрдВ рдХреЛ рдорд┐рд▓рд╛рдк рдХрд░рдирд╛ рдХрд╛рдлреА рдЖрд╕рд╛рди рд╣реИ, рдореБрдЦреНрдп рдмрд╛рдд рдпрд╣ рд╣реИ рдХрд┐ рдЙрдиреНрд╣реЗрдВ рдЗрдиреНрд╕реБрд▓реЗрдЯ рдХрд░реЗрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП рдРрд╕рд╛ рдХрд░рдХреЗ:
рдХрдиреЗрдХреНрд╢рди рдФрд░ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ
Arduino рдордВрдЪ рд╕реЗ рдореБрдлреНрдд рдЕрдиреБрд╡рд╛рдж:
рд╣рдо рд╕реНрдХреНрд░реАрди рдХреЛ рджреЗрдЦрддреЗ рд╣реИрдВ рддрд╛рдХрд┐ рдХреЗрдмрд▓ рдиреАрдЪреЗ рд╕рд╣реА рд╣реЛ, рдлрд┐рд░ рд╕рдВрдкрд░реНрдХ рдирд┐рдореНрди рдХреНрд░рдо рдореЗрдВ рдЬрд╛рдПрдВ:
TOP | LEFT | BOTTOM | RIGHT
Arduino рд╕реЗ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ
LEFT 2
BOTTOM 3
RIGHT 4
TOP 5
рдПрдирд╛рд▓реЙрдЧ рдЗрдирдкреБрдЯреНрд╕ рд╕реЗ 2 рд╡рд╛рдпрд░рд┐рдВрдЧ рдХрдиреЗрдХреНрдЯ рдХрд░реЗрдВ:
TOP 3 ( 5)
RIGHT 4 ( 4)
рд╕реНрдХреЗрдЪ
рд░реЙрдмрд┐рди рд╡реНрд╣рд┐рдЯрдлреАрд▓реНрдб рдФрд░ рдорд╛рд░реНрдХреЛ рдирд┐рдХреЛрд▓рдЯреЛ рд╕реЗ рд╕рдВрд╢реЛрдзрд┐рдд рдХреЛрдб (рдЯрдЪрд╕реНрдХреНрд░реАрди рдХреЛрдб рд╣реА)
#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(9600);
}
void loop() {
if (touched()) {
// /
Serial.print(touchX);
Serial.print(",");
Serial.print(touchY);
Serial.println();
delay(100);
}
}
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;
}
рдкрд░рд┐рдгрд╛рдо
рдирддреАрдЬрддрди, рд▓реЙрдиреНрдЪ рдХрд░рдиреЗ рдХреЗ рдмрд╛рдж, рдХреНрд▓рд┐рдХ рдмрд┐рдВрджреБ рдХреЗ рдирд┐рд░реНрджреЗрд╢рд╛рдВрдХ рдХрдВрд╕реЛрд▓ / рдЯрд░реНрдорд┐рдирд▓ / your_processor рдкрд░ рдЧрд┐рд░рддреЗ рд╣реИрдВ, рддреНрд░реБрдЯрд┐ + -2 рдЕрдВрдХ рд╣реИ, рджреЛрдиреЛрдВ рдЕрдХреНрд╖реЛрдВ рдкрд░ 100 рд╕реЗ 900 рддрдХ рдХрд╛ рдореВрд▓реНрдп рд╣реИ, рд▓реЗрдХрд┐рди рдЬрд╛рд╣рд┐рд░рд╛ рддреМрд░ рдкрд░ рд╕реНрдХреНрд░реАрди рдХреЗ рдореЙрдбрд▓ рдкрд░ рдирд┐рд░реНрднрд░ рдХрд░рддрд╛ рд╣реИ, рдФрд░ 0 рд╕реЗ 1000 рдФрд░ 200 рд╕реЗ 200 рддрдХред 500
UPD: tronixstuff.wordpress.com/2010/12/29/tutorial-arduino-and-the-ds-touch-screen - рдПрдХ рднреА рд╕рд░рд▓ рдХрдиреЗрдХреНрд╢рди рд╡рд┐рдХрд▓реНрдк