/*
Kurt Sion
Student # 300383943
ENGR1190 Midterm
*/
#include <Servo.h>
Servo myservo;
int state;
void setup() {
// put your setup code here, to run once:
pinMode(2, INPUT); //Botton A (red)
pinMode(12, INPUT); //Botton B (green)
pinMode(8, INPUT); //Botton C (blue)
pinMode(7, INPUT); //Botton D (yellow)
pinMode(5, OUTPUT); //LED Orange
pinMode(6, OUTPUT); //LED Blue
pinMode(9, OUTPUT); //LED Red
pinMode(10, OUTPUT); //LED Green
myservo.attach(11); //Servo
}
void loop()
{
// put your main code here, to run repeatedly:
//Turn all LED off
digitalWrite(5, HIGH);
digitalWrite(6, HIGH);
digitalWrite(9, HIGH);
digitalWrite(10, HIGH);
//task 1 - when button A is press will make the led blink twice in a following serquence
while(digitalRead(2) == HIGH) // (2 == button A/button RED)
{
// Make LED green blink twice (10 == green)
digitalWrite(10, LOW);
delay(150);
digitalWrite(10, HIGH);
delay(150);
digitalWrite(10 ,LOW);
delay(150);
digitalWrite(10, HIGH);
delay(150);
// Make LED red blink twice (9 == red)
digitalWrite(9, LOW);
delay(150);
digitalWrite(9, HIGH);
delay(150);
digitalWrite(9, LOW);
delay(150);
digitalWrite(9, HIGH);
delay(150);
// Make LED blue blink twice (6 == blue)
digitalWrite(6, LOW);
delay(150);
digitalWrite(6, HIGH);
delay(150);
digitalWrite(6, LOW);
delay(150);
digitalWrite(6, HIGH);
delay(150);
// Make LED oragen blink twice (5 == orange)
digitalWrite(5, LOW);
delay(150);
digitalWrite(5, HIGH);
delay(150);
digitalWrite(5, LOW);
delay(150);
digitalWrite(5, HIGH);
delay(150);
// Make LED orange blink twice (5 == orange)
digitalWrite(5, LOW);
delay(150);
digitalWrite(5, HIGH);
delay(150);
digitalWrite(5, LOW);
delay(150);
digitalWrite(5, HIGH);
delay(150);
// Make LED blue blink twice (6 == blue)
digitalWrite(6, LOW);
delay(150);
digitalWrite(6, HIGH);
delay(150);
digitalWrite(6, LOW);
delay(150);
digitalWrite(6, HIGH);
delay(150);
// Make LED red blink twice (9 == red)
digitalWrite(9, LOW);
delay(150);
digitalWrite(9, HIGH);
delay(150);
digitalWrite(9, LOW);
delay(150);
digitalWrite(9, HIGH);
delay(150);
// Make LED green blink twice (10 == green)
digitalWrite(10, LOW);
delay(150);
digitalWrite(10, HIGH);
delay(150);
digitalWrite(10, LOW);
delay(150);
digitalWrite(10, HIGH);
delay(150);
}
//task 2 - when button B is selected it will randomly select LED to blink twice
while(digitalRead(12) == HIGH) // (12 == button B/ button green)
{
int random_light = random(1, 5); // make the random numbers to be selected
// if random number pick 1 LED orange will blink twice (5 == orange)
if (random_light == 1)
{
digitalWrite(5, LOW);
delay(150);
digitalWrite(5, HIGH);
delay(150);
digitalWrite(5, LOW);
delay(150);
digitalWrite(5, HIGH);
delay(150);
}
// if random number pick 2 LED blue will blink twice (6 ==. blue)
if (random_light == 2)
{
digitalWrite(6, LOW);
delay(150);
digitalWrite(6, HIGH);
delay(150);
digitalWrite(6, LOW);
delay(150);
digitalWrite(6, HIGH);
delay(150);
}
// if random number pick 3 LED red will blink twice (9 == red)
if (random_light == 3)
{
digitalWrite(9, LOW);
delay(150);
digitalWrite(9, HIGH);
delay(150);
digitalWrite(9, LOW);
delay(150);
digitalWrite(9, HIGH);
delay(150);
}
// if random number pick 4 LED green will blink twice (10 == green)
if (random_light == 4)
{
digitalWrite(10, LOW);
delay(150);
digitalWrite(10, HIGH);
delay(150);
digitalWrite(10, LOW);
delay(150);
digitalWrite(10, HIGH);
delay(150);
}
}
//task 3 - when bottun c is press servo will go back and forth between 20 and 120 stoping ever 8 sec
while(digitalRead(8) == HIGH) //(8 == button C/button blue)
{
// make a for loop to go back and forth between 20 and 120
for(int i = 20; i <= 120; i++)
{
myservo.write(i); // (myservo == servo)
delay(8); //make it so it stop momentarily at 8 degrees
}
for(int i = 120; i >= 20; i--)
{
myservo.write(i);
delay(8);
}
}
//task 4 - when button d is press it will alternate between three states
while(digitalRead(7) == HIGH) //(7 == button D/button yellow)
{
// will make the LED blue blink twice and make the servo go to 30 degrees (6 == blue)
myservo.write(30);
digitalWrite(6, LOW);
delay(150);
digitalWrite(6, HIGH);
delay(150);
digitalWrite(6, LOW);
delay(150);
digitalWrite(6, HIGH);
delay(150);
// will make the LED green blink twice and make the servo go to 90 degrees (10 == green)
myservo.write(90);
digitalWrite(10, LOW);
delay(150);
digitalWrite(10, HIGH);
delay(150);
digitalWrite(10, LOW);
delay(150);
digitalWrite(10, HIGH);
delay(150);
digitalWrite(10, LOW);
delay(150);
digitalWrite(10, HIGH);
delay(150);
// will the LED orange and LED red blink twice alternative ly and make the servo go to 120 degrees (5 == oragne, 9 == red)
myservo.write(120);
digitalWrite(5, LOW);
delay(150);
digitalWrite(5, HIGH);
delay(150);
digitalWrite(9, LOW);
delay(150);
digitalWrite(9, HIGH);
delay(150);
digitalWrite(5, LOW);
delay(150);
digitalWrite(5, HIGH);
delay(150);
digitalWrite(9, LOW);
delay(150);
digitalWrite(9, HIGH);
delay(150);
}
}