#include <Servo.h>
int nadaTinggi = 988;
int nadaRendah = 494;
int pinButtonStart = 8;
int pinButtonStop = 7;
int pinSpeaker = 2;
int pinLampuMerah = 4;
int pinLampuKuning = 3;
int pinServo = 5;
Servo palang;
int posisi = 90;
bool active = false;
void setup() {
// put your setup code here, to run once:
pinMode(pinSpeaker, OUTPUT);
pinMode(pinLampuMerah, OUTPUT);
pinMode(pinLampuKuning, OUTPUT);
pinMode(pinButtonStart, INPUT_PULLUP);
pinMode(pinButtonStop, INPUT_PULLUP);
palang.attach(pinServo);
}
void loop() {
if (digitalRead(pinButtonStop) == LOW) {
active = true;
}
if (digitalRead(pinButtonStart) == LOW) {
active = false;
}
if(active) {
digitalWrite(pinLampuMerah, HIGH);
digitalWrite(pinLampuKuning, LOW);
tone(pinSpeaker, nadaTinggi, 1000);
delay(500);
digitalWrite(pinLampuKuning, HIGH);
digitalWrite(pinLampuMerah, LOW);
noTone(pinSpeaker);
tone(pinSpeaker, nadaRendah, 1000);
delay(500);
if (posisi < 180) {
for (int8_t i = 0; i < 30; i++) {
posisi++;
palang.write(posisi);
delay(10);
}
}
noTone(pinSpeaker);
} else {
digitalWrite(pinLampuMerah, LOW);
digitalWrite(pinLampuKuning, LOW);
posisi = 90;
palang.write(posisi);
}
}