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: 13270

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 José Carlos Pinna em 7 dezembro 2017 às 8:29

Bom dia,

Quando se fala em touch o microcontrolador já tem as portas preparadas e um biblioteca sofisticada a placa um layout bem elaborado para evitar interferências.

Neste caso esta tela já é preparada? É seguro?

  

Comentário de hugo leonardo b em 10 outubro 2013 às 13:13

OLA 

GOSTEI DO PROJETO SÓ GOSTARIA DE SABER SE TEM COMO JOGAR ALGUMAS IMAGENS OU VIDEOS DENTRO DO LCD 

PARABÉNS PELO PROJETO.

Comentário de Gedeane Kenshima em 6 junho 2013 às 22:21

tem o lado certo de encaixar aquela película bem fininha da tela no breakout?

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 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!

© 2024   Criado por Marcelo Rodrigues.   Ativado por

Badges  |  Relatar um incidente  |  Termos de serviço