メインコンテンツまでスキップ

XIAO ePaper Display Board - EN04 入門ガイド

XIAO ePaper Display Board EN04

はじめに

XIAO nRF52840 Plus を搭載したディスプレイボード EN04 は、24 ピンおよび 50 ピンの両方の ePaper ディスプレイをサポートします。JST 2.0 mm バッテリーコネクタ(電源スイッチ付き)、内蔵充電 IC、NFC 機能を備え、1 つのリセットボタンと 3 つのユーザーボタンが付属しています。デジタルサイネージ、電子ラベル、携帯型情報ボードなど、低消費電力の ePaper プロジェクトに最適です。

特長

  • XIAO nRF52840 Plus 搭載: 対応する ePaper ディスプレイに接続するだけですぐに動作します。
  • 多用途なディスプレイ対応: 幅広い ePaper スクリーンに対応し、24 ピンおよび 50 ピンインターフェースの両方をサポート、ジャンパキャップで簡単に切り替え可能です。
  • スイッチ付き BAT コネクタ: シンプルなバッテリー接続を提供し、スイッチを統合することで効率的な電源管理と省エネを実現します。
  • 使いやすいボタン: 1 個のリセットボタンと 3 個のユーザープログラマブルボタンを備え、プロジェクトの開発を加速し、柔軟なカスタマイズ機能を提供します。

仕様

パラメータ説明
プロセッサXIAO nRF52840 Plus
ePaper コネクタFPC 24 Pin 0.5mm
FPC 50 Pin 0.5mm
バッテリーコネクタJST 2.0mm
スイッチバッテリー電源 ON/OFF
電源- 3.7V リチウムバッテリー
- USB Type-C
ボタン- 1x リセットボタン
- 3x ユーザーボタン

ePaper ボード選定ガイド

製品ePaper Display Board EN04ePaper BreakoutePaper Driver Board
プロセッサXIAO nRF52840 PlusXIAO シリーズXIAO シリーズ
対応 ePaper ディスプレイ24 Pin ePaper
50 Pin ePaper
24 Pin ePaper24 Pin ePaper
ePaper コネクタFPC 24 Pin, 0.5mm
FPC 50 Pin, 0.5mm
FPC 24 Pin 0.5mmFPC 24 Pin 0.5mm
バッテリーコネクタJST 2.0mm/JST 2.0mm
スイッチバッテリー電源 ON/OFF/バッテリー電源 ON/OFF
ボタン1x リセットボタン
3x ユーザーボタン
//
拡張 IO ポート/他のコントローラとの接続追加センサーとの接続

応用例

  • スマートホームダッシュボード: 天気情報、カレンダーイベント、各種スマートホームデバイスからの通知など、リアルタイム情報を表示します。
  • エネルギーモニタリング: スマートメーターからの電力消費データを表示し、家庭でのエネルギー使用状況をより効率的に把握・管理できるようにします。
  • セキュリティアラート: 動体検知やドア/窓センサーの作動など、セキュリティイベントに関するアラートや通知を表示します。
  • スマートサーモスタットディスプレイ: 温度や湿度レベル、スマートサーモスタットの制御設定を表示します。
  • デジタルフォトフレーム: スマートホームネットワーク上の画像を表示できる、WiFi 対応デジタルフォトフレームを作成します。

ハードウェア概要

対応 ePaper

24 ピンコネクタ

ヒント

XIAO ePaper Display Board を使用する際は、ePaper ディスプレイの種類に応じてジャンパを必ず設定してください。

  • 24 Pin ePaper ディスプレイの場合 → ジャンパを 24 Pin に設定します

⚠️ ジャンパ設定が誤っていると、ePaper が表示されなかったり、異常な内容が表示されたりする可能性があります。電源を入れる前に、必ずジャンパ位置を再確認してください。

50 ピンコネクタ

ヒント

XIAO ePaper Display Board を使用する際は、ePaper ディスプレイの種類に応じてジャンパを必ず設定してください。

  • 50 Pin ePaper ディスプレイの場合 → ジャンパを 50 Pin に設定します

⚠️ ジャンパ設定が誤っていると、ePaper が表示されなかったり、異常な内容が表示されたりする可能性があります。電源を入れる前に、必ずジャンパ位置を再確認してください。

ソフトウェア概要

Seeed GFX ライブラリのインストール

ヒント

このライブラリは TFT ライブラリと同等の機能を持ちますが、互換性はありません。TFT ライブラリや類似のディスプレイライブラリをインストールしている場合は、先にアンインストールしてください。

GitHub から Seeed GFX ライブラリをダウンロードしてインストールします。

スクロールダウンして、このリンクを開きます。

デバイスタイプを選択すると、いくつかのコードが生成されます。そのコードをコピーしておき、後で使用します。

ヒント

誤った選択をすると、画面には何も表示されません。

そのため、ご使用のデバイスやコンポーネントの種類を必ず確認してください。

ライブラリをダウンロードしたら、Sketch -> Include Library -> Add .ZIP Library を開き、ダウンロードしたライブラリを選択します。

基本的なサンプルが 4 つあります。好みの基本サンプルを 1 つ開きます。

  1. Bitmap: ビットマップ画像を表示します。
  2. Clock: アナログ時計を表示します。
  3. Clock_digital: デジタル時計を表示します。
  4. Shape: さまざまなサイズの文字や図形を表示します。

セットアップ開始

ここでは例として 7.5 インチディスプレイを使用します。手順はすべての 24 ピン画面で同じで、違いはドライバ内で適切な画面サイズを選択する点だけです。

新しい "driver.h" ファイルを作成し、そこに先ほどのコードを貼り付けます。コードは次のようになります。

#define BOARD_SCREEN_COMBO 502 // 7.5 inch monochrome ePaper Screen (UC8179)
#define USE_XIAO_EPAPER_DISPLAY_BOARD_EN04

その後、Tools -> Board -> XIAO ESP32S3 および Tools -> Port -> Select the port your board is connected to を選択します。次に Upload をクリックしてコードを書き込みます。

これで、epaper 画面にフィードバックが表示されます!以下は Helloworld サンプルの結果です。(何も表示されない場合は、リセットボタンを押してください)

ヒント

⚠️ 注意: ePaper ケーブルの向き ePaper ディスプレイを XIAO ePaper Display Board に接続する際は、FPC ケーブルが正しい向きで挿入されていることを確認してください。

⚠️ コネクタを逆向きにしないでください!ケーブルを上下逆に挿すと、ePaper が表示されなくなったり、画面やボードを破損するおそれがあります。 下図は正しい接続例です:

XIAO ePaper Display Board(nRF52840) - EN04 のユーザーボタン

EN04 には、さまざまな制御用途に使用できるユーザー設定可能なボタンが 3 つ搭載されています。このセクションでは、Arduino を使用してボタンの状態を読み取り、ボタン押下に応答する方法を説明します。

EN04 では、3 つのボタンは XIAO nRF52840 Plus に接続されています:

KEY1KEY2KEY3
GPIO2_D1/A1GPIO3_D2/A2GPIO5_D4/A4

すべてのボタンはアクティブ Low であり、押されているときは LOW、離されているときは HIGH を読み取ります。

基本的なボタン読み取りの例

この例では、ボタン押下を検出し、シリアルモニタにメッセージを出力する方法を示します。


// Define button pin (GPIO2 corresponds to Arduino digital pin 2)
const int KEY_PIN = 2;

void setup() {
// Initialize serial port (baud rate 9600, nRF52840 compatible with default Serial)
Serial.begin(9600);
// Wait for serial port initialization to complete (for nRF52840 Bluetooth module serial buffer)
while (!Serial) delay(10);

// Configure button pin as input mode with internal pull-up resistor enabled
// Pin is HIGH when not pressed, LOW when pressed
pinMode(KEY_PIN, INPUT_PULLUP);

Serial.println("nRF52840 Button Detection Program Started");
Serial.println("Press the button connected to GPIO2 to see output...");
}

void loop() {
// Read button state (INPUT_PULLUP mode: LOW = pressed, HIGH = not pressed)
int keyState = digitalRead(KEY_PIN);

// Detect if button is pressed (low level)
if (keyState == LOW) {
// 50ms delay for debounce handling (avoids false triggers from mechanical button bounce)
delay(50);
// Read state again to confirm (ensure stable press)
if (digitalRead(KEY_PIN) == LOW) {
// Print specified content via serial port
Serial.println("Hello. This is key1");

// Wait for button release (prevent repeated printing during long press)
while (digitalRead(KEY_PIN) == LOW) {
delay(10); // Short delay to reduce CPU usage
}
}
}

// Short delay in main loop for performance optimization
delay(10);
}

XIAO ePaper Display Board(nRF52840) - EN04 のバッテリー

バッテリー駆動時:

  • デバイスはリフレッシュの合間に自動的に低消費電力モードに入ります

  • バッテリー寿命はリフレッシュ頻度に依存します(デフォルト設定でフル充電時は通常 3 か月)

  • バッテリー残量が 20% 未満になると、デバイスは右上隅にバッテリー残量低下アイコンを表示します

ヒント

自分でコードを書いてバッテリー電圧を読み取りたい場合は、analogRead() 関数の前に 10ms のディレイを追加すると、より正確になります。

#define VOLTAGE_PIN A0 //GPIO1
#define ADC_ENABLE_PIN A5 //GPIO6

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

pinMode(VOLTAGE_PIN, INPUT);
pinMode(ADC_ENABLE_PIN, OUTPUT);
digitalWrite(ADC_ENABLE_PIN , HIGH);
}


void loop() {
analogReadResolution(12);
int adcValue = analogRead(VOLTAGE_PIN);
float voltage = (adcValue / 4096.0) *7.16;
Serial.print("ADC Value: ");
Serial.print(adcValue);
Serial.print(" Voltage: ");
Serial.print(voltage, 3);
Serial.println(" V");
delay(10);
}

リソース

技術サポート & 製品ディスカッション

弊社製品をお選びいただきありがとうございます。弊社は、製品をできるだけスムーズにご利用いただけるよう、さまざまなサポートを提供しています。お好みやニーズに応じて選べる複数のコミュニケーションチャネルをご用意しています。

Loading Comments...