Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- const int numTypes = 6;
- int state0[] = {0x01, 0x02, 0x04, 0x08, 0x10, 0x08, 0x04, 0x02};
- int state1[] = {0x15, 0x0a};
- int state2[] = {0x1e, 0x1d, 0x1b, 0x17, 0x0f, 0x17, 0x1b, 0x1d};
- int state3[] = {0x00, 0x01, 0x02, 0x03, 0x04, 0x05, 0x06, 0x07, 0x08, 0x09, 0x0a, 0x0b, 0x0c, 0x0d, 0x0e, 0x0f,
- 0x10, 0x11, 0x12, 0x13, 0x14, 0x15, 0x16, 0x17, 0x18, 0x19, 0x1a, 0x1b, 0x1c, 0x1d, 0x1e, 0x1f};
- int state4[] = {0x01, 0x02, 0x04, 0x08, 0x10,
- 0x11, 0x12, 0x14, 0x18,
- 0x19, 0x1a, 0x1c,
- 0x1d, 0x1e,
- 0x1f,
- 0x00, 0x1f, 0x00, 0x1f, 0x00, 0x1f, 0x00, 0x1f, 0x00};
- int state5[] = {0x00};
- int *states[numTypes] = {state0, state1, state2, state3, state4, state5};
- int stateSize[numTypes] = {8, 2, 8, 32, 24, 1};
- int stateType = 0;
- int stateIdx = 0;
- void setup() {
- Serial.begin(9600);
- pinMode(13, INPUT);
- pinMode(8, OUTPUT);
- pinMode(9, OUTPUT);
- pinMode(10, OUTPUT);
- pinMode(11, OUTPUT);
- pinMode(12, OUTPUT);
- }
- // Get a debounced button press
- bool isPressed(void)
- {
- if (digitalRead(13))
- {
- while(1)
- {
- delay(100);
- if (!digitalRead(13))
- return true;
- }
- }
- return false;
- }
- void loop() {
- while (1)
- {
- for (int iOff = 0; iOff < 5; iOff++)
- {
- if (!((1<<iOff) & states[stateType][stateIdx]))
- digitalWrite(8+iOff, LOW);
- }
- for (int iOn = 0; iOn < 5; iOn++)
- {
- if ((1<<iOn) & states[stateType][stateIdx])
- digitalWrite(8+iOn, HIGH);
- }
- stateIdx = (stateIdx+1) % stateSize[stateType];
- delay(100);
- if (isPressed())
- break;
- }
- stateType = (stateType+1) % numTypes;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement