質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.46%
Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

Q&A

2回答

2078閲覧

TFTをArduinoで動かしたいがずっと白色バックライトのみになる

Kishier

総合スコア0

Arduino

Arduinoは、AVRマイコン、単純なI/O(入出力)ポートを備えた基板、C言語を元としたArduinoのプログラム言語と、それを実装した統合開発環境から構成されたシステムです。

0グッド

0クリップ

投稿2021/10/26 03:18

問題

https://www.amazon.co.jp/gp/product/B0722DPHN6/ref=ppx_yo_dt_b_asin_title_o02_s00?ie=UTF8&psc=1
この商品を2つ買い,Arduino MEGA2560に挿し,Adafruit TFTLCD Libraryのgraphicstestを試しています。
白色の表示がずっと表示される問題が治りません。

試したこと1/2

MCUFRIEND_kbvライブラリのLCD_ID_readregを実行すると

Read Registers on MCUFRIEND UNO shield controllers either read as single 16-bit e.g. the ID is at readReg(0) or as a sequence of 8-bit values in special locations (first is dummy) reg(0x0000) 00 00 ID: ILI9320, ILI9325, ILI9335, ... reg(0x0004) 00 00 00 00 Manufacturer ID reg(0x0009) 00 00 61 00 00 Status Register reg(0x000A) 00 08 Get Power Mode reg(0x000C) 00 06 Get Pixel Format reg(0x0061) 00 00 RDID1 HX8347-G reg(0x0062) 00 00 RDID2 HX8347-G reg(0x0063) 00 00 RDID3 HX8347-G reg(0x0064) 00 00 RDID1 HX8347-A reg(0x0065) 00 00 RDID2 HX8347-A reg(0x0066) 00 00 RDID3 HX8347-A reg(0x0067) 00 00 RDID Himax HX8347-A reg(0x0070) 00 00 Panel Himax HX8347-A reg(0x00A1) 00 00 00 00 00 RD_DDB SSD1963 reg(0x00B0) 00 00 RGB Interface Signal Control reg(0x00B4) 00 02 Inversion Control reg(0x00B6) 00 0A 82 27 04 Display Control reg(0x00B7) 00 06 Entry Mode Set reg(0x00BF) 00 00 00 00 00 00 ILI9481, HX8357-B reg(0x00C0) 00 21 00 00 00 00 00 00 00 Panel Control reg(0x00C8) 00 00 00 00 00 00 00 00 00 00 00 00 00 GAMMA reg(0x00CC) 00 72 Panel Control reg(0x00D0) 00 00 00 Power Control reg(0x00D2) 00 00 00 03 03 NVM Read reg(0x00D3) 00 00 93 41 ILI9341, ILI9488 reg(0x00D4) 00 00 00 00 Novatek ID reg(0x00DA) 00 00 RDID1 reg(0x00DB) 00 00 RDID2 reg(0x00DC) 00 00 RDID3 reg(0x00E0) 00 0F 16 14 0A 0D 06 43 75 33 06 0E 00 0C 09 08 GAMMA-P reg(0x00E1) 00 08 2B 2D 04 10 04 3E 24 4E 04 0F 0E 35 38 0F GAMMA-N reg(0x00EF) 00 03 80 02 02 02 ILI9327 reg(0x00F2) 00 02 02 02 02 02 02 02 02 02 02 02 Adjust Control 2 reg(0x00F6) 00 01 00 00 Interface Control

と出力されます。
http://nopnop2002.webcrow.jp/Arduino-Hard/ArduinoTFTShield.htmlを参考にILI9341が使われていると判断し,
この方針この方針でパラメータを変えてみましたが同じでした。

試したこと2/2

Arduino UNOに差し替えてトライしてもずっと白色表示でした。

気になるのが,この条件でLCD_ID_readregを実行すると

Read Registers on MCUFRIEND UNO shield controllers either read as single 16-bit e.g. the ID is at readReg(0) or as a sequence of 8-bit values in special locations (first is dummy) reg(0x0000) 01 01 ID: ILI9320, ILI9325, ILI9335, ... reg(0x0004) 05 05 05 05 Manufacturer ID reg(0x0009) 09 09 09 09 09 Status Register reg(0x000A) 09 09 Get Power Mode reg(0x000C) 0D 0D Get Pixel Format reg(0x0061) 21 21 RDID1 HX8347-G reg(0x0062) 21 21 RDID2 HX8347-G reg(0x0063) 21 21 RDID3 HX8347-G reg(0x0064) 25 25 RDID1 HX8347-A reg(0x0065) 25 25 RDID2 HX8347-A reg(0x0066) 25 25 RDID3 HX8347-A reg(0x0067) 25 25 RDID Himax HX8347-A reg(0x0070) 31 31 Panel Himax HX8347-A reg(0x00A1) 21 21 21 21 21 RD_DDB SSD1963 reg(0x00B0) 31 31 RGB Interface Signal Control reg(0x00B4) 35 35 Inversion Control reg(0x00B6) 35 35 35 35 35 Display Control reg(0x00B7) 35 35 Entry Mode Set reg(0x00BF) 3D 3D 3D 3D 3D 3D ILI9481, HX8357-B reg(0x00C0) 01 01 01 01 01 01 01 01 01 Panel Control reg(0x00C8) 09 09 09 09 09 09 09 09 09 09 09 09 09 GAMMA reg(0x00CC) 0D 0D Panel Control reg(0x00D0) 11 11 11 Power Control reg(0x00D2) 11 11 11 11 11 NVM Read reg(0x00D3) 11 11 11 11 ILI9341, ILI9488 reg(0x00D4) 15 15 15 15 Novatek ID reg(0x00DA) 19 19 RDID1 reg(0x00DB) 19 19 RDID2 reg(0x00DC) 1D 1D RDID3 reg(0x00E0) 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 GAMMA-P reg(0x00E1) 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 21 GAMMA-N reg(0x00EF) 2D 2D 2D 2D 2D 2D ILI9327 reg(0x00F2) 31 31 31 31 31 31 31 31 31 31 31 31 Adjust Control 2 reg(0x00F6) 35 35 35 35 Interface Control

