2026年9月17日木曜日

Arduino手習い(TFTディスプレイを使う)

 以前、PICに繋げるつもりで買ってデッドストックになっていたTFTディスプレイ(ILI9341)はESP32に繋げられそうなので試してみた。このTFTディスプレイにはタッチパネル(MSP2807)が付いている。次のWEBを参考にした。

ESP32 TFT with LVGL: Display Temperature on Line Chart (BME280)

プログラムをコンパイルしESP32に書込むとプログラムは何事も無く動いた。コンパイルにあたり1つ注意が必要なのはlvglライブラリーが最新バージョンの9.6.0ではなく9.2.xを選ぶ必要がある事だ。そうでないとコンパイルエラーで先へ進めない。

 上の写真を撮った時点ではタッチパネルは未配線であるが問題なく動いた。タッチパネルを配線してみたらタッチした反応が得られようになったが座標が正常には認識されていなかった。これはプログラム中305行目付近にある次の行のパラメータを2から0に変更したら正常になった(この事はプログラム中のコメントに記載されている)。

    touchscreen.setRotation(2);

 

TFTディスプレイが動いたことに気をよくしてプログラム(ウェザーステーション)にも挑戦した。

  ESP32 TFT with LVGL: Weather Station

これはインターネットから気象データを取得し気温や天気をグラフィックに表示するものだが、こちらは 、

最大1310720バイトのフラッシュメモリのうち、スケッチが1853116バイト(141%)を使っています。

 というフラッシュメモリーが足りないというエラーが出て実行できなかった。

最後に、TFTディスプレイに画像を表示させてみた。元ネタは次のWebだ。

    ESP32 with TFT: Display Image using LVGL – 2.8 inch ILI9341 240×320 

 指示に従って外部サイトを使って自分の画像データをプログラムで使える形に変換し image.h のファイル中に挿入し、プログラムと共にコンパイル・実行すると画像がTFTに表示された。


 参考までにESP32、TFT、BME280の接続関係は次図の通り。


 

 

 

0 件のコメント:

コメントを投稿