int level_0[] = {B1, B01000101}; int level_1[] = {B0, B00010000}; int level_2[] = {B1, B01000101}; int leds[] = {0, 1, 2, 3, 4, 5, 9, 7, 8}; int level_pin[] = {10, 11, 12}; int counter; void setup() { for(int i=0; i<9; i++){ pinMode(leds[i], OUTPUT); } for(int i=0; i<3; i++){ pinMode(level_pin[i], OUTPUT); } counter = 0; pinMode(13,OUTPUT); } void loop(){ if((counter % 15) == 0){ //change_sequence(); } display(); counter++; } void change_sequence(){ if(counter > 15){ level_0[0] = B0; level_0[1] = B10101010; level_2[0] = B0; level_2[1] = B10101010; counter = 0; } else { level_0[0] = B1; level_0[1] = B01000101; level_2[0] = B1; level_2[1] = B01000101; } } void display() { // Light first row binary_led(0); digitalWrite(level_pin[0], HIGH); digitalWrite(level_pin[1], HIGH); digitalWrite(level_pin[2], HIGH); delay(5); // Light second row binary_led(1); digitalWrite(level_pin[0], LOW); digitalWrite(level_pin[1], LOW); digitalWrite(level_pin[2], HIGH); delay(5); // Light third row binary_led(2); digitalWrite(level_pin[0], LOW); digitalWrite(level_pin[1], HIGH); digitalWrite(level_pin[2], LOW); delay(5); } void binary_led(int level){ switch (level) { case 0: digitalWrite(leds[0], level_0[0]); digitalWrite(leds[1], (level_0[1] & B10000000) >> 7); digitalWrite(leds[2], (level_0[1] & B01000000) >> 6); digitalWrite(leds[3], (level_0[1] & B00100000) >> 5); digitalWrite(leds[4], (level_0[1] & B00010000) >> 4); digitalWrite(leds[5], (level_0[1] & B00001000) >> 3); digitalWrite(leds[6], (level_0[1] & B00000100) >> 2); digitalWrite(leds[7], (level_0[1] & B00000010) >> 1); digitalWrite(leds[8], level_0[1] & B00000001); break; case 1: digitalWrite(leds[0], level_1[0]); digitalWrite(leds[1], (level_1[1] & B10000000) >> 7); digitalWrite(leds[2], (level_1[1] & B01000000) >> 6); digitalWrite(leds[3], (level_1[1] & B00100000) >> 5); digitalWrite(leds[4], (level_1[1] & B00010000) >> 4); digitalWrite(leds[5], (level_1[1] & B00001000) >> 3); digitalWrite(leds[6], (level_1[1] & B00000100) >> 2); digitalWrite(leds[7], (level_1[1] & B00000010) >> 1); digitalWrite(leds[8], level_1[1] & B00000001); break; case 2: digitalWrite(leds[0], level_2[0]); digitalWrite(leds[1], (level_2[1] & B10000000) >> 7); digitalWrite(leds[2], (level_2[1] & B01000000) >> 6); digitalWrite(leds[3], (level_2[1] & B00100000) >> 5); digitalWrite(leds[4], (level_2[1] & B00010000) >> 4); digitalWrite(leds[5], (level_2[1] & B00001000) >> 3); digitalWrite(leds[6], (level_2[1] & B00000100) >> 2); digitalWrite(leds[7], (level_2[1] & B00000010) >> 1); digitalWrite(leds[8], level_2[1] & B00000001); break; } }