Projeto com Nintendo DS Touch Screen e Arduino

Neste projeto, iremos mostrar como utilizar o Nintendo DS Touch Screen com Arduino.

Com o conector breakout para Nintendo DS Touch Screen faça a seguinte ligação para conectar o Nintendo DS Touch Screen no Arduino:

Onde:

          A0, A1, A2, A3 são as portas analógicas do Arduino

          X1, Y2, X2 e Y1 são os conectores do Nintendo DS Touch Screen

Para ter o efeito como no vídeo é necessário mapear o Touch Screen, a figura abaixo mostra o desenho utilizado com as coordenadas principais:

Agora com as coordenadas, podemos ir para o código:

int x=0;
int y=0;
int z=0;

void setup()
{
Serial.begin(9600);
pinMode(2,OUTPUT);                           // The Pins to Leds
pinMode(3,OUTPUT);
pinMode(4,OUTPUT);
pinMode(5,OUTPUT);
pinMode(6,OUTPUT);
pinMode(7,OUTPUT);
pinMode(8,OUTPUT);
pinMode(9,OUTPUT);
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
pinMode(12,OUTPUT);
pinMode(13,OUTPUT);

}

int readX() // returns the value of the touch screen's X-axis
{
int xr=0;
pinMode(A0, INPUT); // A0
pinMode(A1, OUTPUT); // A1
pinMode(A2, INPUT); // A2
pinMode(A3, OUTPUT); // A3
digitalWrite(A1, LOW); // set A1 to GND
digitalWrite(A3, HIGH); // set A3 as 5V
delay(5); // short delay is required to give the analog pins time to adjust to their new roles
xr=analogRead(0); //
return xr;
}

int readY() // returns the value of the touch screen's Y-axis
{
int yr=0;
pinMode(A0, OUTPUT); // A0
pinMode(A1, INPUT); // A1
pinMode(A2, OUTPUT); // A2
pinMode(A3, INPUT); // A3
digitalWrite(A0, LOW); // set A0 to GND
digitalWrite(A2, HIGH); // set A2 as 5V
delay(5); // short delay is required to give the analog pins time to adjust to their new roles
yr=analogRead(1); //
return yr;
}

void loop()
{

x=readX();
//Serial.print(" x = ");            //DEBUG
//Serial.println(x);
y=readY();
//Serial.print(" y = ");            //DEBUG
//Serial.println(y);

if(((x>110) && (x<330)) && ((y>250) && (y<370)))            
{
digitalWrite(2,HIGH);

}
if(((x>330) && (x<550)) && ((y>250) && (y<370)))
{
digitalWrite(5,HIGH);

}
if(((x>550) && (x<770)) && ((y>250) && (y<370)))
{
digitalWrite(8,HIGH);

}
if(((x>770) && (x<990)) && ((y>250) && (y<370)))
{
digitalWrite(11,HIGH);

}
if(((x>110) && (x<330)) && ((y>140) && (y<250)))
{
digitalWrite(2,HIGH);
digitalWrite(3,HIGH);
digitalWrite(4,HIGH);


}
if(((x>330) && (x<550)) && ((y>140) && (y<250)))
{
digitalWrite(5,HIGH);
digitalWrite(6,HIGH);
digitalWrite(7,HIGH);
}
if(((x>550) && (x<770)) && ((y>140) && (y<250)))
{
digitalWrite(8,HIGH);
digitalWrite(9,HIGH);
digitalWrite(10,HIGH);
}
if(((x>770) && (x<990)) && ((y>140) && (y<250)))
{
digitalWrite(11,HIGH);
digitalWrite(12,HIGH);
digitalWrite(13,HIGH);
}
if(((x>110) && (x<330)) && ((y>370) && (y<630)))
{
digitalWrite(3,HIGH);
}
if(((x>330) && (x<550)) && ((y>370) && (y<630)))
{
digitalWrite(6,HIGH);
}
if(((x>550) && (x<770)) && ((y>370) && (y<630)))
{
digitalWrite(9,HIGH);
}
if(((x>770) && (x<990)) && ((y>370) && (y<630)))
{
digitalWrite(12,HIGH);
}
if(((x>110) && (x<330)) && ((y>630) && (y<920)))
{
digitalWrite(4,HIGH);
}
if(((x>330) && (x<550)) && ((y>630) && (y<920)))
{
digitalWrite(7,HIGH);
}
if(((x>550) && (x<770)) && ((y>630) && (y<920)))
{
digitalWrite(10,HIGH);
}
if(((x>770) && (x<990)) && ((y>630) && (y<920)))
{
digitalWrite(13,HIGH);
}
if((x>990) && (y>370))        // If the Touch Screen not Touch
{
digitalWrite(2,LOW);
digitalWrite(5,LOW);
digitalWrite(8,LOW);
digitalWrite(11,LOW);
digitalWrite(3,LOW);
digitalWrite(4,LOW);
digitalWrite(9,LOW);
digitalWrite(12,LOW);
digitalWrite(6,LOW);
digitalWrite(7,LOW);
digitalWrite(10,LOW);
digitalWrite(13,LOW);
}
}

O código mostra que em cada lugar do Nintendo DS Touch Screen um led ou mais leds acenderão como mostrado no vídeo!

Com o Nintendo DS Touch Screen pode fazer muito mais!! Este projeto é apenas uma demonstração. Esperamos que tenham gostado e se tiverem dúvidas comentem aqui mesmo neste blog! Até a próxima!

Equipe Lab de Garagem

Referências:

http://labdegarag1.lojatemporaria.com/nintendo-ds-touch-screen.html

http://labdegarag1.lojatemporaria.com/nintendo-ds-touch-screen-conn...

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

http://tronixstuff.wordpress.com/2010/12/29/tutorial-arduino-and-th...

Exibições: 2772

Tags: arduino, ds, nintendo, projeto, screen, touch

Comentar

Você precisa ser um membro de Laboratorio de Garagem (arduino, eletrônica, robotica, hacking) para adicionar comentários!

Entrar em Laboratorio de Garagem (arduino, eletrônica, robotica, hacking)

Comentário de Rogerio A. Filho em 2 abril 2013 às 23:18

teoricamente, funciona com qualquer tela touch screen? as de tamanhos maiores.. ou ate mesmo as de celular?

Comentário de RENAN CESAR S. KLEIM em 8 maio 2012 às 15:16

legal mesmo...mas podia listar os componentes que foram usados e se não for pedir d+ o esquema de ligação só p facilitar rsrsrs...mas vlew!

Comentário de ezequiel da silva daniel em 20 abril 2012 às 16:21

muito legal esse projeto.. parabéns...

Comentário de Eduardo Francisco de Avelar em 17 abril 2012 às 14:26

Show de bola! Mais uma que aprendi agora.

Valew pelo post!

Publicidade

Convide um amigo para o Lab!

 Loja Lab de Garagem

Novo!

Garagino Rev1

Por: R$ 29,00

Ou em até 6x de

R$ 5,18 

Novo!

Servo Motor Grande 180°

Por: R$ 54,00

Ou em até 12x de

R$ 5,10

 

Exclusividade do LdG!

Android 4.0 Mini PC

Por: R$ 195,00

Ou em até 18x de

R$ 13,00

Válvula Solenóide de 12V - 3/4"

Por: R$ 36,00

Ou em até 7x de

R$ 5,56

© 2013   Criado por Marcelo Rodrigues.

Badges  |  Relatar um incidente  |  Termos de serviço