arduino:入力基礎:タッチパネル

タッチパネル(4線式)の利用方法

このページではタッチパネルをArduinoで利用するための解説を載せます. ただしタッチパネルとはいっても4線式又は感圧式タッチパネルと呼ばれる 昔からあるシングルタッチ認識(マルチタッチ非対応)のタッチパネルになります. まずタッチパネルの仕組み,解説に関しては 建築発明工作ゼミ2008を よく読んで下さい.このページで丁寧に説明されています.

それではまずArduinoにつなげてみましょう. 4線式タッチパネルはその名前のとおり,4本の線を接続する必要があります. 具体的にはxHigh, yHigh, xLow, yLowの4種類になります.先の建築発明工作ゼミの記事だけでは実際にどのピンが どれになっているかがよくわかりません.ただ原理的には可変抵抗なので,HighでもLowでもソフトウェア側から調整 がききます.なので,High, Lowにかかわらず,少なくともX,Yが合っていればそれなりの値を得ることができます. タッチパネルの使用にもいろいろあるのですが,だいたい(例外あります)X,Y,X,Yの順番になっています.最悪この XYを間違えていても,縦横をそれぞれHIGH,LOWで接続できていれば問題ないです.この辺り長く書いていてもわかりづらい ので,下記具体的に記述します.

タッチパネルにはフィルム型基盤(FCP)が使用されています. 比較的大きなサイズのタッチスクリーンであれば直接ハンダ付けもできますが,配線ピッチが 1.0mmや0.8mmなどになってくると,少し技術が必要になります.普段利用する場合は,それらの幅狭ピッチを 2.54等のブレッドボードピッチに変換するアダプタなどを利用するとよいでしょう.ここでタッチパネルの 接続ですが,下図のそれぞれ1,2,3,4を順番にxHigh, yHigh, xLow, yLowとします.接続する際は回路図に あるように,10〜100K程度の抵抗でプルダウンさせておきます.

http://tetsuakibaba.jp/workshop/ArduinoBasis/touchpanel_pin.jpg

http://tetsuakibaba.jp/workshop/ArduinoBasis/touchPanel_connection.png

では次に受け手側のArduinoの準備です.これに関しても建築発明工作ゼミにサンプルプログラムがあるので, 先のピン番号を合わせればOKです.サンプルプログラムをおいておきます.このサンプルでは

  1. xHigh: PIN3
  2. yHigh: PIN4
  3. xLow : A0/PIN14
  4. yLow : A1/PIN15

に接続しています.ちなみにA0,A1はデジタル入出力で利用した場合,14,15番ピンとして扱えます. TouchPanelSample

さて,うまく動いたでしょうか?AD変換の値が座標になっているので,それぞれ0-1023の値で座標が取得できます. ただしtouchPanelクラスから得られる座標には端のデータが含まれていません.実際に計測すると触れていないときでも 何かしらのAD変換データが得られます.これは実際のタッチパネル特性によるのですが,大体が端の値を出力してきます. なので,タッチパネルに触れている時とそうでない時を判別するために,touched()関数を利用しています.詳細は関数の 定義部分を参照してください.なんてことのないif文で触っているか,いないかを判別しています.

では次に座標系の修正をおこないます.touchPanelクラスのupdate()関数の最後に座標を修正するコードがありますので, これを利用しているタッチパネルに合わせて修正しましょう.これでOKです.

  • /home/users/2/lolipop.jp-4404d470cd64c603/web/ws/data/pages/arduino/入力基礎/タッチパネル.txt
  • 最終更新: 2018/07/02 15:22
  • by baba