YHY024006A-PCBはaitendoで1980円で売られているLEDバックライトのタッチパネル付き2.4型TFT液晶です。
いわゆる小型のLED液晶です。
画面の解像度も240×320と、そこそこ綺麗です。
今日、この制御が少し進みました。
まずは通常の液晶制御の写真から。
←裏面
すべてショートピンで接続しています。
元々はしっかりコネクタでつないでいたのですが、現在修理中のため後輩に同じマイコン基板を借りて制御していました。
Interfaceの6月号付属のSH-2A基板から制御しています。
本題に移りますと、タッチパネルの制御ができました。
上に表示されている数字がX座標、下に表示されている数字がY座標となっています。
(X座標の分解能は240、Y座標の分解能は320に設定してあります)
このプログラムでは、タッチされた位置に平仮名の「あ」を表示しています。
右下の数字は描画速度を見るためのカウンタですので関係ありません。
ソースコードは希望が多ければ公開するつもりですが、ほとんど公式サンプル通りなので今はUpしません。
このタッチパネルは、最も制御が簡単な4線式抵抗膜方式で制御できます。
NitendoDSではこの4線式を採用していますが、ipod touchでは静電気の量を測っています。
4線式抵抗膜方式のタッチパネルでは、液晶の4つの各辺にそれぞれ、合計4つの電極が内蔵されています。
パネル自体は一応電気を通す素材で出来ていますが、かなりの抵抗を持っているため、電気を通った長さに比例して電圧が下がります。この電圧の変化を読めばタッチした位置から距離がわかるという仕組みです。
具体的には、
右図のようにXの膜とYの膜があります。
まず、Xの膜に電圧をかけてHの状態にします。
そしてYの膜をプルダウンしてマイコンのA/D変換ポートに繋ぎます。
いま、タッチペンでタッチすることによって’H'状態であるX膜がY膜に接したため、
Y1,Y2の電極に電気が流れます。
例えばこの時の電圧が
Y1が1(V)、Y2が0.5(V)だったとします。
そうなればパッと見でもタッチされたのはY1側であるとわかります。
後は端での最大値と最小値を求めて、それに比例するように計算すれば、タッチされた位置が特定できるという仕組みです。
X座標に関しても同じように、Y膜をHにしてから
同じようにA/D変換をとおして値を読むことによって、タッチされた座標を正確に求めることができます。
これで操作には困らなくなったので、明日からはこれにFatFsを使用したSDカードを実装する作業を進めていきます。
目標は、
SDからのbmpファイルの読み込み
SDからのフォントデータの読み込み
です。
まだまだ頑張りますよ~
技術力をつけるために。
追記:
SDでここまでできました→http://blog.half-ldk.rakusei.net/?p=62