// including servo library
#include <Servo.h>
// creating variable for servo motor
Servo servoOne;
// variable that will keep the millis value
// temporary variable that will occasionally be given the millis value
unsigned long timer1 = 0;
unsigned long timer2 = 0;
unsigned long timer3 = 0;
unsigned long timer4 = 0;
unsigned long timer5 = 0;
unsigned long timer6 = 0;
unsigned long timer7 = 0;
unsigned long timer9 = 0;
unsigned long timer10 = 0;
void setup() {
// pin setup for the 4 pushbuttons
pinMode(2, INPUT); // button A (blue button)
pinMode(7, INPUT); // button D (red button)
pinMode(8, INPUT); // button C (yellow button)
pinMode(12, INPUT); // button B (green button)
// pin setup for the 4 LEDs
pinMode(5, OUTPUT); // amber LED
pinMode(6, OUTPUT); // blue LED
pinMode(9, OUTPUT); // red LED
pinMode(10, OUTPUT); // green LED
// setup for the serial monitor
Serial.begin(9600);
// pin setup for the servo motor
servoOne.attach (11);
}
void loop()
{
// begin by turning all of the LEDs off
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(9, HIGH);
digitalWrite(10, HIGH);
const int buttonA = 7;
const int buttonB = 8;
const int buttonC = 12;
const int buttonD = 2;
while(digitalRead(buttonB))
{
servoOne.write(10);
int i;
for(i=0;i<110;i++);
{
if(millis()- timer5>= 8)
{
servoOne.write(10 + i);
timer5 = millis();
}
}
}
while(digitalRead(buttonD))
{
int randomNumber = random(1, 3);
int chosenState;
//Switch case is used so that numbers 1-4 is assigned to respective pin numbers attached to LEDs
switch(randomNumber)
{
int i = 0;
case 1:
servoOne.write(30);
for(i=0;i<2;i++)
{
if (millis() - timer6 > 2000)
{
digitalWrite(10, LOW);
timer6 = millis();
}
else if (millis() - timer6 > 1000)
{
digitalWrite(10, HIGH);
}
}
break;
case 2:
servoOne.write(90);
for(i=0;i<3;i++)
{
if (millis() - timer9 > 3000)
{
digitalWrite(5, LOW);
timer1 = millis();
i++;
}
else if (millis() - timer9 > 1000)
{
digitalWrite(5, HIGH);
}
if (millis() - timer10 > 3000)
{
digitalWrite(10, HIGH);
timer2 = millis();
}
else if (millis() - timer10 > 1000)
{
digitalWrite(10, LOW);
}
}
break;
case 3:
servoOne.write(150);
for(i=0;i>4;i++)
{
if (millis() - timer7 > 2000)
{
digitalWrite(5, LOW);
timer7 = millis();
}
else if (millis() - timer7 > 1000)
{
digitalWrite(5, HIGH);
}
}
break;
}
}
}