Amazonで購入したLCDにRaspberry Pi Picoから表示

AmazonでCSピンが無いLCD(ST7789)を購入したのですが、Raspberry Pi Pico(Arduino環境 earlephilhower版)で動かすのに少し苦労したので共有します。

↓Amazonのリンク



WINGONEER TFT LCDスクリーンディスプレイ1.3インチTFT LCDモジュール240 x 240 IPS 65Kフルカラー3.3V(SPIインターフェース付き)ST7789 ICドライバ(51 STM32 用)

購入時は¥899でした。AliExpressでは同様の製品がもっと安く売っていますが、日本のAmazonで比較的安く購入できて喜んでいました。
Amazonでは他にも同じものとみられるLCDが800円以下で販売されていますが、上記はAmazon発送となっているので若干安心です。

※2024年8月30日時点、在庫無しになってますね。。。
※2024年9月7日時点、在庫ありです。¥899です。

仕様は240×240 1.3inch、ドライバICはST7789、CS無しです。

CSピンがないので、SPIに複数台の接続ができないのは認識していましたが、ドライバICがST7789ですので、ArduinoのAdafruitライブラリで簡単に動かせると思ったのですが、若干苦労しました。

以下が必要なライブラリになります。詳しいインストール方法などはネットにたくさん情報があるので「ST7789 Arduino」等で検索してください。
Adafruit GFX Library by Adafruit
Adafruit ST7735 and ST7789 Library by Adafruit

【接続】

 LCD   Pico
  GND - GND(38)
  VCC - 3.3V(36)
  SCL - GP18(24)
  SDA - GP19(25)
  RES - GP22(29)
  DC  - GP28(34)
  BLK - 3.3V(36)

【ソース】
LCDに温度を表示します。


/*
  ST7789でCSが無いLCDをRaspberry Pi Picoで動かす

  LCDは以下で購入した
    
    240x240 1.3inch CS無し

  【接続】
 LCD   Pico
  GND - GND(38)
  VCC - 3.3V(36)
  SCL - GP18(24)
  SDA - GP19(25)
  RES - GP22(29)
  DC  - GP28(34)
  BLK - 3.3V(36)
*/

#include "Adafruit_GFX.h" 
#include "Adafruit_ST7789.h"
#include "SPI.h"

#define TFT_CS    -1   // CSを使用しないので-1を指定
#define TFT_RST   22
#define TFT_DC    28

Adafruit_ST7789 tft = Adafruit_ST7789(&SPI, TFT_CS, TFT_DC, TFT_RST);

int number = 0;

void setup() {
  Serial.begin(115200);
  delay(500);

  tft.init(240, 240, SPI_MODE3);  // SPI_MODE3を指定しないと動かなかった
  delay(1000);
  //tft.setRotation(3);

  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  char buf[16];
  tft.setTextWrap(false);
  tft.fillScreen(ST77XX_BLACK);
  tft.setCursor(0, 50);
  tft.setTextColor(ST77XX_WHITE);
  tft.setTextSize(6);

  sprintf(buf, "No.%d", number);
  tft.println(buf);

  double temperature = analogReadTemp();
  sprintf(buf, "%.1f", temperature);
  tft.println(buf);

  digitalWrite(LED_BUILTIN, number % 2);
  number++;

  delay(1000);
}

以下の2行がポイントでした。

#define TFT_CS    -1   // CSを使用しないので-1を指定
tft.init(240, 240, SPI_MODE3);  // SPI_MODE3を指定しないと動かなかった
本格派対局将棋 ぴよ将棋
本格派対局将棋アプリ ぴよ将棋
[Android] [iOS]

かわいい「ひよこ」と対局する将棋アプリ。かわいいけどAIは本格派!
対局後の検討機能や棋譜管理機能も充実!棋譜解析機能も搭載!

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です