1.9インチ 91セグメント I2C電子ペーパモジュールwww.switch-science.com
ドットマトリックスのe-Paperデバイスと思って買ったら違うらしい。ちょっと失敗。
液晶表示の様にセグメントがある様だ。というかセグメントと書いてるよね。確認不足。
見た目はSwitchBot 温湿度計に近い感じがする。
値段的にはSwitchBot 温湿度計買った方が良さそうな感じ。
SwitchBot 温湿度計www.switchbot.jp
テストを兼ねて温湿度計に仕上げることを目標としよう。
とりあえず使い方を覚える。
製品情報はこちら
Arduinoのサンプルがある。
今回M5Stamp picoを使用する。
ピンは2列あるが点対象になっているだけで片側だけ使えば良さそう。
ピン割はこの様にしよう。
M5Stamp pico | e-Paper |
---|---|
3V3 | VCC |
GND | GND |
G21 | SDA |
G22 | SCL |
G18 | RST |
G19 | BUSY |
サンプルはこちらからダウンロードできる。
https://www.waveshare.com/w/upload/f/f6/E-Paper-Segment-Code.zip
PlatformIOでプロジェクトを作り、サンプルにあるEPD_1in9.cppとEPD_1in9.hファイルをsrcディレクトリにコピーする。
EPD_1in9.hでピン番号定義しているので変更。
#define EPD_BUSY_PIN 19 #define EPD_RST_PIN 18
M5Stampの初期化をちょっと変更してあとはそのままで動作させてみる。
#include <Arduino.h> #include "EPD_1in9.h" #include <M5Unified.h> #define I2C_SDA_PIN 21 #define I2C_SCL_PIN 22 void setup() { auto cfg = M5.config(); M5.begin(cfg); Wire.begin(I2C_SDA_PIN, I2C_SCL_PIN); GPIOInit(); EPD_1in9_init(); EPD_1in9_lut_5S(); EPD_1in9_Write_Screen(DSPNUM_1in9_off); delay(500); EPD_1in9_lut_GC(); EPD_1in9_Write_Screen1(DSPNUM_1in9_on); delay(500); EPD_1in9_Write_Screen(DSPNUM_1in9_off); delay(500); EPD_1in9_lut_DU_WB(); EPD_1in9_Write_Screen(DSPNUM_1in9_W0); delay(500); EPD_1in9_Write_Screen(DSPNUM_1in9_W1); delay(500); EPD_1in9_Write_Screen(DSPNUM_1in9_W2); delay(500); EPD_1in9_Write_Screen(DSPNUM_1in9_W3); delay(500); EPD_1in9_Write_Screen(DSPNUM_1in9_W4); delay(500); EPD_1in9_Write_Screen(DSPNUM_1in9_W5); delay(500); EPD_1in9_Write_Screen(DSPNUM_1in9_W6); delay(500); EPD_1in9_Write_Screen(DSPNUM_1in9_W7); delay(500); EPD_1in9_Write_Screen(DSPNUM_1in9_W8); delay(500); EPD_1in9_Write_Screen(DSPNUM_1in9_W9); delay(500); EPD_1in9_Write_Screen(DSPNUM_1in9_WB); delay(500); EPD_1in9_sleep(); Serial.end(); Wire.end(); } void loop() { // put your main code here, to run repeatedly: }
初期化時は真っ黒になる様だ。
全デジットが1から9まで順に表示したら全部のセグメントを点灯して終わる様だ。
e-Paperなので電源を切っても表示はそのまま。素晴らしい。
M5Stamp picoで1.9inch Segment e-Paper Moduleのサンプルプログラムを試して見る · GitHub