// Adrian Blake ID:300345840
/*
This code makes use of 4 LED lights, a servo and 4 buttons on an arduino board connected as such:
-Amber LED - Dpin 5
-Blue LED - Dpin 6
-Green LED - Dpin 10
-Red LED - Dpin 9
-Button A - Dpin 2
-Button B - Dpin 12
-Button C - Dpin 8
-Button D - Dpin 7
-Servo - Dpin 11
Each LED, and button are connected to +5V using a step-down resistor to ground.
Buttons A through D exibit different results which will not be combined.
*/
//Include standard Arduino and Servo libraries
#include <Arduino.h>
#include <Servo.h>
//Servo object that controls servo
Servo ABservo;
//Variable for servo's default position
int pos = 10;
// Declare LED output pins
int amber_led = 5;
int blue_led = 6;
int green_led = 10;
int red_led = 9;
// Declare button input pins
int button_a = 2;
int button_b = 12;
int button_c = 8;
int button_d = 7;
//Declare servo input pin
int angle = 11;
void setup() {
// Runs once:
// Configure LED output pins to act accordingly
pinMode(amber_led, OUTPUT);
pinMode(blue_led, OUTPUT);
pinMode(green_led, OUTPUT);
pinMode(red_led, OUTPUT);
// Configure button pins to act accordingly
pinMode(button_a, INPUT);
pinMode(button_b, INPUT);
pinMode(button_c, INPUT);
pinMode(button_d, INPUT);
// Attatch servo data connector to input pin
ABservo.attach(angle);
}
void loop() {
// Runs repeatedly:
// Set servo to starting position at 10 degrees
ABservo.write(10);
// Sets all LED's to a HIGH state to turn them off
digitalWrite(amber_led, HIGH);
digitalWrite(blue_led, HIGH);
digitalWrite(green_led, HIGH);
digitalWrite(red_led, HIGH);
// Function called when button B is pressed
if(digitalRead(button_b) == HIGH){
// Blink the green light twice by setting to LOW and HIGH state respectively
// Repeat for all other buttons
for(int i = 0; i < 3; i ++){
digitalWrite(green_led, LOW);
delay(15);
digitalWrite(green_led, HIGH);
delay(15);
}
for(int i = 0; i < 3; i ++){
digitalWrite(red_led, LOW);
delay(15);
digitalWrite(red_led, HIGH);
delay(15);
}
for(int i = 0; i < 3; i ++){
digitalWrite(blue_led, LOW);
delay(15);
digitalWrite(blue_led, HIGH);
delay(15);
}
for(int i = 0; i < 3; i ++){
digitalWrite(amber_led, LOW);
delay(15);
digitalWrite(amber_led, HIGH);
delay(15);
}
}
// Runs code if button C is pressed
else if(digitalRead(button_c) == HIGH){
// Runs loop until button D is pressed to hold lights on
while(digitalRead(button_d) == LOW){
digitalWrite(amber_led, LOW);
digitalWrite(blue_led, LOW);
digitalWrite(green_led, LOW);
digitalWrite(red_led, LOW);
}
// If button D is pressed turn all lights back off
digitalWrite(amber_led, HIGH);
digitalWrite(blue_led, HIGH);
digitalWrite(green_led, HIGH);
digitalWrite(red_led, HIGH);
}
}