int r1 = 2; int r2 = 3; int r3 = 4; int c1 = 5; int c2 = 6; int c3 = 7; int xArray[3][3] = { { 1,0,1 } ,{ 0,1,0 } ,{ 1,0,1 } }; int slashArray[3][3] = { { 0,0,1 } ,{ 0,1,0 } ,{ 1,0,0 } }; int state = 0; void setup() { Serial.begin(9600); pinMode(r1,OUTPUT); pinMode(r2,OUTPUT); pinMode(r3,OUTPUT); pinMode(c1,OUTPUT); pinMode(c2,OUTPUT); pinMode(c3,OUTPUT); Serial.println("STARTED"); } void loop() { checkSerial(); if (state == 1) { for (int i=0;i<3;i++) { for (int j = 0; j<3;j++) { allOff(); if (xArray[i][j] == 1) { digitalWrite(i+2,HIGH); digitalWrite(j+5,LOW); } } } } else if (state == 2) { for (int i=0;i<3;i++) { for (int j = 0; j<3;j++) { allOff(); if (slashArray[i][j] == 1) { digitalWrite(i+2,HIGH); digitalWrite(j+5,LOW); } } } } } void allOff() { digitalWrite(r1,LOW); digitalWrite(r2,LOW); digitalWrite(r3,LOW); digitalWrite(c1,HIGH); digitalWrite(c2,HIGH); digitalWrite(c3,HIGH); } void checkSerial() { byte inByte = 0; if (Serial.available() > 0) { inByte = Serial.read(); Serial.println(inByte); } if (inByte == '1') { state = 1; } else if (inByte == '2') { state = 2; } }