Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #define DI1 2
- #define DI2 3
- #define DSH 4
- #define DST 5
- void setup() {
- pinMode(2, OUTPUT);
- pinMode(3, OUTPUT);
- pinMode(4, OUTPUT);
- pinMode(5, OUTPUT);
- }
- #define DELAY_CLK 1
- byte _leds1 = 0;
- byte _leds2 = 0;
- void sendLeds() {
- for(byte i=0; i<8; i++){
- digitalWrite(DI1, (_leds1 >> i) & 1);
- digitalWrite(DI2, (_leds2 >> i) & 1);
- digitalWrite(DSH, HIGH);
- delayMicroseconds(DELAY_CLK);
- digitalWrite(DSH, LOW);
- delayMicroseconds(DELAY_CLK);
- }
- digitalWrite(DST, HIGH);
- delayMicroseconds(DELAY_CLK);
- digitalWrite(DST, LOW);
- delayMicroseconds(DELAY_CLK);
- }
- #define NONE 0
- #define RED 1
- #define GREEN 2
- #define ORANGE 3
- #define N 0
- #define R 1
- #define G 2
- #define O 3
- void clearLeds() {
- _leds1=0; _leds2 = 0;
- }
- void setLed(byte index, byte color) {
- byte* _leds;
- if(index<4) {
- _leds = &_leds1;
- }else{
- _leds = &_leds2;
- index -= 4;
- }
- byte real_index = (3-index)*2;
- *_leds = *_leds & ~(0b11 << real_index) | (color << real_index);
- }
- byte data[11][8] = {
- {R,N,R,R,R,R,N,N},
- {N,R,R,R,N,N,N,N},
- {N,N,R,R,R,N,N,N},
- {N,R,R,O,R,R,N,R},
- {R,N,R,R,R,R,R,N},
- {N,N,R,R,R,R,R,N},
- {R,N,R,R,R,R,R,N},
- {N,R,R,O,R,R,N,R},
- {N,N,R,R,R,N,N,N},
- {N,R,R,R,N,N,N,N},
- {R,N,R,R,R,R,N,N}
- };
- void loop() {
- for(byte i=0; i<11; i++) {
- for(byte j=0; j<8; j++) {
- setLed(j, data[i][j]);
- }
- sendLeds();
- delay(5);
- }
- clearLeds();
- sendLeds();
- delay(20);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement