📢 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> | |||
==== 画像の表示 ==== | ==== 画像の表示 ==== | ||