タッチスクリーン TSC2046
2.8" TFTインチ液晶ディスプレイ タッチパネル MSP2807 のタッチスクリーン部分 TSC2046 です。このTFT液晶は電源電圧は3.3~5V対応ですが、信号レベルは3.3Vなので
ArduinoUNOなどの5V系のマイコンで使用する場合にはレベルシフタが必要です。
私は 8Bit双方向ロジックレベルコンバータ を使用しました。
ロジックレベルを3.3Vに変更できるArduinoUNO互換機(KEYSTUDIO PLUS)や、M5Stamp、RaspberryPi PICOでは直接接続できます。
ArduinoUNOとの接続
信号名がシルク印刷されていますので分かり易いと思います。ハードウエアSPIを使用するために、ArduinoUNO側では13,12,11番ピンは固定ですが、それ以外は任意のピンに割り当てできます。
タッチスクリーン | LCDモジュール | ArduinoUNO |
---|---|---|
VCC | 3.3V | |
GND | GND | |
CS | D10 | |
RESET | D9 | |
DC | D8 | |
T_CS | D7 | |
T_DIN | SDI(MOSI) | D11 |
T_CLK | CSK | D13 |
LED | 3.3V | |
T_DO | SDO(MISO) | D12 |
TSC2046のコマンド
動作 | COMAND |
---|---|
12Bit X座標読み取り | 0xd0 |
8Bit X座標読み取り | 0xd8 |
12Bit Y座標読み取り | 0x90 |
8Bit Y座標読み取り | 0x98 |
12Bit Z1座標読み取り | 0xb0 |
8Bit Z1座標読み取り | 0xb8 |
12Bit Z2座標読み取り | 0xc0 |
8Bit Z2座標読み取り | 0xc8 |
タッチスクリーンの座標系
タッチスクリーンの座標系は左下原点で変更できない。座標は8Bit or 12Bitで取得できるが、読み取り範囲は読み取りデータの範囲とは一致しない。
※ 8Bit(0~255)、12Bit(0~4096)の範囲とは一致しない
実際の有効範囲は読み取って確認する。
最小構成のスケッチ
touch-SmollSet : 動作確認用の最小セットtouch-SmollSet2 : TFT液晶とタッチスクリーンを併用する最小セット
touch-DEMO : TFT液晶に表示したボタンをクリックするデモ
の 3つのスケッチを公開しています。
YuruPuro/MSP2807