#define dbg(myFixedText, variableName) \
Serial.print( F(#myFixedText " " #variableName"=") ); \
Serial.println(variableName);
// usage: dbg("1:my fixed text",myVariable);
// myVariable can be any variable or expression that is defined in scope
#define dbgi(myFixedText, variableName,timeInterval) \
do { \
static unsigned long intervalStartTime; \
if ( millis() - intervalStartTime >= timeInterval ){ \
intervalStartTime = millis(); \
Serial.print( F(#myFixedText " " #variableName"=") ); \
Serial.println(variableName); \
} \
} while (false);
// usage: dbgi("2:my fixed text",myVar,myInterval);
// myVar can be any variable or expression that is defined in scope
// myInterval is the time-interval which must pass by before the next
// print is executed
#include <Servo.h>
Servo servo1;
Servo servo2;
Servo servo3;
Servo servo4;
#define button 2 //attaches button to pin 2
#define button2 3 //attaches button to pin 3
#define button3 4 //attaches button to pin 3
int buttonState = 0; //buttonState stores state of input
const byte positions[] = {0, 90,};
unsigned long period = 500;
unsigned long startTime = 0;
int greenLED = 11;
void setup() {
Serial.begin(115200);
Serial.println("Setup Start");
pinMode (greenLED, OUTPUT);
pinMode(button, INPUT_PULLUP); //sets button as input
pinMode(button2, INPUT_PULLUP);
pinMode(button3, INPUT_PULLUP);
servo1.attach(5);
servo2.attach(6);
servo3.attach(9);
servo4.attach(10);
}
void loop() {
digitalWrite (greenLED, HIGH);
delay (100);
digitalWrite (greenLED, LOW);
delay (100);
buttonState = digitalRead(button); //reads state of buttonunsigned long currentTime = millis();
unsigned long currentTime = millis();
dbgi("top of loop",currentTime,1000);
dbg("result of currentTime - startTime is:",currentTime - startTime);
if ((currentTime - startTime >= period) && (buttonState == LOW))
{
dbg("if ((currentTime - startTime >= period) && (buttonState == LOW)) is true",1);
dbg("Level One - Has started",0);
servo1.write(90);
servo2.write(0);
servo3.write(90);
servo4.write(90);
dbg("Begin Fire",0)
delay(1000);
servo2.write(90);
delay(500);
servo1.write(0); //run this servo sequence
delay(1200);
servo1.write(90);
servo2.write(0);
delay(1200);
servo2.write(90);
servo3.write(0);
delay(1200);
servo3.write(90);
servo4.write(0);
delay(1200);
servo4.write(90);
delay(1200);
servo1.write(0); //run this servo sequence
delay(1200);
servo1.write(90);
servo2.write(0);
delay(1200);
servo2.write(90);
servo3.write(0);
delay(1200);
servo3.write(90);
servo4.write(0);
delay(1200);
servo4.write(90);
delay(1200);
servo1.write(0);
servo2.write(0);
servo3.write(0);
servo4.write(0);
delay(300);
servo1.write(90);
servo2.write(90);
servo3.write(90);
servo4.write(90);
delay(200);
dbg("Level One - Has ended",0);
}
if (buttonState == HIGH) { //button is not pressed
}
buttonState = digitalRead(button2); //reads state of buttonunsigned long currentTime = millis();
if ((currentTime - startTime >= period) && (buttonState == LOW))
{
dbg("You have now entered setup mode ",0);
servo1.write(0);
servo2.write(90);
servo3.write(90);
servo4.write(90);
delay(1000);
servo1.write(90);
delay(200);
dbg("Begin Setup",0)
servo1.write(0);
servo2.write(0);
servo3.write(0);
servo4.write(0);
delay(8000);
servo1.write(90);
servo2.write(90);
servo3.write(90);
servo4.write(90);
delay(200);
dbg("Setup mode has ended",0);
}
if (buttonState == HIGH) { //button is not pressed
}
buttonState = digitalRead(button3); //reads state of buttonunsigned long currentTime = millis();
if ((currentTime - startTime >= period) && (buttonState == LOW))
{
dbg("Level Two - Has started",0);
servo1.write(90);
servo2.write(90);
servo3.write(0);
servo4.write(90);
delay(1000);
servo3.write(90);
dbg("Begin Fire",0)
delay(500);
servo2.write(0); //run this servo sequence
delay(800);
servo2.write(90);
servo4.write(0);
delay(800);
servo4.write(90);
servo1.write(0);
delay(800);
servo1.write(90);
servo3.write(0);
delay(800);
servo3.write(90);
delay(800);
servo2.write(0);
delay(800);
servo2.write(90);
servo4.write(0);
delay(800);
servo4.write(90);
servo1.write(0);
delay(800);
servo1.write(90);
servo3.write(0);
delay(800);
servo3.write(90);
delay(300);
servo1.write(0);
servo2.write(0);
servo3.write(0);
servo4.write(0);
delay(300);
servo1.write(90);
servo2.write(90);
servo3.write(90);
servo4.write(90);
delay(200);
dbg("Level Two - Has ended",0);
}
if (buttonState == HIGH) { //button is not pressed
}
}