Arduino UNO (2) TM1637 7段4桁LED

Arduino UNO (1) 7段4桁LED を表示してみる

参考のURLの通り、試しただけ。

TM1637 用ライブラリをインストール

  1. ライブラリをダウンロード
    http://www.seeedstudio.com/wiki/File:DigitalTube.zip
  2. ライブラリを 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 );
  }
}

 

動作を確認する

  1. Arduino IDE にてコンパイル&書き込み
  2. 7 セグの表示が 0 → 9 とカウントアップし、0 から再カウントアップすることを確認する

参考:

http://qiita.com/warafuuji/items/51b04c6ccfac92803fd3

WeMos (3) 1602 LCD 表示

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!と一秒ことにインクリメント数字が表示される。

WeMos (2) 3色LED表示

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);
}

 

WeMos (1) Blink

Blink

動作確認のため、まずLちか(Blink)をする。

ボードから、WeMosには「D1 Mini & D1 R2」を選択する。

通信ポートは、デバイスマネージャーから見えた、CH340に割り当てた通信ポート(COM3など)も設定して下さい。

「wemos windows config」の画像検索結果

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

スクリーンショット 2016-12-06 21.48.39.png

(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);
}

参考

  1. http://www.esp8266learning.com/
  2. https://www.baldengineer.com/esp8266-5-reasons-to-use-one.html

About ESP8266 IoT Study Kit

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表示装置内蔵、単体でで温度、気圧計測、表示できる。

クラウド、スマートフォンと連携

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