Arduino UNO R4 WiFiで2.2インチTFTの表示テストをします。
2.2インチTFTは3.3V系のデバイスなので、次の回路図ように電圧変換モジュールFXMA108を間に入れて接続します。(抵抗で分圧する方法もあります)
Arduino Pro Miniで既に表示テストをしています。その記事は、JH7UBCホームページのこちらの記事です。
Arduino UNO R4(WiFi)に接続する前にArduino UNO R3でテストをしました。
まず、ライブラリ管理で必要なライブラリAdafruit_ILI9341.hとAdafruit_GFX.hをインストールします。
次に、ファイル→スケッチ例→Adafruit ILI9341と進み、graphicstestを読み込みます。
このままでは動きませんので、スケッチを次のように修正します。
(赤字の部分を加えます)
// For the Adafruit shield, these are the default. #define TFT_RST 8 // 追加 #define TFT_DC 9 #define TFT_CS 10 // Use hardware SPI (on Uno, #13, #12, #11) and the above for CS/DC Adafruit_ILI9341 tft = Adafruit_ILI9341(TFT_CS, TFT_DC, TFT_RST); |
これでR3にコンパイル書き込みをしました。グラフィックが表示されたあと文字が表示され、90°ずつ回転して表示されました。
次に、R3をR4 WiFiに交換してテストをしました。
ところが、同じスケッチをコンパイルすると「wiring_private.h」というファイルがありませんというエラーメッセージがでてNGでした。
解決法をネットで探すとAdafruiteのサイトのForumsに解決策を書いた記事がありました。記事はこちら。
ドキュメント内のArduinoフォルダにあるlibrarisフォルダ内のAdafruite_ILI9341フォルダにあるAdafruite_ILI9341.cppをエディタ(メモ帳)などで次のように書き換え保存します。
52-54行目の次の部分を
#ifndef RASPI
#include "wiring_private.h"
#endif
次のように変更します。
#if defined(__has_include)
#if __has_include("wiring_private.h")
#include "wiring_private.h"
#endif // __has_include("wiring_private.h")
#else //defined(__has_include)
#include "wiring_private.h"
#endif //defined(__has_include)
#ifndef RASPI
#include "wiring_private.h"
#endif
次のように変更します。
#if defined(__has_include)
#if __has_include("wiring_private.h")
#include "wiring_private.h"
#endif // __has_include("wiring_private.h")
#else //defined(__has_include)
#include "wiring_private.h"
#endif //defined(__has_include)
私は、上の3行を//でコメントアウトして下の6行をコピペしました。
以上の変更を行った結果エラーがでなくなり、コンパイル書き込みしたら、うまく表示されました。めでたし、めでたし。
表示速度は、やはりR4の方が速いです。
それにしてもR3とR4は別物ですね。
※コメント投稿者のブログIDはブログ作成者のみに通知されます