stylesheet

2017-08-24

TM1637 7セグ4桁ディスプレイモジュールをテスト

7セグドライバICのTM1637を使用した4桁ディスプレイモジュール。
4桁の数字、真ん中のコロンで時刻表示に最適なもの。

セットアップ

動作確認としてアップダウンボタン付きのカウンターを作成する。

以下を用意。

  • 7セグ4桁ディスプレイモジュール (TM1637)
  • 静電容量式タッチセンサーモジュール (TTP223) x2
  • Arduino Nano

アップボタン用にTTP223のSIGとD9を接続。 ダウンボタン用にもうひとつのTTP223のSIGとD10を接続。 TM1637のDIO、CLKをそれぞれD11、D12へ接続。VCCは5Vから。GNDをショート。

コード

完全版はGitHubから。 DigitalTube librariesを使用。

9999の次は0に戻るように実装。

#include <Arduino.h>
#include <TM1637.h>

const int CLK = 12;
const int DIO = 11;
const int DECR = 10;
const int INCR = 9;
const int OFF = 0x7E;

TM1637 tm1637(CLK,DIO);

int current = 0;
uint8_t DispData[4] = {OFF, OFF, OFF, 0x00};

void display()
{
  int value = current > 9999 ? 9999 : current;
  for (int i=0; i<4; i++) {
    if (value == 0) {
      DispData[3-i] = i == 0 ? 0 : OFF;
    } else {
      DispData[3-i] = value % 10;
      value /= 10;
    }
  }
  tm1637.display(DispData);
}

void setup()
{
  Serial.begin(9600);

  tm1637.init();
  tm1637.set(BRIGHT_TYPICAL);
  display();

  pinMode(INCR, INPUT);
  pinMode(DECR, INPUT);
}

void loop()
{
  int incr = digitalRead(INCR);
  int decr = digitalRead(DECR);
  if (incr != decr) {
    // 0 <= current <= 9999
    current = (incr == HIGH) ?
      (current + 1) % 10000 : (current + 9999) % 10000;
    display();
    delay(100);
  }
  delay(100);
}

結果

ノスタルジックでどこかモダンな雰囲気抜群のモジュールと思う。ビーコン音を追加するとさらにレトロ感がアップ。

暗い場所でもしっかり見えます。