Pages: [1] 2 3   Go Down
Author Topic: Aiuto con touch sceen per nintendoDS  (Read 2266 times)
0 Members and 1 Guest are viewing this topic.
Monselice PD Italy
Offline Offline
Faraday Member
**
Karma: 26
Posts: 5500
фон Крыса
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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...
Logged

Se corri veloce come un fulmine, ti schianterai come un tuono.

Urbana Padova
Offline Offline
Full Member
***
Karma: 0
Posts: 196
a piccoli passi.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Monselice PD Italy
Offline Offline
Faraday Member
**
Karma: 26
Posts: 5500
фон Крыса
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

questo è il collegamento l'ho preso da un sito: http://www.practicalarduino.com/projects/touch-control-panel
non cè verso che vada ho provato anche con delle resistenze di pull down ma nulla... i valori cambiano in continuazione
Logged

Se corri veloce come un fulmine, ti schianterai come un tuono.

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 263
Posts: 21601
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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
Logged

Monselice PD Italy
Offline Offline
Faraday Member
**
Karma: 26
Posts: 5500
фон Крыса
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

è appunto ciò che ho fatto il codice è il seguente:
Code:
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);
}
Logged

Se corri veloce come un fulmine, ti schianterai come un tuono.

Urbana Padova
Offline Offline
Full Member
***
Karma: 0
Posts: 196
a piccoli passi.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hai provato questo?

https://github.com/practicalarduino/TouchControlPanel/blob/master/TouchControlPanel.pde

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?
Logged

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 263
Posts: 21601
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Il codice mi sembra giusto.
Ciao Uwe
Logged

Urbana Padova
Offline Offline
Full Member
***
Karma: 0
Posts: 196
a piccoli passi.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Vedi se qui trovi le risposte che ti servivano smiley-wink
Logged

Monselice PD Italy
Offline Offline
Faraday Member
**
Karma: 26
Posts: 5500
фон Крыса
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Se corri veloce come un fulmine, ti schianterai come un tuono.

Urbana Padova
Offline Offline
Full Member
***
Karma: 0
Posts: 196
a piccoli passi.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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 smiley-wink
Logged

Monselice PD Italy
Offline Offline
Faraday Member
**
Karma: 26
Posts: 5500
фон Крыса
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Vedi se qui trovi le risposte che ti servivano smiley-wink
non va neanche così...... che p**** oggi non sarà giornata...
Logged

Se corri veloce come un fulmine, ti schianterai come un tuono.

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 263
Posts: 21601
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Urbana Padova
Offline Offline
Full Member
***
Karma: 0
Posts: 196
a piccoli passi.
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

// 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 smiley-wink
Ora devo scappare a prendere mio figlio.
Alla prox
Logged

Monselice PD Italy
Offline Offline
Faraday Member
**
Karma: 26
Posts: 5500
фон Крыса
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

bah continua a non andarmi...
Logged

Se corri veloce come un fulmine, ti schianterai come un tuono.

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 263
Posts: 21601
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

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

Pages: [1] 2 3   Go Up
Jump to: