📢 Webサイト閉鎖と移転のお知らせ
このWebサイトは2026年9月に閉鎖いたします。
新しい記事は移転先で追加しております。(旧サイトでは記事を追加しておりません)

ページの作成:「== 概要 == ArduinoでOLEDディスプレイを制御するには、まず、適切な通信方式を選択することから始める。<br> * I2C通信 *: 最も一般的な通信方式である。 *: I2C通信では、配線がVCC、GND、SDA (データ)、SCL (クロック) の4本だけで済むため、配線ミスが少なく扱いやすいというメリットがある。 *: ArduinoでI2C通信を行う場合、SDAはA4ピン、SCLはA5ピンに接続する…」
 
154行目: 154行目:
<br>
<br>
==== 描画の作成 ====
==== 描画の作成 ====
<syntaxhighlight lang="c++">
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
Adafruit_SSD1306 disp(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);  // I2Cに接続されたSSD1306ディスプレイオブジェクトの作成
void setup()
{
    Serial.begin(9600);
    // 128x64解像度の特定のI2Cアドレス (0x3C) でOLEDディスプレイを開始
    if (!disp.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
      Serial.println(F(「SSD1306 allocation failed」));  // 初期化に失敗した場合はエラーメッセージを表示
      while (true);                                    // それ以降の実行を停止するために無限ループ
    }
    delay(2000);  // 初期化するまで待機
    disp.setCursor(0, 0);
}
void loop()
{
    // 四角形を描画
    disp.clearDisplay();
    disp.drawRect(0, 15, 60, 40, WHITE);
    disp.display();  // データの表示
    delay(2000);    // データが表示されるまで待機
    // 四角形を描画 (塗りつぶし)
    disp.clearDisplay();
    disp.fillRect(0, 15, 60, 40, WHITE);
    disp.display();  // データの表示
    delay(2000);    // データが表示されるまで待機
    // 楕円を描画
    disp.clearDisplay();
    disp.drawRoundRect(0, 15, 60, 40, 8, WHITE);
    disp.display();  // データの表示
    delay(2000);    // データが表示されるまで待機
    // 楕円を描画 (塗りつぶし)
    disp.clearDisplay();
    disp.fillRoundRect(0, 15, 60, 40, 8, WHITE);
    disp.display();  // データの表示
    delay(2000);    // データが表示されるまで待機
    // 円を描画
    disp.clearDisplay();
    disp.drawCircle(20, 35, 20, WHITE);
    disp.display();  // データの表示
    delay(2000);    // データが表示されるまで待機
    // 円を描画 (塗りつぶし)
    disp.clearDisplay();
    disp.fillCircle(20, 35, 20, WHITE);
    disp.display();  // データの表示
    delay(2000);    // データが表示されるまで待機
    // 三角形を描画
    disp.clearDisplay();
    disp.drawTriangle(30, 15, 0, 60, 60, 60, WHITE);
    disp.display();  // データの表示
    delay(2000);    // データが表示されるまで待機
    // 三角形を描画 (塗りつぶし)
    disp.clearDisplay();
    disp.fillTriangle(30, 15, 0, 60, 60, 60, WHITE);
    disp.display();  // データの表示
    delay(2000);    // データが表示されるまで待機
}
</syntaxhighlight>
<br>


<br>
==== 画像の表示 ====
==== 画像の表示 ====