Arduino UNOで1.17インチTFT LCDに画像を表示する方法
必要な部品と用品
| 部品 | 数量 | 備考 |
|---|---|---|
| Arduino UNO | 1 | |
| 1.17インチLCD/TFTスクリーン | 1 | |
| SDカード | 1 |
使用アプリとオンラインサービス
- Arduino IDE
このプロジェクトについて
この記事では、ArduinoでTFTスクリーンに画像を表示する方法を紹介します!
以下のチュートリアルを読むか、YouTube動画をご覧ください。
配線図
- 5V (LCD)
- 5V Arduino MISO (LCD)
- Pin 12 Arduino SCK (LCD)
- Pin 13 Arduino MOSI (LCD)
- Pin 11 Arduino LCD CS (LCD)
- Pin 4 Arduino SD CS (LCD)
- Pin 9 Arduino D/C (LCD)
- Pin 8 Arduino RESET (LCD)
- Pin 8 Arduino BL (LCD)
- 5V Arduino GND (LCD)
- GND Arduino
SDカードの画像
以下の点に注意してください:
- 画像は.bmpファイルであること
- 画像サイズは160 x 128ピクセルを超えないこと
- ファイル名はarduino.bmpで、SDカードのルートディレクトリに配置すること
- SDカードを装着する際、ArduinoとTFTスクリーンは電源オフ状態にすること

Arduinoコード
以下のArduinoコードをコピーしてアップロードしてください。
実行結果
Arduinoプログラムのシリアルモニタを開くと、.bmp画像がTFTスクリーンに表示されます。または動画で結果をご確認ください。

コード
Arduino UNOでTFTスクリーンに画像を表示するスケッチ
// CreaTechWeb: ArduinoでTFTスクリーンに画像を表示 // https://createchweb.com/displaying-an-image-on-a-tft-screen-with-arduino/ #include#include #include // Arduino LCDライブラリ // Uno用ピン定義 #define sd_cs 4 #define lcd_cs 10 #define dc 9 #define rst 8 // Leonardo用ピン定義(コメントアウト) //#define sd_cs 8 //#define lcd_cs 7 //#define dc 0 //#define rst 1 TFT TFTscreen = TFT(lcd_cs, dc, rst); PImage logo; // 画面に描画する画像を表す変数 void setup() { // GLCDを初期化し、シリアルモニタを開くようメッセージ表示 TFTscreen.begin(); TFTscreen.background(255, 255, 255); TFTscreen.stroke(0, 0, 255); TFTscreen.println(); TFTscreen.println(F("Arduino TFT Bitmap Example")); TFTscreen.stroke(0, 0, 0); TFTscreen.println(F("Open serial monitor")); TFTscreen.println(F("to run the sketch")); // シリアルポート初期化:診断情報の出力用 Serial.begin(9600); while (!Serial) { // シリアルポート接続待ち(ネイティブUSBポートのみ必要) } // 開始前のGLCD画面クリア TFTscreen.background(255, 255, 255); // SDカードアクセスを試行。失敗時(カード未挿入等)はセットアップ停止 Serial.print(F("Initializing SD card...")); if (!SD.begin(sd_cs)) { Serial.println(F("failed!")); return; } Serial.println(F("OK!")); // GLCD画面を初期化してクリア TFTscreen.begin(); TFTscreen.background(255, 255, 255); // SDカードにアクセスできるようになったので、画像ファイルを読み込み logo = TFTscreen.loadImage("arduino.bmp"); if (!logo.isValid()) { Serial.println(F("error while loading arduino.bmp")); } } void loop() { // 画像が正しく読み込まれなかった場合は何もしない if (logo.isValid() == false) { return; } Serial.println(F("drawing image")); // 画像を描画するランダムな位置を取得 // 画像が画面外に描画されないよう、画像サイズを考慮 int x = random(TFTscreen.width() - logo.width()); int y = random(TFTscreen.height() - logo.height()); // 画像を画面に描画 TFTscreen.image(logo, x, y); // 次の描画まで少し待機 delay(1500); }
製造プロセス
- Arduino Nano 33 IoT製 フライトシミュレーター2020用コックピットパネル - LCD&CDI表示
- Arduino で作るイスラム教礼拝時刻付きリアルタイムクロック
- Arduino 2.4インチTFT LCDシールドでSDカードからBMP画像を表示する
- Arduino UNOとATtiny85で作る携帯型POV(残像)ディスプレイ
- Arduino Unoで8×8 LEDマトリックスを制御:ステップバイステップガイド
- Arduino Unoと1Sheeldで作る4x4x4 LEDキューブ – インタラクティブLEDプロジェクト
- Arduino GPS+TFTタッチシールドで作るリアルタイム位置表示デバイス
- Arduino UnoとBluetoothでラジコンカーを遠隔操作:ステップバイステップガイド
- DHT センサで作る信頼性の高い Arduino 気象ステーション
- DS1302 RTCとArduino UNOで作る信頼性の高い目覚まし時計
- Arduino Unoで25kHz 4ピンPWMファンを制御 – 製作・コード・テスト