Aiuto con touch sceen per nintendoDS

Qualcuno saprebbe aiutarmi sul come usare un touch screeen del nintendo ds volevo suddivederlo in varie aree per utilizzarle poi con bottoni virtuali....
ho il seguente problema non riesco a fare delle letture "normali" i valori letti cambiano in continuazione...

Fai la lettura X,Y in 2 letture distinte?
Come è collegato?

questo è il collegamento l'ho preso da un sito: practicalarduino.com
non cè verso che vada ho provato anche con delle resistenze di pull down ma nulla... i valori cambiano in continuazione

Il touchscriee é composta da 2 pellicole con un rivestimento resistivo e elettrodi, uno a DX e SX e l' altro in alto e in basso e in mezzo dei distanziatori in modo che i 2 rivestimenti resistivi non si toccano.
Devi dare della tensione in una direzione e misurare la tensoine risultante sul altra direzione:
Dai GND a X1 e 5V a X2 (cosí hai un parttore resistivo che va da 0 v a 5V) premendo il Touchscreen la pellicola X fa contatto con la pellicola Y. Leggi la tensione sul asse Y1 e trovi il punto di contatto in asse X.
Ripeti il tutto sul asse Y:
Dai GND a Y1 e 5V a Y2 e leggi la tensione sul X1 e trovi il punto di contatto in asse Y.

Ciao Uwe

è appunto ciò che ho fatto il codice è il seguente:

int xVal = 0;
int yVal = 0;
void setup()
{
Serial.begin(38400);
Serial.println("Starting up touch screen reader");
}
void loop()
{
pinMode( 15, INPUT ); // Analog pin 1
pinMode( 17, INPUT ); // Analog pin 3
pinMode( 14, OUTPUT ); // Analog pin 0
digitalWrite( 14, LOW ); // Use analog pin 0 as a GND connection
pinMode( 16, OUTPUT ); // Analog pin 2
digitalWrite( 16, HIGH ); // Use analog pin 2 as a +5V connection
delay(2); // Wait for voltage to settle
xVal = analogRead( 1 ); // Read the X value
pinMode( 14, INPUT ); // Analog pin 0
pinMode( 16, INPUT ); // Analog pin 2
pinMode( 15, OUTPUT ); // Analog pin 1
digitalWrite( 15, LOW ); // Use analog pin 1 as a GND connection
pinMode( 17, OUTPUT ); // Analog pin 3
digitalWrite( 17, HIGH ); // Use analog pin 3 as a +5V connection
delay(2); // Wait for voltage to settle
yVal = analogRead( 0 ); // Read the Y value
Serial.print(xVal);
Serial.print(",");
Serial.println(yVal);
delay (200);
}

Hai provato questo?

il fatto che i valori cambino ... non mi sembra "male".
Vuol dire che funziona ... no?
A parte le battutacce, leggevo (nel vecchio forum) che se metti delle resistenze di carico (non ricordo come e valore) non hai bisogno di fare la "taratura".

Provato con google?

Il codice mi sembra giusto.
Ciao Uwe

http://kalshagar.wikispaces.com/Arduino+and+a+Nintendo+DS+touch+screen

Vedi se qui trovi le risposte che ti servivano :wink:

Si l'ho provato....
i valori cambiano anche se non cè il contatto sulla parte sensibile.....
si su google non cè un piffero.....

Sto provando il codice.
A me varia continuamente da:
Starting up touch screen reader
468,1003
997,1001
998,1001
996,1001
1002,1001
1000,1001
1001,1001
1002,1000
1002,1001
996,997
996,997
998,998
999,999
342,850
304,848

Effettivamente sbarella :wink:

Stilgar:
http://kalshagar.wikispaces.com/Arduino+and+a+Nintendo+DS+touch+screen

Vedi se qui trovi le risposte che ti servivano :wink:

non va neanche così...... che p**** oggi non sarà giornata...

penso che devi mettere una resistenza di pullup sul canale che legge la tensione: controllo meglio.
Ciao Uwe

Ratto,
appena fatto :wink:
Ora (senza toccare nulla) è inchiodato a 0.

// Taken from http://kousaku-kousaku.blogspot.com/2008/08/arduino_24.html
/*
#define xLow  14
#define xHigh 15
#define yLow  16
#define yHigh 17
*/
//modified to match my sparkfun connector
#define xLow  17
#define xHigh 15
#define yLow  16
#define yHigh 14
 
 
void setup(){
  Serial.begin(9600);
}
 
void loop(){
  pinMode(xLow,OUTPUT);
  pinMode(xHigh,OUTPUT);
  digitalWrite(xLow,LOW);
  digitalWrite(xHigh,HIGH);
 
  digitalWrite(yLow,LOW);
  digitalWrite(yHigh,LOW);
 
  pinMode(yLow,INPUT);
  pinMode(yHigh,INPUT);
  delay(10);
 
  //xLow has analog port -14 !!
  int x=analogRead(yLow -14);
 
  pinMode(yLow,OUTPUT);
  pinMode(yHigh,OUTPUT);
  digitalWrite(yLow,LOW);
  digitalWrite(yHigh,HIGH);
 
  digitalWrite(xLow,LOW);
  digitalWrite(xHigh,LOW);
 
  pinMode(xLow,INPUT);
  pinMode(xHigh,INPUT);
  delay(10);
 
  //xLow has analog port -14 !!
  int y=analogRead(xLow - 14);
 
    Serial.print(x,DEC);   
    Serial.print(",");     
    Serial.println(y,DEC); 
 
  delay(200);
}

Messe pure le resistenze :wink:
Ora devo scappare a prendere mio figlio.
Alla prox

bah continua a non andarmi...

Ma, misurando con un tester i pin del Touchscreen cosa misuri (senza aver collegato niente esenza toccare lo scermo tattile?
Ciao Uwe

Allora tra X1 e X2: 968 ohm
tra Y1 e Y2: 303 ohm
tra X1 e Y1: ---
tra X2 e Y1: 968 ohm
tra X2 e Y2: ---

http://kalshagar.wikispaces.com/Arduino+and+a+Nintendo+DS+touch+screen
Prova a mettere le resistenze che suggerisce qui :wink:
Usa il suo codice.
Vediamo se ti inizia a funzionare :smiley:

ratto93:
Allora tra X1 e X2: 968 ohm
tra Y1 e Y2: 303 ohm
tra X1 e Y1: ---
tra X2 e Y1: 968 ohm
tra X2 e Y2: ---

Qualcosa non quadra.
Senza che tocchi il Touchscreen non dovresti avere una resistenza tra X2 e Y1 oltre se hai una resistenza tra X2 e Y1 dovresti misurare anche qualcosa tra X1 e Y1 e X2 e Y2
Cosa misuri tra X1 e Y2?
Ripeti per favore le misure.
Grazie Ciao Uwe

fatto stessi risutati....

Questo mi lascia perplesso. Mi sá che é rotto.
Non c'é nessuno chene ha uno e che potrebbe controllare la misura?
Ciao Uwe