Arduino用2.4インチTFT LCDシールドのタッチスクリーン問題を解決
必要な部品と材料
| Arduino UNO | ×1 |
プロジェクト概要
2.4インチTFT LCDシールドの様々な機能をテストしようとしたところ、いくつかの問題に遭遇しました。通常のチュートリアルの前に、遭遇した問題とその解決策を共有します。
使用しているシールドは2.4インチ画面で、Arduino Uno、Leonardo、Duemilanove、Megaなどで動作し、BMP画像表示用のSDカードスロットも備えています。
配線
ボードの上にそのまま挿すだけです(USBポート周りに絶縁テープを貼り、スクリーン基板と接触しないよう注意してください)。
ライブラリとコード
ここから問題が始まりました。まず動作するライブラリを見つける必要があります。「graphictest」サンプルを開き、色や図形が正しく表示されるか確認してください。白い画面のままならライブラリを変える必要があります。
私の環境で動作したライブラリ:SPFD5408
表示が正常なら「tftpaint」サンプルでタッチ機能をテストします。正しく動けば問題ありませんが、メーカーによってピン配置が異なるため、タッチが効かないことがよくあります。
ピン定義の修正
「tftpaint」サンプルの以下の行を修正します:
元のコード
#define YP A1 // アナログピン必須、「An」表記を使用
#define XM A2 // アナログピン必須、「An」表記を使用
#define YM 7 // デジタルピン可
#define XP 6 // デジタルピン可
修正後のコード
#define YP A3 // アナログピン必須、「An」表記を使用
#define XM A2 // アナログピン必須、「An」表記を使用
#define YM 9 // デジタルピン可
#define XP 8 // デジタルピン可
修正後、再アップロードしてタッチが検出されるか確認してください。
軸が反転している場合
タッチスクリーンライブラリを開き、159行目付近のコメントアウトを外します:
さらに完全に反転している場合は、以下のように調整します:
return TSPoint(1023-x, 1023-y, z);
タッチした位置に点が描画されるまで x / 1023-x、y / 1023-y を調整してください。私の環境では上記の値で正常に動作しました。
コード
GitHub: https://github.com/JoaoLopesF/SPFD5408
回路図
シールドタイプなので配線図は不要です
製造プロセス
- メンテナンス戦略の刷新:PM最適化とFMEAで修理後故障を削減
- LCD vs CRT:メリット・デメリットと最適な選び方
- ILI9341 2.4インチTFTタッチシールドでのビットマップアニメーション実装ガイド
- Arduino UNOで作るLCDアニメーション&ゲーム入門
- Arduino Nanoで2.8インチTFT SPI液晶にJPEG写真とRGB565動画を表示する
- Arduino UNOで1.17インチTFT LCDに画像を表示する方法
- Arduino 2.4インチTFT LCDシールドでSDカードからBMP画像を表示する
- Arduino Nano用 高性能2.8インチTFTシールド - 320×240 SPIディスプレイ
- Arduino GPS+TFTタッチシールドで作るリアルタイム位置表示デバイス
- タッチセンサー:仕組みと主要アプリケーション
- C言語 プリプロセッサとマクロ: #include, #define, 条件付きコンパイルをマスター