// John Aguila, Student #: 300333218, TEST 1
#include <Servo.h> // SERVO LIBRARY
/*
Pushbutton circuits that generate a logic high are connected to 5 volts
2 - Button A (Red)
12 - Button B (Green)
8 - Button C (Yellow)
7 - Button D (Blue)
LED
5 - Orange Colour LED
6 - Blue Colour LED
10 - Green Colour LED
9 - Red Colour LED
*/
//Servo Function
int servoPin = 11; // Declared the pin the SERVO is in
Servo turn; // Name of the function for SURVO
void setup() {
//Set up all the digital pins on the push buttons
pinMode(2, INPUT); // Button A (red) push button
pinMode(12, INPUT); // Button B (green) push button
pinMode(8, INPUT); // Button C (yellow) push button
pinMode(7, INPUT); // Button D (blue) push button
//set up all the digital output pins to LED Circuits
pinMode(5, OUTPUT); // Amber colour LED
pinMode(6, OUTPUT); // Blue colour LED
pinMode(10, OUTPUT); // Green Colour LED
pinMode(9, OUTPUT); // Red Colour LED
pinMode(11, OUTPUT); // SERVO
turn.attach(servoPin); // Servo pin attached to #11 + The name of the function
int random(1,5); // Produces a random number for exercise 2
}
void loop(){
digitalWrite(5, HIGH); // Turns off Orange LED
digitalWrite(6, HIGH); // Turn off Blue LED
digitalWrite(10, HIGH); // Turn off Green LED
digitalWrite(9, HIGH); // Turn off Red LED
//EXERCISE ONE: BLACK AND FORTH LED TRACER
while (digitalRead(2)){ // While loop for Button A (red)
//FORWARD ORDER
//GREEN
for (int i = 0; i<2; i++){ // Function Blink GREEN 2x
digitalWrite(10, LOW); // Turns on the green LED
delay(200);
digitalWrite(10, HIGH); // Turns off the green LED
delay(200);
}
//RED
for (int i = 0; i<2; i++){ // Function Blink RED 2x
digitalWrite(9, LOW); // turn on red led for 200
delay(250);
digitalWrite(9, HIGH); // turns off the red led once butto nnot pressed
delay(250);
}
//BLUE
for (int i = 0; i<2; i++){ // Function Blink BLUE 2x
digitalWrite(6, LOW); // Turns on the blue LED
delay(275);
digitalWrite(6, HIGH); // Turns off the blue LED
delay(275);
}
//ORANGE
for (int i = 0; i<2; i++){ // Function Blink Orange 2x
digitalWrite(5, LOW); // Turns on the the Orange LED
delay(300);
digitalWrite(5, HIGH); // Turns off the Orange LED
delay(300);
}
//REVERSE ORDER
//Reverse Orange Blinker
for (int i = 0; i<2; i++){ // Function Blink Orange 2x
digitalWrite(5, LOW); // Turns on the the Orange LED
delay(325);
digitalWrite(5, HIGH); // Turns off the Orange LED
delay(325);
}
//Reverse Blue Blinker
for (int i = 0; i<2; i++){ //Function Blink Blue 2x
digitalWrite(6, LOW); // Turns on the blue LED
delay(350);
digitalWrite(6, HIGH); // Turns off the blue LED
delay(350);
}
//Reverse Red Blinker
for (int i = 0; i<2; i++){ // Function Blink RED 2x
digitalWrite(9, LOW); // turn on red led for 200
delay(375);
digitalWrite(9, HIGH); // turns off the red led once butto nnot pressed
delay(375);
}
//Reverse Green Blinker
for (int i = 0; i<2; i++){ // Function Blink GREEN 2x
digitalWrite(10, LOW); // Turns on the green LED
delay(400);
digitalWrite(10, HIGH); // Turns off the green LED
delay(400);
}
}
//EXERCISE 2: RANDOM LED BLINKER
while (digitalRead(12)){ // While Loop for the B button (Green)to be pressed
//Green Blink if rand # = 1
if (random(1,5) == 1){
for (int i = 0; i<2; i++){ // Function Blink GREEN
digitalWrite(10, LOW); // Turns on the green LED
delay(200);
digitalWrite(10, HIGH); // Turns off the green LED
delay(200);
}
}
//Red Blink if rand # = 2
if (random(1,5) == 2){
for (int i = 0; i<2; i++){ // Function Blink RED
digitalWrite(9, LOW); // turn on red led for 200
delay(200);
digitalWrite(9, HIGH); // turns off the red led once butto nnot pressed
delay(200);
}
}
//Blue Blink if rand # = 3
if(random(1,5) == 3){
for (int i = 0; i<2; i++){
digitalWrite(6, LOW); // Turns on the blue LED
delay(200);
digitalWrite(6, HIGH); // Turns off the blue LED
delay(200);
}
}
//Orange Blink if rand # = 4
if (random(1,5) == 4){
for (int i = 0; i<2; i++){
digitalWrite(5, LOW); // Turns on the the Orange LED
delay(200);
digitalWrite(5, HIGH); // Turns off the Orange LED
delay(200);
}
}
}
//Exercise 3: SERVO OSCILLATOR
while (digitalRead(8)){ // While loop for button C (yellow)
//Infinite loop for the function to continuesly be called
while (true){
//make servo turn to 0 degrees at start
turn.write(0);
// Make servo go to 9 degrees
turn.write(9);
delay(750);
// Make servo go to 100 degrees
turn.write(100);
delay(750);
}
}
//Exercise 4 : SYNCHRONIZE DANCE
while (digitalRead(7)){ // While loop or Button D (Blue)
while (true){ // While True loop for infinite sequence
turn.write(25); // Turn Survo 25 degrees
for (int i = 0; i<2; i++){ // For function to increase increment of blinks
digitalWrite(6, LOW); // Turns on the blue LED
delay(200); // delay 200ms
digitalWrite(6, HIGH); // Turns off the blue LED
delay(200);
}
turn.write(81); // Turns the Survo 81 degrees
for (int i = 0; i<3; i++){ // Function Blink GREEN
digitalWrite(10, LOW); // Turns on the green LED
delay(200); // delay 200ms
digitalWrite(10, HIGH); // Turns off the green LED
delay(200);
}
turn.write(144);
for (int i = 0; i<3; i++){ // Function Blink
digitalWrite(9, LOW); // Turns on RED
delay(200); //delay 200ms
digitalWrite(9, HIGH); // Turns off RED
delay(200);
digitalWrite(5, LOW); // Turns on ORANGE
delay(250); //delay 250 ms
digitalWrite(5, HIGH); // Turns off ORANGE
delay(250);
}
}
}
}