DFROBOT 3-Wire LED Module sample program.
秋月電子で販売されているDFROBOT社の3-Wire LED モジュールをLPC1114FN28に接続してみました。 そのサンプルプログラムになります。
LEDモジュールとの接続方法は以下の通り。
DATA (DS) - dp9
LATCH (STCP) - dp10
CLOCK (SHCP) - dp11
Vcc - +5V
GND - GND
main.cpp@0:5e8377638086, 2013-10-06 (annotated)
- Committer:
- kanpapa
- Date:
- Sun Oct 06 06:43:48 2013 +0000
- Revision:
- 0:5e8377638086
1st release
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
kanpapa | 0:5e8377638086 | 1 | #include "mbed.h" |
kanpapa | 0:5e8377638086 | 2 | |
kanpapa | 0:5e8377638086 | 3 | //Pin connected to Data in (DS) of 74HC595 |
kanpapa | 0:5e8377638086 | 4 | DigitalOut dataPin(dp9); |
kanpapa | 0:5e8377638086 | 5 | //Pin connected to latch pin (ST_CP) of 74HC595 |
kanpapa | 0:5e8377638086 | 6 | DigitalOut latchPin(dp10); |
kanpapa | 0:5e8377638086 | 7 | //Pin connected to clock pin (SH_CP) of 74HC595 |
kanpapa | 0:5e8377638086 | 8 | DigitalOut clockPin(dp11); |
kanpapa | 0:5e8377638086 | 9 | |
kanpapa | 0:5e8377638086 | 10 | uint8_t Tab[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0xff}; |
kanpapa | 0:5e8377638086 | 11 | |
kanpapa | 0:5e8377638086 | 12 | void shiftOut(DigitalOut data, DigitalOut clk, int sdata) { |
kanpapa | 0:5e8377638086 | 13 | for (int i = 7; i >= 0; i--) { |
kanpapa | 0:5e8377638086 | 14 | clk = 0; |
kanpapa | 0:5e8377638086 | 15 | if(sdata & (1 << i)){ |
kanpapa | 0:5e8377638086 | 16 | data = 1; |
kanpapa | 0:5e8377638086 | 17 | } else { |
kanpapa | 0:5e8377638086 | 18 | data = 0; |
kanpapa | 0:5e8377638086 | 19 | } |
kanpapa | 0:5e8377638086 | 20 | clk = 1; |
kanpapa | 0:5e8377638086 | 21 | data = 0; |
kanpapa | 0:5e8377638086 | 22 | } |
kanpapa | 0:5e8377638086 | 23 | } |
kanpapa | 0:5e8377638086 | 24 | |
kanpapa | 0:5e8377638086 | 25 | void leddisp(long n){ |
kanpapa | 0:5e8377638086 | 26 | char disp[9]; |
kanpapa | 0:5e8377638086 | 27 | |
kanpapa | 0:5e8377638086 | 28 | sprintf(disp, "%08d¥n", n); |
kanpapa | 0:5e8377638086 | 29 | |
kanpapa | 0:5e8377638086 | 30 | for (int c = 8; c >= 0 ;c--){ |
kanpapa | 0:5e8377638086 | 31 | // write to the shift register with the correct bit set high: |
kanpapa | 0:5e8377638086 | 32 | latchPin = 0; |
kanpapa | 0:5e8377638086 | 33 | // shift the bits out: |
kanpapa | 0:5e8377638086 | 34 | shiftOut(dataPin, clockPin, Tab[disp[c] - 48]); |
kanpapa | 0:5e8377638086 | 35 | // turn on the output so the LEDs can light up: |
kanpapa | 0:5e8377638086 | 36 | latchPin = 1; |
kanpapa | 0:5e8377638086 | 37 | } |
kanpapa | 0:5e8377638086 | 38 | } |
kanpapa | 0:5e8377638086 | 39 | |
kanpapa | 0:5e8377638086 | 40 | int main() { |
kanpapa | 0:5e8377638086 | 41 | long number = 0; |
kanpapa | 0:5e8377638086 | 42 | while(1) { |
kanpapa | 0:5e8377638086 | 43 | leddisp(number++); |
kanpapa | 0:5e8377638086 | 44 | if (number > 99999999) { |
kanpapa | 0:5e8377638086 | 45 | number = 0; |
kanpapa | 0:5e8377638086 | 46 | } |
kanpapa | 0:5e8377638086 | 47 | wait(0.1); |
kanpapa | 0:5e8377638086 | 48 | } |
kanpapa | 0:5e8377638086 | 49 | } |