#include <Servo.h> //Include servo library
Servo servo;
//Assign LEDS, servo, and buttons to variables
int ambreLED = 5, blueLED = 6, redLED = 9, greenLED = 10;
int servoPIN = 11;
int butA = 2, butD = 7, butC = 8, butB = 12;
void setup() {
// put your setup code here, to run once:
//Set LED pins as output
pinMode(ambreLED, OUTPUT);
pinMode(blueLED, OUTPUT);
pinMode(redLED, OUTPUT);
pinMode(greenLED, OUTPUT);
//Attach servo
servo.attach(servoPIN);
//Set button pins as input
pinMode(butA, INPUT);
pinMode(butD, INPUT);
pinMode(butC, INPUT);
pinMode(butB, INPUT);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(ambreLED, HIGH);
digitalWrite(blueLED, HIGH);
digitalWrite(redLED, HIGH);
digitalWrite(greenLED, HIGH);
//Question 1
//----------
if(digitalRead(butA) == HIGH) { //If buttonA is pushed
digitalWrite(ambreLED, LOW); //Set ambre LED on
delay(2000); //Wait for two second seconds
digitalWrite(blueLED, LOW); //Set blue LED on
digitalWrite(ambreLED, HIGH); //Set ambre LED off
delay(2000); //Wait for two second seconds
digitalWrite(redLED, LOW); //Set red LED on
digitalWrite(blueLED, HIGH); //Set blue LED off
delay(2000); //Wait for two second seconds
digitalWrite(greenLED, LOW); //Set green LED on
digitalWrite(redLED, HIGH); //Set red LED off
}
//Question 2
//----------
if(digitalRead(butB) == HIGH) {
//Set ambre and blue LEDs on
digitalWrite(ambreLED, LOW);
digitalWrite(blueLED, LOW);
//Set red and green LEDs off
digitalWrite(redLED, HIGH);
digitalWrite(greenLED, HIGH);
delay(1000); //Waits for one second
//Set ambre and blueLEDs off
digitalWrite(ambreLED, HIGH);
digitalWrite(blueLED, HIGH);
//Set red and green LEDs on
digitalWrite(redLED, LOW);
digitalWrite(greenLED, LOW);
delay(1000); //Waits for one second
}
//Question 3
//----------
if(digitalRead(butC) == HIGH) { //If buttonC is pushed
for (int pos = 0; pos <= 30; pos += 1) { //From 0 degrees to 45 degrees, increasing by 1 degree
servo.write(pos); //Servo goes to position in variable 'pos'
delay(15); // Waits 15ms for the servo to reach the position
}
for (int pos = 30; pos >= 0; pos -= 1) { //From 45 degrees to 0 degrees, decreasing by 1 degree
servo.write(pos); //Servo goes to position in variable 'pos'
delay(15); //Waits 15ms for the servo to reach the position
}
for (int pos = 0; pos <= 60; pos += 1) { //From 0 degrees to 45 degrees, increasing by 1 degree
servo.write(pos); //Servo goes to position in variable 'pos'
delay(15); // Waits 15ms for the servo to reach the position
}
for (int pos = 60; pos >= 0; pos -= 1) { //From 45 degrees to 0 degrees, decreasing by 1 degree
servo.write(pos); //Servo goes to position in variable 'pos'
delay(15); //Waits 15ms for the servo to reach the position
}
for (int pos = 0; pos <= 120; pos += 1) { //From 0 degrees to 45 degrees, increasing by 1 degree
servo.write(pos); //Servo goes to position in variable 'pos'
delay(15); // Waits 15ms for the servo to reach the position
}
for (int pos = 120; pos >= 0; pos -= 1) { //From 45 degrees to 0 degrees, decreasing by 1 degree
servo.write(pos); //Servo goes to position in variable 'pos'
delay(15); //Waits 15ms for the servo to reach the position
}
}
//Question 4
//----------
if(digitalRead(butD) == HIGH) { //If buttonD is pushed
//Set ambre and blue LEDs on
digitalWrite(ambreLED, LOW);
digitalWrite(redLED, LOW);
digitalWrite(blueLED, HIGH);
digitalWrite(greenLED, HIGH);
for (int pos = 45; pos <= 90; pos += 1) { //From 0 degrees to 45 degrees, increasing by 1 degree
servo.write(pos); //Servo goes to position in variable 'pos'
delay(15); // Waits 15ms for the servo to reach the position
}
for (int pos = 90; pos >= 45; pos -= 1) { //From 45 degrees to 0 degrees, decreasing by 1 degree
servo.write(pos); //Servo goes to position in variable 'pos'
delay(15); //Waits 15ms for the servo to reach the position
}
delay(4000); //Waits for one second
//Set ambre and blueLEDs off
digitalWrite(ambreLED, HIGH);
digitalWrite(redLED, HIGH);
digitalWrite(blueLED, LOW);
digitalWrite(greenLED, LOW);
for (int pos = 30; pos <= 120; pos += 1) { //From 0 degrees to 45 degrees, increasing by 1 degree
servo.write(pos); //Servo goes to position in variable 'pos'
delay(15); // Waits 15ms for the servo to reach the position
}
for (int pos = 120; pos >= 30; pos -= 1) { //From 45 degrees to 0 degrees, decreasing by 1 degree
servo.write(pos); //Servo goes to position in variable 'pos'
delay(15); //Waits 15ms for the servo to reach the position
}
delay(4000); //Waits for one second
}
}