//quack
uint8_t allLights[] = {17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51};
uint8_t leftSide[] = {51, 49, 47, 45, 43, 23, 21, 19, 17};
uint8_t rightSide[] = {25, 27, 29, 31, 33, 35, 37, 39, 41};
uint8_t sideLights[] = {51, 33};
uint8_t seg1[] = {17, 49};
uint8_t seg2[] = {19, 47};
uint8_t seg3[] = {21, 45};
uint8_t seg4[] = {23, 43};
uint8_t seg5[] = {25, 41};
uint8_t seg6[] = {27, 39};
uint8_t seg7[] = {29, 37};
uint8_t seg8[] = {31, 35};
void setup() {
Serial.begin(9600);
pinMode(22, INPUT_PULLUP);
pinMode(24, INPUT_PULLUP);
pinMode(26, INPUT_PULLUP);
pinMode(28, INPUT_PULLUP);
pinMode(30, INPUT_PULLUP);
pinMode(32, INPUT_PULLUP);
pinMode(34, INPUT_PULLUP);
pinMode(36, INPUT_PULLUP);
pinMode(38, INPUT_PULLUP);
pinMode(40, INPUT_PULLUP);
pinMode(42, INPUT_PULLUP);
pinMode(44, INPUT_PULLUP);
int switch1State = digitalRead(22);
int switch2State = digitalRead(24);
int switch3State = digitalRead(26);
int switch4State = digitalRead(28);
int switch5State = digitalRead(30);
int switch6State = digitalRead(32);
int switch7State = digitalRead(34);
int switch8State = digitalRead(36);
int switch9State = digitalRead(38);
int switch10State = digitalRead(40);
int switch11State = digitalRead(42);
int switch12State = digitalRead(44);
}
void setLights(uint8_t lights[], int numLights, int state) {
for (int i = 0; i < numLights; i++) {
digitalWrite(lights[i], state);
}
}
void allLightsOn() {
setLights(allLights, sizeof(allLights) / sizeof(allLights[0]), HIGH);
}
void allLightsOff() {
setLights(allLights, sizeof(allLights) / sizeof(allLights[0]), LOW);
}
void leftSideOn() {
setLights(leftSide, sizeof(leftSide) / sizeof(leftSide[0]), HIGH);
}
void leftSideOff() {
setLights(leftSide, sizeof(leftSide) / sizeof(leftSide[0]), LOW);
}
void rightSideOn() {
setLights(rightSide, sizeof(rightSide) / sizeof(rightSide[0]), HIGH);
}
void rightSideOff() {
setLights(rightSide, sizeof(rightSide) / sizeof(rightSide[0]), LOW);
}
void sideLightsOn() {
setLights(sideLights, sizeof(sideLights) / sizeof(sideLights[0]), HIGH);
}
void sideLightsOff() {
setLights(sideLights, sizeof(sideLights) / sizeof(sideLights[0]), LOW);
}
//-----------------------
void seg1On() {
setLights(seg1, sizeof(seg1) / sizeof(seg1[0]), HIGH);
}
void seg1Off() {
setLights(seg1, sizeof(seg1) / sizeof(seg1[0]), LOW);
}
void seg2On() {
setLights(seg2, sizeof(seg2) / sizeof(seg2[0]), HIGH);
}
void seg2Off() {
setLights(seg2, sizeof(seg2) / sizeof(seg2[0]), LOW);
}
void seg3On() {
setLights(seg3, sizeof(seg3) / sizeof(seg3[0]), HIGH);
}
void seg3Off() {
setLights(seg3, sizeof(seg3) / sizeof(seg3[0]), LOW);
}
void seg4On() {
setLights(seg4, sizeof(seg4) / sizeof(seg4[0]), HIGH);
}
void seg4Off() {
setLights(seg4, sizeof(seg4) / sizeof(seg4[0]), LOW);
}
void seg5On() {
setLights(seg5, sizeof(seg5) / sizeof(seg5[0]), HIGH);
}
void seg5Off() {
setLights(seg5, sizeof(seg5) / sizeof(seg5[0]), LOW);
}
void seg6On() {
setLights(seg6, sizeof(seg6) / sizeof(seg6[0]), HIGH);
}
void seg6Off() {
setLights(seg6, sizeof(seg6) / sizeof(seg6[0]), LOW);
}
void seg7On() {
setLights(seg7, sizeof(seg7) / sizeof(seg7[0]), HIGH);
}
void seg7Off() {
setLights(seg7, sizeof(seg7) / sizeof(seg7[0]), LOW);
}
void seg8On() {
setLights(seg8, sizeof(seg8) / sizeof(seg8[0]), HIGH);
}
void seg8Off() {
setLights(seg8, sizeof(seg8) / sizeof(seg8[0]), LOW);
}
void aroundTheWorldCW() {
digitalWrite(17, HIGH);
delay(40);
digitalWrite(17, LOW);
digitalWrite(19, HIGH);
delay(40);
digitalWrite(19, LOW);
digitalWrite(21, HIGH);
delay(40);
digitalWrite(21, LOW);
digitalWrite(23, HIGH);
delay(40);
digitalWrite(23, LOW);
digitalWrite(25, HIGH);
delay(40);
digitalWrite(25, LOW);
digitalWrite(27, HIGH);
delay(40);
digitalWrite(27, LOW);
digitalWrite(29, HIGH);
delay(40);
digitalWrite(29, LOW);
digitalWrite(31, HIGH);
delay(40);
digitalWrite(31, LOW);
digitalWrite(33, HIGH);
delay(40);
digitalWrite(33, LOW);
digitalWrite(35, HIGH);
delay(40);
digitalWrite(35, LOW);
digitalWrite(37, HIGH);
delay(40);
digitalWrite(37, LOW);
digitalWrite(39, HIGH);
delay(40);
digitalWrite(39, LOW);
digitalWrite(41, HIGH);
delay(40);
digitalWrite(41, LOW);
digitalWrite(43, HIGH);
delay(40);
digitalWrite(43, LOW);
digitalWrite(45, HIGH);
delay(40);
digitalWrite(45, LOW);
digitalWrite(47, HIGH);
delay(40);
digitalWrite(47, LOW);
digitalWrite(49, HIGH);
delay(40);
digitalWrite(49, LOW);
digitalWrite(51, HIGH);
delay(40);
digitalWrite(51, LOW);
}
void aroundTheWorldCCW() {
digitalWrite(51, HIGH);
delay(100);
digitalWrite(51, LOW);
digitalWrite(49, HIGH);
delay(100);
digitalWrite(49, LOW);
digitalWrite(47, HIGH);
delay(100);
digitalWrite(47, LOW);
digitalWrite(45, HIGH);
delay(100);
digitalWrite(45, LOW);
digitalWrite(43, HIGH);
delay(100);
digitalWrite(43, LOW);
digitalWrite(41, HIGH);
delay(100);
digitalWrite(41, LOW);
digitalWrite(39, HIGH);
delay(100);
digitalWrite(39, LOW);
digitalWrite(37, HIGH);
delay(100);
digitalWrite(37, LOW);
digitalWrite(35, HIGH);
delay(100);
digitalWrite(35, LOW);
digitalWrite(33, HIGH);
delay(100);
digitalWrite(33, LOW);
digitalWrite(31, HIGH);
delay(100);
digitalWrite(31, LOW);
digitalWrite(29, HIGH);
delay(100);
digitalWrite(29, LOW);
digitalWrite(27, HIGH);
delay(100);
digitalWrite(27, LOW);
digitalWrite(25, HIGH);
delay(100);
digitalWrite(25, LOW);
digitalWrite(23, HIGH);
delay(100);
digitalWrite(23, LOW);
digitalWrite(21, HIGH);
delay(100);
digitalWrite(21, LOW);
digitalWrite(19, HIGH);
delay(100);
digitalWrite(19, LOW);
digitalWrite(17, HIGH);
delay(100);
digitalWrite(17, LOW);
}
void quickFlash3() {
leftSideOn();
delay(100);
leftSideOff();
delay(100);
leftSideOn();
delay(100);
leftSideOff();
delay(100);
leftSideOn();
delay(100);
leftSideOff();
delay(100);
rightSideOn();
delay(100);
rightSideOff();
delay(100);
rightSideOn();
delay(100);
rightSideOff();
delay(100);
rightSideOn();
delay(100);
rightSideOff();
delay(100);
}
void quickFlash() {
leftSideOn();
delay(100);
leftSideOff();
delay(100);
rightSideOn();
delay(100);
rightSideOff();
delay(100);
}
void slowFlash() {
leftSideOn();
delay(400);
leftSideOff();
delay(400);
rightSideOn();
delay(400);
rightSideOff();
delay(400);
}
void leftToRight() {
seg1On();
digitalWrite(51, HIGH);
delay(30);
seg1Off();
digitalWrite(51, LOW);
delay(30);
seg2On();
delay(30);
seg2Off();
delay(30);
seg3On();
delay(30);
seg3Off();
delay(30);
seg4On();
delay(30);
seg4Off();
delay(30);
seg5On();
delay(30);
seg5Off();
delay(30);
seg6On();
delay(30);
seg6Off();
delay(30);
seg7On();
delay(30);
seg7Off();
delay(30);
seg8On();
digitalWrite(33, HIGH);
delay(30);
seg8Off();
digitalWrite(33, LOW);
delay(30);
}
void rightToLeft() {
seg8On();
digitalWrite(33, HIGH);
delay(30);
seg8Off();
digitalWrite(33, LOW);
delay(30);
seg7On();
delay(30);
seg7Off();
delay(30);
seg6On();
delay(30);
seg6Off();
delay(30);
seg5On();
delay(30);
seg5Off();
delay(30);
seg4On();
delay(30);
seg4Off();
delay(30);
seg3On();
delay(30);
seg3Off();
delay(30);
seg2On();
delay(30);
seg2Off();
delay(30);
seg1On();
digitalWrite(51, HIGH);
delay(30);
seg1Off();
digitalWrite(51, LOW);
delay(30);
}
void thisNeedsAName() {
seg3On();
seg4On();
seg5On();
seg6On();
delay(350);
seg3Off();
seg4Off();
seg5Off();
seg6Off();
//
seg1On();
seg2On();
seg7On();
seg8On();
sideLightsOn();
delay(350);
seg1Off();
seg2Off();
seg7Off();
seg8Off();
sideLightsOff();
}
void dancingAnts() {
seg1On();
seg3On();
seg5On();
seg7On();
digitalWrite(33, HIGH);
seg2Off();
seg4Off();
seg6Off();
seg8Off();
delay(500);
digitalWrite(33, LOW);
seg1Off();
seg3Off();
seg5Off();
seg7Off();
digitalWrite(51, HIGH);
seg2On();
seg4On();
seg6On();
seg8On();
delay(500);
digitalWrite(51, LOW);
}
/*
allLightsOn / allLightsOff
leftSideOn / leftSideOff
rightSideOn / rightSideOff
sideLightsOn / sideLightsOff
seg1On / seg2Off
quickFlash3
quickFlash
slowFlash
aroundTheWorldCW
aroundTheWorldCCW
leftToRight
rightToLeft
everyOtherFlash - //needs timing fixed
thisNeedsAName - //needs timing fixed
dancingAnts
*/
void loop() {
int switch1State = digitalRead(22);
int switch2State = digitalRead(24);
int switch3State = digitalRead(26);
int switch4State = digitalRead(28);
int switch5State = digitalRead(30);
int switch6State = digitalRead(32);
int switch7State = digitalRead(34);
int switch8State = digitalRead(36);
int switch9State = digitalRead(38);
int switch10State = digitalRead(40);
int switch11State = digitalRead(42);
int switch12State = digitalRead(44);
Serial.print(switch1State);
Serial.print(" / ");
Serial.print(switch2State);
Serial.print(" / ");
Serial.print(switch3State);
Serial.print(" / ");
Serial.print(switch4State);
Serial.print(" / ");
Serial.print(switch5State);
Serial.print(" / ");
Serial.print(switch6State);
Serial.print(" / ");
Serial.print(switch12State);
Serial.print(" / ");
Serial.print(switch11State);
Serial.print(" / ");
Serial.print(switch10State);
Serial.print(" / ");
Serial.print(switch9State);
Serial.print(" / ");
Serial.print(switch8State);
Serial.print(" / ");
Serial.print(switch7State);
Serial.println(" ");
if(switch1State == 1) {
slowFlash();
}
if(switch2State == 1) {
quickFlash();
}
}
/*
thisNeedsAName();
thisNeedsAName();
thisNeedsAName();
thisNeedsAName();
thisNeedsAName();
aroundTheWorldCW();
aroundTheWorldCCW();
quickFlash();
quickFlash();
quickFlash();
*/