Arduino UNO (1) 7段4桁LED を表示してみる
参考のURLの通り、試しただけ。
TM1637 用ライブラリをインストール
- ライブラリをダウンロード
http://www.seeedstudio.com/wiki/File:DigitalTube.zip
- ライブラリを Arduino IDE にインストール
Arduino IDE の [スケッチ] → [ライブラリを使用] → [ライブラリをインストール…] からダウンロードしたライブラリ ZIP (DigitalTube.zip) を選択しインストールする。
- \ドキュメント\Arduino\libraries\ 以下にコピーされる
繋がる
ピンアサインは、下表です。
Arduino |
Sensor |
Color |
GND |
GND |
Black |
VCC |
VCC |
Red |
D8 |
DIO |
White |
D7 |
CLK |
Yellow |
スケッチを作成する

#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 );
}
}
動作を確認する
- Arduino IDE にてコンパイル&書き込み
- 7 セグの表示が 0 → 9 とカウントアップし、0 から再カウントアップすることを確認する
参考:
http://qiita.com/warafuuji/items/51b04c6ccfac92803fd3
OSが付いてないので、GUIの実現は難しい。
簡単に文字が表示できるデバイス1602 LCDを使う。
/*
* 1602 LCD Sample
*
* 1602LCD ---- WeMos
* GND ---- GND
* VCC ---- 5V
* VE ---- Variable resistor
* RS ---- D1(GPIO5)
* R/W ---- GND
* Enable ---- D2(GPIO4)
* DB0 ---- N.C
* DB1 ---- N.C
* DB2 ---- N.C
* DB3 ---- N.C
* DB4 ---- D0(GPIO16)
* DB5 ---- D5(GPIO14)
* DB6 ---- D6(GPIO12)
* DB7 ---- D7(GPIO13)
*
*/
#include "SPI.h"
#include <LiquidCrystal.h>
/* LiquidCrystal(rs, enable, d4, d5, d6, d7) */
LiquidCrystal lcd(5, 4, 16, 14, 12, 13);
void setup() {
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
// Print a message to the LCD.
lcd.print("hello, world!");
}
void loop() {
// set the cursor to column 0, line 1
// (note: line 1 is the second row, since counting begins with 0):
lcd.setCursor(0, 1);
// print the number of seconds since reset:
lcd.print(millis() / 1000);
}
これてhello, world!と一秒ことにインクリメント数字が表示される。
3色LEDをつないて、順次点滅する。
#define LEDR 12
#define LEDG 13
#define LEDB 14
void setup()
{
pinMode(LEDR, OUTPUT);
pinMode(LEDG, OUTPUT);
pinMode(LEDB, OUTPUT);
}
void loop()
{
digitalWrite(LEDR, HIGH);
delay(1000);
digitalWrite(LEDG, HIGH);
delay(1000);
digitalWrite(LEDB, HIGH);
delay(1000);
digitalWrite(LEDR, LOW);
delay(1000);
digitalWrite(LEDG, LOW);
delay(1000);
digitalWrite(LEDB, LOW);
delay(1000);
}
Blink
動作確認のため、まずLちか(Blink)をする。
ボードから、WeMosには「D1 Mini & D1 R2」を選択する。
通信ポートは、デバイスマネージャーから見えた、CH340に割り当てた通信ポート(COM3など)も設定して下さい。

MacOSの場合、次のように設定する。

(LEDはGPIO 5 に接続)の場合のスケッチ。

WeMosの内蔵LEDを利用する場合、プリグラムは次のように
#define ESP8266_LED BUILTIN_LED
void setup()
{
pinMode(ESP8266_LED, OUTPUT);
}
void loop()
{
digitalWrite(ESP8266_LED, HIGH);
delay(500);
digitalWrite(ESP8266_LED, LOW);
delay(500);
}
参考
- http://www.esp8266learning.com/
- https://www.baldengineer.com/esp8266-5-reasons-to-use-one.html
ESP8266 IoT Study Kitとは
ESP8266 IoT Study Kitは、(ESP8266 WeMos D1 Mini + OLED + BMP280)の組み合わせで構成されたIoT勉強用キット。

ESP8266 WeMos D1 Mini 、OLED と BMP280はI2Cバスで接続する。
I2Cでは2ポートだけで通信できる。2本のデータ線を使い、一本SDAをデータ通信(双方向)にもう一本SCLをクロックを送るために使う。それぞれのセンサなどを区別するにはアドレスを設定しておき、それをもとに区別する。
ESP8266 IoT Study Kitに含まれるOLED と BMP280の他に、I2C対応のADC利用して、アナログデータの送受信も可能である。
単体での利用
Arduino ベースの開発、センサー、WiFi通信、OLED表示装置内蔵、単体でで温度、気圧計測、表示できる。

クラウド、スマートフォンと連携
さらにクラウドにデータ蓄積、スマートフォンから制御可能である。

Ubiquitous Computing Works