このプログラムはEightDotMatrixLedライブラリのサンプルプログラムです。 このサンプルプログラムは8個のLEDを4組点滅制御しています。 This program is a sample program EightDotMatrixLed library. This sample program to control the LED blinks four sets of eight. 動画回路での点灯制御の説明 1番上の赤色LED(com0):点灯・消灯を1秒かけてスムーズに行います 2番目の緑色LED(com1):点灯はスムーズ。消灯は直ぐに行います。 3番目の赤色LED(com2):点灯・消灯は1番目と同じ。輝度の上限を右から左に段階的に大きくしています。 4番目の赤色LED(com3):輝度データ(gray data)を直接制御しています。 =動画 video = {{http://www.youtube.com/watch?v=aRjSfpSjA30}} =回路図 schematic = {{/media/uploads/suupen/111204exampleschematic.jpg}}
Dependencies: mbed EightDotMatrixLed
main.cpp@0:d30f8a141be9, 2011-12-03 (annotated)
- Committer:
- suupen
- Date:
- Sat Dec 03 23:31:01 2011 +0000
- Revision:
- 0:d30f8a141be9
V1.01 2011 12/04 comment fix
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
suupen | 0:d30f8a141be9 | 1 | //============================================ |
suupen | 0:d30f8a141be9 | 2 | // eightDotMatrixLed Library Example |
suupen | 0:d30f8a141be9 | 3 | // |
suupen | 0:d30f8a141be9 | 4 | // This program is used to control the LED 32. |
suupen | 0:d30f8a141be9 | 5 | // |
suupen | 0:d30f8a141be9 | 6 | // |
suupen | 0:d30f8a141be9 | 7 | // <schematic> |
suupen | 0:d30f8a141be9 | 8 | // --|>|-- |
suupen | 0:d30f8a141be9 | 9 | // A K |
suupen | 0:d30f8a141be9 | 10 | // seg A(p5) -----R(200[ohm])--- LED ----- com0(p13) |
suupen | 0:d30f8a141be9 | 11 | // | |
suupen | 0:d30f8a141be9 | 12 | // -- R(200[ohm])--- LED ----- com1(p14) |
suupen | 0:d30f8a141be9 | 13 | // | |
suupen | 0:d30f8a141be9 | 14 | // -- R(200[ohm])--- LED ----- com2(p28) |
suupen | 0:d30f8a141be9 | 15 | // | |
suupen | 0:d30f8a141be9 | 16 | // -- R(200[ohm])--- LED ----- com3(p27) |
suupen | 0:d30f8a141be9 | 17 | // |
suupen | 0:d30f8a141be9 | 18 | // |
suupen | 0:d30f8a141be9 | 19 | // same : segB(p6), segC(p7), segD(p8), segE(p9), segF(p10), segG(p11), segH(p12) |
suupen | 0:d30f8a141be9 | 20 | // |
suupen | 0:d30f8a141be9 | 21 | // <Description of LED control> |
suupen | 0:d30f8a141be9 | 22 | // com0 Led off to on ,on to off smooth (lighting = 0 to 100 [%] |
suupen | 0:d30f8a141be9 | 23 | // com1 Led off to on smooth, on to off hard |
suupen | 0:d30f8a141be9 | 24 | // com2 Led off to on, on to off smooth (lighting = 0 to gray data) |
suupen | 0:d30f8a141be9 | 25 | // com3 gray data movement |
suupen | 0:d30f8a141be9 | 26 | // |
suupen | 0:d30f8a141be9 | 27 | //============================================= |
suupen | 0:d30f8a141be9 | 28 | |
suupen | 0:d30f8a141be9 | 29 | #include "mbed.h" |
suupen | 0:d30f8a141be9 | 30 | |
suupen | 0:d30f8a141be9 | 31 | #include "EightDotMatrixLed.h" |
suupen | 0:d30f8a141be9 | 32 | |
suupen | 0:d30f8a141be9 | 33 | // common type (0:anode common 1:cathode common) |
suupen | 0:d30f8a141be9 | 34 | // | |
suupen | 0:d30f8a141be9 | 35 | // | segA segB segC segD segE segF segG segh com1 com2 com3 com4 (com5 to com8 = disable) |
suupen | 0:d30f8a141be9 | 36 | // | | | | | | | | | | | | | |
suupen | 0:d30f8a141be9 | 37 | EightDotMatrixLed segmentled(1, p5, p6, p7, p8, p9, p10, p11, p12, p13, p14, p28, p27); |
suupen | 0:d30f8a141be9 | 38 | |
suupen | 0:d30f8a141be9 | 39 | // com0 Led off to on ,on to off smooth (lighting = 0 to 100 [%] |
suupen | 0:d30f8a141be9 | 40 | // com1 Led off to on smooth, on to off hard |
suupen | 0:d30f8a141be9 | 41 | // com2 Led off to on, on to off smooth (lighting = 0 to gray data) |
suupen | 0:d30f8a141be9 | 42 | // com3 gray data movement |
suupen | 0:d30f8a141be9 | 43 | |
suupen | 0:d30f8a141be9 | 44 | |
suupen | 0:d30f8a141be9 | 45 | uint8_t D_dotGrayData[4][8] = { |
suupen | 0:d30f8a141be9 | 46 | {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}, // com0 disable |
suupen | 0:d30f8a141be9 | 47 | {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}, // com1 disable |
suupen | 0:d30f8a141be9 | 48 | {0, 14, 29, 43, 57, 71, 86, 100}, // com2 enable (0 to 100 [%]) |
suupen | 0:d30f8a141be9 | 49 | {0, 14, 29, 43, 57, 71, 86, 100}, // com3 enable (0 to 100 [%]) |
suupen | 0:d30f8a141be9 | 50 | }; |
suupen | 0:d30f8a141be9 | 51 | uint8_t D_dotDigitalData[4][8] = { |
suupen | 0:d30f8a141be9 | 52 | {0x01, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00}, // com0 0:off, 1:on |
suupen | 0:d30f8a141be9 | 53 | {0x01, 0x01, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff}, // com1 0:disalbe 1:on |
suupen | 0:d30f8a141be9 | 54 | {0x00, 0x00, 0x01, 0x01, 0x01, 0x01, 0x01, 0x01}, // com2 0:off, 1:on |
suupen | 0:d30f8a141be9 | 55 | {0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff, 0xff} // com3 disable |
suupen | 0:d30f8a141be9 | 56 | }; |
suupen | 0:d30f8a141be9 | 57 | |
suupen | 0:d30f8a141be9 | 58 | Timer timer; // data change timer |
suupen | 0:d30f8a141be9 | 59 | |
suupen | 0:d30f8a141be9 | 60 | int main() { |
suupen | 0:d30f8a141be9 | 61 | uint8_t seg; |
suupen | 0:d30f8a141be9 | 62 | uint8_t wk0, wk1, wk2, wk3; |
suupen | 0:d30f8a141be9 | 63 | |
suupen | 0:d30f8a141be9 | 64 | timer.start(); |
suupen | 0:d30f8a141be9 | 65 | |
suupen | 0:d30f8a141be9 | 66 | while(1) { |
suupen | 0:d30f8a141be9 | 67 | // After 500[ms] to start the process |
suupen | 0:d30f8a141be9 | 68 | if(timer.read_ms() >= 500){ |
suupen | 0:d30f8a141be9 | 69 | timer.reset(); |
suupen | 0:d30f8a141be9 | 70 | |
suupen | 0:d30f8a141be9 | 71 | // com0 Led off to on ,on to off smooth (lighting = 0 to 100 [%] |
suupen | 0:d30f8a141be9 | 72 | wk0 = D_dotDigitalData[0][7]; |
suupen | 0:d30f8a141be9 | 73 | for(seg = 7; seg > 0; seg--){ |
suupen | 0:d30f8a141be9 | 74 | D_dotDigitalData[0][seg] = D_dotDigitalData[0][seg - 1]; |
suupen | 0:d30f8a141be9 | 75 | } |
suupen | 0:d30f8a141be9 | 76 | D_dotDigitalData[0][0] = wk0; |
suupen | 0:d30f8a141be9 | 77 | |
suupen | 0:d30f8a141be9 | 78 | // com1 Led off to on smooth, on to off hard |
suupen | 0:d30f8a141be9 | 79 | wk1 = D_dotDigitalData[1][7]; |
suupen | 0:d30f8a141be9 | 80 | for(seg = 7; seg > 0; seg--){ |
suupen | 0:d30f8a141be9 | 81 | D_dotDigitalData[1][seg] = D_dotDigitalData[1][seg - 1]; |
suupen | 0:d30f8a141be9 | 82 | } |
suupen | 0:d30f8a141be9 | 83 | D_dotDigitalData[1][0] = wk1; |
suupen | 0:d30f8a141be9 | 84 | |
suupen | 0:d30f8a141be9 | 85 | // com2 Led off to on, on to off smooth (lighting = 0 to gray data) |
suupen | 0:d30f8a141be9 | 86 | wk2 = D_dotDigitalData[2][7]; |
suupen | 0:d30f8a141be9 | 87 | for(seg = 7; seg > 0; seg--){ |
suupen | 0:d30f8a141be9 | 88 | D_dotDigitalData[2][seg] = D_dotDigitalData[2][seg - 1]; |
suupen | 0:d30f8a141be9 | 89 | } |
suupen | 0:d30f8a141be9 | 90 | D_dotDigitalData[2][0] = wk2; |
suupen | 0:d30f8a141be9 | 91 | |
suupen | 0:d30f8a141be9 | 92 | // com3 gray data movement |
suupen | 0:d30f8a141be9 | 93 | wk3 = D_dotGrayData[3][7]; |
suupen | 0:d30f8a141be9 | 94 | for(seg = 7; seg > 0; seg--){ |
suupen | 0:d30f8a141be9 | 95 | D_dotGrayData[3][seg] = D_dotGrayData[3][seg - 1]; |
suupen | 0:d30f8a141be9 | 96 | } |
suupen | 0:d30f8a141be9 | 97 | D_dotGrayData[3][0] = wk3; |
suupen | 0:d30f8a141be9 | 98 | } |
suupen | 0:d30f8a141be9 | 99 | |
suupen | 0:d30f8a141be9 | 100 | // This function, please repeat the process in less than 1ms. |
suupen | 0:d30f8a141be9 | 101 | segmentled.EightDotMatrixLed_main((uint8_t*)D_dotGrayData, (uint8_t*)D_dotDigitalData); |
suupen | 0:d30f8a141be9 | 102 | |
suupen | 0:d30f8a141be9 | 103 | } |
suupen | 0:d30f8a141be9 | 104 | } |