ニンテンドーDSとArduinoタッチスクリーン
突然
、ニンテンドーDSに小さなタッチスクリーンを注文し、それをArduinoに接続したかったのです。
問題
最初の問題は接続方法です。コネクタがないため、どこからでも取り出すことができず、購入するのに費用がかかります(約4〜5ドル、画面価格2〜3ドル)。 そのため、メス、刃、または小さなハサミを用意し、ケーブルを慎重に切断します。その後、ワイヤをはんだ付けするのは非常に簡単です。主なことは、たとえばこれを行うことによって、絶縁することです。
接続とプログラミング
Arduinoフォーラムからの無料翻訳:
ケーブルが右下になるように画面を見ると、連絡先は次の順序で移動します。
TOP | LEFT | BOTTOM | RIGHT
Arduinoに接続する
LEFT 2
BOTTOM 3
RIGHT 4
TOP 5
2つの配線をアナログ入力に接続します:
TOP 3 ( 5)
RIGHT 4 ( 4)
スケッチ
ロビンホイットフィールドとマルコニコラトの修正コード
(タッチスクリーンコード自体)#define Lo 2 // LEFT 2
#define Bo 3 // BOTTOM 3
#define Ro 4 // RIGHT 4
#define To 5 // TOP 5
#define Ti 3 // TOP 3 ( 5)
#define Ri 4 // RIGHT 4 ( 4)
//
int touchX = 0;
int touchY = 0;
void setup() {
Serial.begin(9600);
}
void loop() {
if (touched()) {
// /
Serial.print(touchX);
Serial.print(",");
Serial.print(touchY);
Serial.println();
delay(100);
}
}
boolean touched() {
boolean touch = false;
pinMode(Lo, OUTPUT);
digitalWrite(Lo, LOW);
pinMode(Ro, OUTPUT);
digitalWrite(Ro, HIGH);
pinMode(To, INPUT);
pinMode(Bo, INPUT);
delay(10);
touchX = analogRead(Ti);
pinMode(Bo, OUTPUT);
digitalWrite(Bo, LOW);
pinMode(To, OUTPUT);
digitalWrite(To, HIGH);
pinMode(Ro, INPUT);
pinMode(Lo, INPUT);
delay(10);
touchY = analogRead(Ri);
if(touchX < 1000 and touchX > 0 and touchY < 1000 and touchY > 0)
touch = true;
return touch;
}
まとめ
その結果、起動後、クリックポイントの座標はコンソール/ターミナル/ your_processorに落ち、エラーは+ -2ポイント、両方の軸で100から900の値ですが、明らかにスクリーンのモデル、0から1000および200から500
UPD:
tronixstuff.wordpress.com/2010/12/29/tutorial-arduino-and-the-ds-touch-screen-さらにシンプルな接続オプション
Source: https://habr.com/ru/post/J108972/
All Articles