と出力が変わるということです。

なお,ここまでの試行結果は2枚のLCDで同じでした。

お手上げなのでお助けください。。

補足情報(FW/ツールのバージョンなど)

Arduino IDE 1.8.11

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

y_waiwai

2021/10/26 04:21

まずはコードを提示しましょう
guest

回答2

0

参照先にあるように、LCDモジュールはイロイロなので「下手な鉄砲数撃ちゃ当たる」を狙うのはなかなか大変かと思います。
一歩ずつ潰していってはいかがでしょうか。

まず。
LCD_ID_readreg.inoの冒頭は以下のようになっています。

//-- Arduino UNO or Mega 2560 Plugged as shield #define LCD_RST A4 #define LCD_CS A3 #define LCD_RS A2 #define LCD_WR A1 #define LCD_RD A0 #define LCD_D0 8 #define LCD_D1 9 #define LCD_D2 2 //<以下略>

一方、graphicsTest.inoには

// IMPORTANT: Adafruit_TFTLCD LIBRARY MUST BE SPECIFICALLY // CONFIGURED FOR EITHER THE TFT SHIELD OR THE BREAKOUT BOARD. // SEE RELEVANT COMMENTS IN Adafruit_TFTLCD.h FOR SETUP. //<略> // When using the BREAKOUT BOARD only, use these 8 data lines to the LCD: // For the Arduino Uno, Duemilanove, Diecimila, etc.: // D0 connects to digital pin 8 (Notice these are // D1 connects to digital pin 9 NOT in order!) // D2 connects to digital pin 2 //<略> // For the Arduino Mega, use digital pins 22 through 29 // (on the 2-row header at the end of the board).

などと書かれています。
つまり、LCD_ID_readregでレジスタを読み出せたということは、なんだかBREAKOUT BOARD相当のピン配置なのではないか...という気がしてきます。
(Mega云々は...なんなんでしょうね)

で、Adafruit_TFTLCD.hを覗いてみると、

// **** IF USING THE LCD BREAKOUT BOARD, COMMENT OUT THIS NEXT LINE. **** // **** IF USING THE LCD SHIELD, LEAVE THE LINE ENABLED: **** //#define USE_ADAFRUIT_SHIELD_PINOUT 1

なんてのがあります。あなたの環境で、USE_ADAFRUIT_SHIELD_PINOUTがコメントアウトされていることを確かめるべきかと思います。

実はそれ以外はあまり手を思いつきませんが...
とりあえず、余計な手をいれない状態でgraphicstestの開始直後のシリアルに出るメッセージになんと書いてあるかは確認するべきかと思います。93 41が読み出せているのなら素直に動きそうなものですけれど。

投稿2021/10/26 05:55

thkana

総合スコア7659

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

Kishier

2021/10/26 14:16 編集

回答ありがとうございます。USE_ADAFRUIT_SHIELD_PINOUTのコメントアウトのあり/なしでこれまでの条件と総当たりで組み合わせましたが映りませんでした。 特に,使っているTFTモジュールはArduino(Mega)用シールドだと思われるので,(Adafruit_TFTLCD.hライブラリ中記載の指示に従い)コメントアウトなしにし,かつ,その状態でAdafruit TFTLCD Libraryのgraphicstestを実行したところ, 「Unknown LCD driver chip: 101」 と出力に出てきました。この部分はAdafruit_TFTLCD.cppの一部をいじると 「Found ILI9341 LCD driver」 と強制的に認識させられますが映りはしませんでした。 しかしながら,購入元のAmazonレビューの中で「elegooの2.8インチタッチパネルの付属のデーターを入れたところ,普通に動きました。」との記述を発見。試したところ,映りました。コードの違いを分析してみるつもりです。 詳細は自己回答にて。ありがとうございます。
guest

0

購入元のAmazonレビューの中で「elegooの2.8インチタッチパネルの付属のデーターを入れたところ,普通に動きました。」との記述を発見。試したところ,映りました。

ライブラリは Elegoo_GFXElegoo_TFTLCDで,
テストはElegoo_TFTLCD-masterライブラリのgraphicstestで行いました。
何も設定をいじらない状態で所定の動作が映りました。

AdafruitとElegooのコードの違いは分析中です。わかる方,ぜひコメントいただけるとこの質問が有益なかんじになると思うのでぜひ。

投稿2021/10/26 08:24

Kishier

総合スコア0

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.46%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問