2013年5月26日日曜日

JY-LKM1638の使い方 arduino メモ

JY-LKM1638をarduinoで動かしたのでメモ。
TM1638 という名前の方が有名かな?

動かすためのライブラリ
tm1638-library - A library for connecting a TM1638/TM1640 to arduino
があるので丸ごと使う。

add library で上記サイトで配布されているZIPを指定して取り込む。
arduinoの旧バージョン(α時代)では取り込みできなかった。

取り込みができるとサンプルが出せるのでワンモジュールのものを利用。
書き込めば一発で文字が出せる。
ライブラリリファレンスは非常にわかりやすい。例が豊富
Reference · rjbatista/tm1638-library Wiki · GitHub


回路接続は
 LKM1638:arduino
---------------------------
VCC : +5V
GND : GND
CLK
DIO
STB
のみ。思ったより少ない。

ボタンの取得。LEDの点灯共に容易。関数1発。
LEDは赤と緑の点灯が選べる。

動作させると発熱がある。
7seg点灯部が発熱。
消費電流が大きいのでモバイル動作は現実的ではない。

[追記 2014/2/22]
明るさ変更できた。
module.setupDisplay(true, 0);
0で最暗 7で最明

[追記 2018/3/11]
// TM1638 の動作サンプルコード
// よく使う機能を色々実装している。
//アナログ端子を通信端子に利用しているのがライブラリコードと違う
#include <tm1638.h>

// define a module on data pin A1, clock pin A2 and strobe pin A3
//アナログ端子に接続している
TM1638 module(A1, A2, A3);

void setup() {
    // 明るさを最暗に。
    module.setupDisplay(true, 0);
    //"START"の文字列を表示
    module.setDisplayToString("START");
}

void loop() {
  byte keys = module.getButtons();            //ボタンの取得

    //最も左のボタンが押されたら
    if (keys == 0b00000001) {
        //画面をクリア
        module.clearDisplay();
        //LEDを一個ずつ消すにはこれ
        //module.setLED(TM1638_COLOR_NONE, 0);
        //module.setLED(TM1638_COLOR_NONE, 1);

        // LEDを一気に消すにはこれ
        module.setLEDs(0x0000);
    }
    //左から2番目のボタンが押されたら
    if (keys == 0b00000010) {
        module.clearDisplay();
        module.setDisplayToString("GOGO");    // "GOGO"を表示
    }
    if (keys == 0b00000100) {
        module.clearDisplay();
        //740の数値を表示。0:小数点無し。false:0埋め無し
        module.setDisplayToDecNumber(740,0,false);
    }
    if (keys == 0b00001000) {
        //最も左のLEDを赤色点灯。GREENなのになぜか赤になる
        module.setLED(TM1638_COLOR_GREEN, 0);
    }
    if (keys == 0b00010000) {
        //左から2番目のLEDを緑点灯。なぜか緑になる
        module.setLED(TM1638_COLOR_RED, 1);
    }
}

もっと気軽で小さい7segドライバ基板って無いものかなあ・・

.

0 件のコメント:

コメントを投稿