pdf-icon

Arduino Guide

Unit OLED Arduino チュートリアル

1. 準備

2. サンプルプログラム

サンプルの説明
Unit OLED は 1.3 インチの OLED 拡張ディスプレイユニットです。この例では、CoreS3 のメインコントローラーが PORT.A 拡張インターフェースを使用して制御し、テキストのスクロール表示を実現します。別の M5Stack コントローラーを使用する場合は、M5UnitOLED display(2, 1, 400000); インスタンスを作成する際の SDASCL ピンの設定を変更することで適応できます。

#include <M5Unified.h>
#include <M5GFX.h>
#include <M5UnitOLED.h>

M5UnitOLED display(2, 1, 400000);  // SDA, SCL, FREQ

M5Canvas canvas(&display);

static constexpr char text[]    = "Hello world ! Hello Unit OLED ! ";
static constexpr size_t textlen = sizeof(text) / sizeof(text[0]);
int textpos                     = 0;
int scrollstep                  = 2;

void setup(void)
{
    M5.begin();
    M5.Display.setFont(&fonts::lgfxJapanMinchoP_32);
    M5.Display.setTextDatum(middle_center);
    M5.Display.drawString("Unit OLED Test", M5.Display.width() / 2, M5.Display.height() / 2);

    display.init();
    display.setRotation(1);
    canvas.setColorDepth(1);  // モノクロカラー
    canvas.setFont(&fonts::lgfxJapanMinchoP_28);
    canvas.setTextWrap(false);
    canvas.setTextSize(2);
    canvas.createSprite(display.width() + 64, 72);
}

void loop(void)
{
    int32_t cursor_x = canvas.getCursorX() - scrollstep;
    if (cursor_x <= 0) {
        textpos  = 0;
        cursor_x = display.width();
    }

    canvas.setCursor(cursor_x, 0);
    canvas.scroll(-scrollstep, 0);
    while (textpos < textlen && cursor_x <= display.width()) {
        canvas.print(text[textpos++]);
        cursor_x = canvas.getCursorX();
    }
    display.waitDisplay();
    canvas.pushSprite(&display, 0, (display.height() - canvas.height()) >> 1);
}

3. コンパイルとアップロード

    1. ダウンロードモード:異なるデバイスではプログラム書き込み前にダウンロードモードに入る必要があります。この手順は使用するメインコントロールデバイスによって異なる場合があります。詳細については、 Arduino IDE のはじめにガイド を参照し、デバイスごとのダウンロード手順をご確認ください。
  • CoreS3 の場合、リセットボタンを 2 秒ほど長押しして、内部の緑色の LED が点灯したらボタンを離します。これでデバイスはダウンロードモードに入り、プログラム書き込みの準備が整います。

    1. デバイスのポートを選択し、Arduino IDE の左上にあるコンパイル&アップロードボタンをクリックして、プログラムのコンパイルとアップロードを行います。

4. Hello World

CoreS3 の PORT.A を使用して Unit OLED を制御し、テキストのスクロール表示を行います。

On This Page