I posted about a month back about using the arduino to control 8 12V printers for a theatrical effect. I have wired 8 relays using optoisolators.
This program is written to do the following.
During the show, there are 13 instances where one printer must print 1 page.
Then there needs to be a slow "rain" of pages from all over.
Finally there is a storm of papper.
I am using 1 latching button to control this by counting button presses. The numbers are even so that there is no action during odd presses. The additional buttonstate and button pin was my attempt at adding a button for the final two effects but I had no success with that.
Are ther any ways that I can stream line this code?
int buttonPin2 = 3;
int buttonPin = 2;
int pinArray[9] = {5, 6, 7, 8, 9, 10, 11, 12};
int timer = 1400;
int count = 0;
int buttonState = 0;
int buttonState2 = 0;
int buttonPushCounter = 0;
int lastButtonState = LOW;
int printMode = 0;
int val;
int val2;
int ledPin = 13;
void setup() {
for (count=0;count<8;count++) {
pinMode(pinArray[count], OUTPUT);
pinMode(ledPin, OUTPUT);
pinMode(buttonPin, INPUT);
pinMode(buttonPin2, INPUT);
Serial.begin(9600);
buttonState2 = digitalRead(buttonPin2);
}}
void loop() {
buttonState = digitalRead(buttonPin);
if (buttonState != lastButtonState) {
buttonPushCounter++;
Serial.println("on");
Serial.print("number of button pushes:");
Serial.println(buttonPushCounter, DEC);
}
lastButtonState = buttonState;
if (buttonPushCounter % 2 == 0) {
digitalWrite(ledPin, HIGH);
} else {
digitalWrite(ledPin, LOW);
} if (buttonPushCounter == 2){
delay(500);
digitalWrite(pinArray[1], HIGH);
delay(timer);
digitalWrite(pinArray[1], LOW);
delay(3000);
}
if (buttonPushCounter == 4){
delay(500);
digitalWrite(pinArray[2], HIGH);
delay(timer);
digitalWrite(pinArray[2], LOW);
delay(3000);
}
if (buttonPushCounter == 6){
delay(500);
digitalWrite(pinArray[3], HIGH);
delay(timer);
digitalWrite(pinArray[3], LOW);
delay(3000);
}
if (buttonPushCounter == 8){
delay(500);
digitalWrite(pinArray[4], HIGH);
delay(timer);
digitalWrite(pinArray[4], LOW);
delay(3000);
}
if (buttonPushCounter == 10){
delay(500);
digitalWrite(pinArray[5], HIGH);
delay(timer);
digitalWrite(pinArray[5], LOW);
delay(3000);
}
if (buttonPushCounter == 12){
delay(500);
digitalWrite(pinArray[6], HIGH);
delay(timer);
digitalWrite(pinArray[6], LOW);
delay(3000);
}
if (buttonPushCounter == 14){
delay(500);
digitalWrite(pinArray[7], HIGH);
delay(timer);
digitalWrite(pinArray[7], LOW);
delay(3000);
}
if (buttonPushCounter == 16){
delay(500);
digitalWrite(pinArray[8], HIGH);
delay(timer);
digitalWrite(pinArray[8], LOW);
delay(3000);
}
if (buttonPushCounter == 18){
delay(500);
digitalWrite(pinArray[6], HIGH);
delay(timer);
digitalWrite(pinArray[6], LOW);
delay(3000);
}
if (buttonPushCounter == 20){
delay(500);
digitalWrite(pinArray[2], HIGH);
delay(timer);
digitalWrite(pinArray[2], LOW);
delay(3000);
}
if (buttonPushCounter == 22){
delay(500);
digitalWrite(pinArray[3], HIGH);
delay(timer);
digitalWrite(pinArray[3], LOW);
delay(3000);
}
if (buttonPushCounter == 24){
delay(500);
digitalWrite(pinArray[4], HIGH);
delay(timer);
digitalWrite(pinArray[4], LOW);
delay(3000);
}
if (buttonPushCounter == 26){
delay(500);
digitalWrite(pinArray[2], HIGH);
delay(timer);
digitalWrite(pinArray[2], LOW);
delay(3000);
}
if (buttonPushCounter == 28){
for (count=0;count<8;count++){
digitalWrite(pinArray[count], HIGH);
delay(timer);
digitalWrite(pinArray[count], LOW);
delay(2000);
}
if (buttonPushCounter == 30){
for (count=0;count<8;count++){
digitalWrite(pinArray[count], HIGH);
delay(timer);
digitalWrite(pinArray[count], LOW);
delay(100);
}
}}}