準備
適宜、ご自身の環境に読み替えてくださいませ。
- 環境
- HW
- Windows PC (Windows 7 Pro 64bit)
- Arduino Uno
- Grove ベースシールド V2 SLD01099P
- Grove 7 セグメント 4 桁ディスプレイ LED052911P
- SW
- Arduino IDE 1.6.1
EX1:数字0~9をカウントアップ表示する
まずライブラリの使用方法習得のために、単にカウントアップする表示器を作ってみる。
1. TM1637 用ライブラリをインストール
- ライブラリをダウンロード
http://www.seeedstudio.com/wiki/File:DigitalTube.zip - ライブラリを Arduino IDE にインストール
Arduino IDE の [スケッチ] → [ライブラリを使用] → [ライブラリをインストール…] からダウンロードしたライブラリ ZIP (DigitalTube.zip) を選択しインストールする。
- \ドキュメント\Arduino\libraries\ 以下にコピーされる
2. 7セグディスプレイをベースシールドのD7端子に接続する
ピンアサインは、下表です。
Arduino | Sensor | Color |
---|---|---|
GND | GND | Black |
VCC | VCC | Red |
D8 | DIO | White |
D7 | CLK | Yellow |
3. スケッチを作成する
各桁が 0 から 9 まで約 1 秒毎にカウントアップし 0 に戻って繰り返します。
Grove_7_Seg_Display_ex1.ino
#include "TM1637.h"
#define NANA_SEG_CLK 7
#define NANA_SEG_DIO 8
TM1637 tm1637( NANA_SEG_CLK, NANA_SEG_DIO );
void setup() {
tm1637.init();
tm1637.set( BRIGHT_DARKEST );
}
void loop() {
int8_t NumTab[] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };
int8_t ListDisp[4];
unsigned char count = 0;
delay( 150 );
while( 1 ) {
count ++;
if( count == sizeof(NumTab) ) count = 0;
for( unsigned char BitSelect = 0; BitSelect < 4; BitSelect ++ ) ListDisp[BitSelect] = NumTab[count];
tm1637.display( ListDisp );
delay( 850 );
}
}
4. 動作を確認する
- Arduino IDE にてコンパイル&書き込み
- 7 セグの表示が 0 → 9 とカウントアップし、0 から再カウントアップすることを確認する
5. 感想
- LCD の勢力が強い昨今、7 セグのレトロ感に魅惑される。14セグ, 16セグへの興味が高まる。
- ライブラリの使い方を TM1637.h を見て簡単に理解しておくと作業が捗る。ライブラリ万歳。
- delay を使って簡単に約 1 秒毎としているが、ちゃんとした精度を求めるならそれなりの実装を。
6. リファレンス
- https://www.switch-science.com/catalog/1175/
- http://www.seeedstudio.com/wiki/Grove_-_4-Digit_Display