Comprei no próprio lab uma tela de toque de Nintendo DS e o conector.

Hoje tentei montar algo básico, baseado no post http://labdegaragem.com/profiles/blogs/projeto-com-nintendo-ds-touc..., mas só para ler as coordenadas do toque na tela.

Minha montagem ficou como a mostrada na imagem abaixo.

O código é exatamente o do post, mas sem a parte que controla os leds (como saída, deixei apenas as informações na serial).

Porém, minha serial indica valores aparentemente aleatórios, mesmo quando não estou sequer tocando a tela. Já tentei deixá-la "suspensa", protegida por pano, papel e plástico, mas nada neutraliza essa leitura randômica de valores.

Alguém já testou a montagem desse post e pode me ajudar?

Exibições: 645

Responder esta

Respostas a este tópico

Consegui fazer funcionar ligando cada um dos pinos em paralelo com o Ground com uma resistência de 10K.

Além disso, a fita que sai da tela estava ligada do lado errado no conector.

O código que usei no final das contas é esse:

//Y1 vai no A0
//X2 vai no A1
//Y2 vai no A2
//X1 vai no A3
//A face sensivel da tela eh a contraria ao do texto (na fita)
//A fita deve ficar com o texto virado para o mesmo lado do conector branco
void setup() {
  Serial.begin(9600);
}

//funcao que le a coordenada X
int readX() {
  int xr=0;
  //arrumando a funcao de cada pino
  pinMode(A0, INPUT);
  pinMode(A1, OUTPUT);
  pinMode(A2, INPUT);
  pinMode(A3, OUTPUT);
  digitalWrite(A1, LOW); // set A1 to GND
  digitalWrite(A3, HIGH); // set A3 as 5V
  delay(10); // short delay is required to give the analog pins time to adjust to their new roles
  xr=analogRead(A0); //lendo "coordenada" X
  return xr;
}

//funcao que le a coordenada Y
int readY() {
  int yr=0;
  //arrumando a funcao de cada pino
  pinMode(A0, OUTPUT);
  pinMode(A1, INPUT);
  pinMode(A2, OUTPUT);
  pinMode(A3, INPUT);
  digitalWrite(A0, LOW); // set A0 to GND
  digitalWrite(A2, HIGH); // set A2 as 5V
  delay(10); // short delay is required to give the analog pins time to adjust to their new roles
  yr=analogRead(A1); //lendo "coordenada" Y
  return yr;
}

void loop() {
int x=0;
int y=0;
 
x=readX();
//Transformacao para converter a leitura para um valor entre 0 e 100
//Valores determinados via calibraçao
x=100*((x-80.0)/(815.0-80.00));

y=readY();
//Transformacao para converter a leitura para um valor entre 0 e 100
//Valores determinados via calibraçao
y=100*((y-110.0)/(760.0-110.00));

//imprime na saida apenas se houver toque
if (x>0 && y>0) {
  Serial.print("x=");
  Serial.print(x);
  Serial.print(" y=");
  Serial.println(y);
  delay(500);
}

}

Conseguiu fazer mais alguma aplicação? estou tentando utilizar ela como um teclado, para fazer um sistema de segurança q abra e fecha uma porta, a partir de um código digitado através dela. Mas não estou com alguns problemas :X

Na verdade, tive problema em fazer a tela funcionar outro dia, mesmo seguindo o que postei aqui.

No final das contas, acabei deixando esse item de lado, mas toparia um ajudar em um esforço conjunto pra documentar bem essa peça.

O que você conseguiu fazer funcionar até o momento?

LED?Talvez possa tentar TFT LCD. Já o usei antes. É realmente um excelente monitor.www.stoneitech.com

Bom dia SR,  (se não gosta que te chame pelas iniciais, avise),

este tópico teve a ultima resposta há 9 anos,  (2013). ????

você é representante deste fabricante?

RV mineirin

RSS

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço