タッチスクリーン 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)の範囲とは一致しない
実際の有効範囲は読み取って確認する。

最小構成のスケッチ
の 3つのスケッチを公開しています。