//Vy Nguyen
//Student Number #300371385
/*
Note the following colour indicators:
-------------------------------------
Button A - Yellow
Button B - Green
Button C - Red
Button D - Blue
+5V - Red wire
GND - Brown wire
Arduino pin 11 - Orange wire
Ambre LED - Yellow wire
Blue LED - Blue wire
Red LED - Black wire
Green LED - Green wire
Resistors - Pink wire
*/
#include <Servo.h> //Include servo library
Servo servo; //Declare servo as variable servo
//Assign LED, servo, and button pin numbers to variables
int ambreLED = 5, blueLED = 6, redLED = 9, greenLED = 10;
int servoPIN = 11;
int butA = 2, butD = 7, butC = 8, butB = 12;
volatile int buttonState = 0; //Initialize reading for button status
void blinker (int led, int interval, int array){
//(long) can be omitted if you dont plan to blink led for very long time I think
if (((long)millis() - previousMillis[array]) >= interval){
previousMillis[array]= millis(); //stores the millis value in the selected array
digitalWrite(led, !digitalRead(led)); //changes led state
}
}
void setup() {
// put your setup code here, to run once:
//Set LEDs as output
pinMode(ambreLED, OUTPUT);
pinMode(blueLED, OUTPUT);
pinMode(redLED, OUTPUT);
pinMode(greenLED, OUTPUT);
servo.attach(servoPIN); //Attach servo
attachInterrupt(0, pin_ISR, RISING); //Attach interrupt to ISR vector
//Set buttons as input
pinMode(butA, INPUT);
pinMode(butD, INPUT);
pinMode(butC, INPUT);
pinMode(butB, INPUT);
//RandomSeed() will shuffle the random function
randomSeed(analogRead(0));
//Initialize Serial Monitor at 9600 bps
Serial.begin(9600);
}
void loop() {
// put your main code here, to run repeatedly:
//Exercise 2:
//-----------
//1.
if (digitalRead(butA)) {
servo.write(5);
}
//2.
}
void pin_ISR() { //ISR vector
//When button A is pressed
buttonState = digitalRead(butA);
//All LEDs turn off
digitalWrite(ambreLED, HIGH);
digitalWrite(blueLED, HIGH);
digitalWrite(redLED, HIGH);
digitalWrite(greenLED, HIGH);
}