Akizuki 32x16 dot LED Matrix unit (K-03735) control library.
秋月電子の32×16ドットLEDマトリクス表示装置(K-03735)を制御するライブラリです。
バッファの内容をそのままLEDマトリクス装置に送ります。
LEDマトリクス表示装置は最大4台まで接続できるので、接続台数を必ず指定してください。(この台数でバッファのサイズを計算しています。)
行間表示は1msのdelayを入れています。パラメタで変更可能です。
このライブラリの呼び出し元は基本的にwhile()でループしてください。
初めてのライブラリなのでメンバ関数もドキュメントとかまだ最低限です。
おかしなところはぜひコメントをください。
表示例は以下ページをご覧ください。
akiledmatrix.h@2:ddef08e13c8e, 2013-06-03 (annotated)
- Committer:
- kanpapa
- Date:
- Mon Jun 03 15:45:48 2013 +0000
- Revision:
- 2:ddef08e13c8e
- Parent:
- 1:2705be49d5e2
- Child:
- 4:920c540c6a61
bug fix. 2 LED unit.
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
kanpapa | 0:bf351a2fa565 | 1 | #ifndef MBED_AKILEDMATRIX_H |
kanpapa | 0:bf351a2fa565 | 2 | #define MBED_AKILEDMATRIX_H |
kanpapa | 0:bf351a2fa565 | 3 | |
kanpapa | 0:bf351a2fa565 | 4 | #include "mbed.h" |
kanpapa | 0:bf351a2fa565 | 5 | |
kanpapa | 0:bf351a2fa565 | 6 | /** AkiLedMatrix class. |
kanpapa | 0:bf351a2fa565 | 7 | * Used for AKIZUKI MATRIX LED unit. |
kanpapa | 0:bf351a2fa565 | 8 | * |
kanpapa | 0:bf351a2fa565 | 9 | * Example: |
kanpapa | 0:bf351a2fa565 | 10 | * @code |
kanpapa | 0:bf351a2fa565 | 11 | * #include "mbed.h" |
kanpapa | 0:bf351a2fa565 | 12 | * #include "akiledmatrix.h" |
kanpapa | 0:bf351a2fa565 | 13 | * |
kanpapa | 1:2705be49d5e2 | 14 | * // LEDMatrix mbed |
kanpapa | 1:2705be49d5e2 | 15 | * // ---------- -------- |
kanpapa | 1:2705be49d5e2 | 16 | * // 1 LED_PWR |
kanpapa | 1:2705be49d5e2 | 17 | * // 2 SIN_1 ----- p5 line |
kanpapa | 1:2705be49d5e2 | 18 | * // 3 SIN_2 ----- p6 LED1 row |
kanpapa | 1:2705be49d5e2 | 19 | * // 4 SIN_3 ----- p7 LED2 row |
kanpapa | 1:2705be49d5e2 | 20 | * // 5 CLOCK ----- p8 |
kanpapa | 1:2705be49d5e2 | 21 | * // 6 LATCH ----- p9 |
kanpapa | 1:2705be49d5e2 | 22 | * // 7 STROBE ---- p10 |
kanpapa | 1:2705be49d5e2 | 23 | * // 8 IC_PWR |
kanpapa | 1:2705be49d5e2 | 24 | * // 9 GND |
kanpapa | 1:2705be49d5e2 | 25 | * // 10 GND |
kanpapa | 1:2705be49d5e2 | 26 | * |
kanpapa | 1:2705be49d5e2 | 27 | * AkiLedMatrix ledmatrix(p5, p6, p7, p8, p9, p10, 1); |
kanpapa | 0:bf351a2fa565 | 28 | * |
kanpapa | 0:bf351a2fa565 | 29 | * int main() { |
kanpapa | 1:2705be49d5e2 | 30 | * const unsigned char buf[] = { |
kanpapa | 1:2705be49d5e2 | 31 | * 0xff,0xff,0xff,0xff, // D15 |
kanpapa | 1:2705be49d5e2 | 32 | * 0xff,0xff,0xff,0xff, // D14 |
kanpapa | 1:2705be49d5e2 | 33 | * 0xff,0xff,0xff,0xff, // D13 |
kanpapa | 1:2705be49d5e2 | 34 | * 0xff,0xe7,0xff,0xfc, // D12 |
kanpapa | 1:2705be49d5e2 | 35 | * 0xff,0xe7,0xff,0xfc, // D11 |
kanpapa | 1:2705be49d5e2 | 36 | * 0xff,0xe7,0xff,0xfc, // D10 |
kanpapa | 1:2705be49d5e2 | 37 | * 0x44,0x60,0xe0,0xe0, // D9 |
kanpapa | 1:2705be49d5e2 | 38 | * 0x00,0x20,0x40,0x40, // D8 |
kanpapa | 1:2705be49d5e2 | 39 | * 0x33,0x26,0x4e,0x4c, // D7 |
kanpapa | 1:2705be49d5e2 | 40 | * 0x33,0x26,0x40,0x4c, // D6 |
kanpapa | 1:2705be49d5e2 | 41 | * 0x33,0x26,0x4f,0xcc, // D5 |
kanpapa | 1:2705be49d5e2 | 42 | * 0x33,0x20,0x60,0xc0, // D4 |
kanpapa | 1:2705be49d5e2 | 43 | * 0x33,0x28,0xf1,0xe4, // D3 |
kanpapa | 1:2705be49d5e2 | 44 | * 0xff,0xff,0xff,0xff, // D2 |
kanpapa | 1:2705be49d5e2 | 45 | * 0xff,0xff,0xff,0xff, // D1 |
kanpapa | 1:2705be49d5e2 | 46 | * 0xff,0xff,0xff,0xff}; // D0 |
kanpapa | 1:2705be49d5e2 | 47 | * |
kanpapa | 1:2705be49d5e2 | 48 | * int delay = 1000; // dynamic time (us) |
kanpapa | 1:2705be49d5e2 | 49 | * |
kanpapa | 1:2705be49d5e2 | 50 | * while(1){ |
kanpapa | 1:2705be49d5e2 | 51 | * ledmatrix.display(buf, delay); |
kanpapa | 1:2705be49d5e2 | 52 | * } |
kanpapa | 0:bf351a2fa565 | 53 | * } |
kanpapa | 0:bf351a2fa565 | 54 | * @endcode |
kanpapa | 0:bf351a2fa565 | 55 | */ |
kanpapa | 0:bf351a2fa565 | 56 | class AkiLedMatrix { |
kanpapa | 0:bf351a2fa565 | 57 | public: |
kanpapa | 1:2705be49d5e2 | 58 | /** Create AkiLedMatrix instance |
kanpapa | 1:2705be49d5e2 | 59 | * @param sin1 SIN_1 |
kanpapa | 1:2705be49d5e2 | 60 | * @param sin2 SIN_2 |
kanpapa | 1:2705be49d5e2 | 61 | * @param sin3 SIN_3 |
kanpapa | 1:2705be49d5e2 | 62 | * @param clock CLOCK IN |
kanpapa | 1:2705be49d5e2 | 63 | * @param latch LATCH IN |
kanpapa | 1:2705be49d5e2 | 64 | * @param strobe STROBE IN |
kanpapa | 1:2705be49d5e2 | 65 | * @param maxledunit The number of LED units. |
kanpapa | 1:2705be49d5e2 | 66 | */ |
kanpapa | 0:bf351a2fa565 | 67 | AkiLedMatrix(PinName sin1, |
kanpapa | 0:bf351a2fa565 | 68 | PinName sin2, |
kanpapa | 0:bf351a2fa565 | 69 | PinName sin3, |
kanpapa | 0:bf351a2fa565 | 70 | PinName clock, |
kanpapa | 0:bf351a2fa565 | 71 | PinName latch, |
kanpapa | 1:2705be49d5e2 | 72 | PinName strobe, |
kanpapa | 2:ddef08e13c8e | 73 | int maxledunit); |
kanpapa | 0:bf351a2fa565 | 74 | |
kanpapa | 1:2705be49d5e2 | 75 | /** Displays the contents of the buffer |
kanpapa | 1:2705be49d5e2 | 76 | * |
kanpapa | 1:2705be49d5e2 | 77 | * @param buffer Display buffer |
kanpapa | 1:2705be49d5e2 | 78 | * @param delay Dynamic display delay in microseconds |
kanpapa | 1:2705be49d5e2 | 79 | * @returns |
kanpapa | 1:2705be49d5e2 | 80 | * void |
kanpapa | 1:2705be49d5e2 | 81 | */ |
kanpapa | 2:ddef08e13c8e | 82 | void display(const unsigned char *buffer, int delay = 1000); |
kanpapa | 0:bf351a2fa565 | 83 | |
kanpapa | 0:bf351a2fa565 | 84 | private: |
kanpapa | 0:bf351a2fa565 | 85 | DigitalOut _sin1,_sin2,_sin3,_clock,_latch,_strobe; |
kanpapa | 2:ddef08e13c8e | 86 | int _maxledunit; |
kanpapa | 0:bf351a2fa565 | 87 | }; |
kanpapa | 0:bf351a2fa565 | 88 | |
kanpapa | 0:bf351a2fa565 | 89 | #endif |