#include <Servo.h>
int buzzer = 4; // buzzer sound
int light1 = 12; // Front Light
int light2 = 13; // Back Light
int policelight1 = 9; // Police light
int policelight2 = 10; // Police light
int state;
char ch;
int buzzer1 = 11; // police siren
int i=400, policeSiren=0, f=0, mystate=0;
int ledstate=0, myswitch=0;
int light3 = 2;
void setup() {
pinMode(light1, OUTPUT);
pinMode(light2, OUTPUT);
pinMode(light3, OUTPUT);
pinMode(policelight1, OUTPUT);
pinMode(policelight2, OUTPUT);
Serial.begin(9600);
Serial.println("start");
//menuOption = menu();
}
void loop() {
//Stop car when connection lost or bluetooth disconnected
// if(analogRead(BTled)>=300) { state='S'; }
//Save income data to variable 'state'
if(Serial.available() > 0){
state = Serial.read();
ch = state;
Serial.print("state:");Serial.print(state);
Serial.print(" ch:");Serial.println(ch); // Serial.print(" analog:");Serial.println(analogRead(A0));
}
/* if(analogRead(A0)>300){
analogWrite(motorA1, 0); analogWrite(motorA2, 0);
Servo1.write(60);
}*/
if(state=='X'){
if(mystate==0) policeSiren=1;
if(mystate==1) policeSiren=2;
}
if(state=='x' && policeSiren != 0){
f=0; i=400;
policeSiren = 0;
mystate = !mystate;
// Serial.println(mystate);
digitalWrite(policelight1, LOW);
digitalWrite(policelight2, LOW);
noTone(buzzer1);
}
/***************************light1*****************************/
//If state is equal with letter 'W', light1 turn on
if (state == 'W') {
if(ledstate==0) digitalWrite(light1, HIGH);
if(ledstate==1) digitalWrite(light3, HIGH);
myswitch = 1;
}
if (state == 'w' && myswitch==1) {
ledstate = !ledstate;
myswitch = 0;
digitalWrite(light1, LOW);
digitalWrite(light3, LOW);
}
/***************************light2*****************************/
//If state is equal with letter 'U', light2 turn on
if (state == 'U') {
digitalWrite(light2, HIGH);
}
if (state == 'u') {
digitalWrite(light2, LOW);
}
/***************************buzzer*****************************/
//If state is equal with letter 'V', buzzer turn on
if (state == 'V') {
tone(buzzer, 500);
}
if (state == 'v') {
noTone(buzzer);
}
/***************************POLICE SIREN*****************************/
//If state is equal with letter, buzzer1 plays police siren
if(policeSiren==1){ // Police Siren 1
if(f==0){
tone(buzzer1, i);
if(i<700){
if(i%50==0)
digitalWrite(policelight1 , LOW);
if(i%100==0)
digitalWrite(policelight1 , HIGH);
}
else {
if(i%50==0)
digitalWrite(policelight2 , LOW);
if(i%100==0)
digitalWrite(policelight2 , HIGH);
}
delay(7);
i+=2;
}
if(f==1){
tone(buzzer1, i);
if(i>700){
if(i%50==0)
digitalWrite(policelight1 , LOW);
if(i%100==0)
digitalWrite(policelight1 , HIGH);
}
else {
if(i%50==0)
digitalWrite(policelight2 , LOW);
if(i%100==0)
digitalWrite(policelight2 , HIGH);
}
delay(7);
i-=2;
}
if(i==1000)
f = 1;
if(i==400)
f = 0;
}
else if(policeSiren==2){ // Police Siren 2
if(f==0){
tone(buzzer1, i);
digitalWrite(policelight1 , HIGH);
digitalWrite(policelight2 , LOW);
delayMicroseconds(500);
i+=2;
}
if(f==1){
tone(buzzer1, i);
digitalWrite(policelight2 , HIGH);
digitalWrite(policelight1 , LOW);
delayMicroseconds(500);
i-=2;
}
if(i==1000)
f = 1;
if(i==400)
f = 0;
}
if(state=='Y'){
digitalWrite(policelight1 , HIGH);
digitalWrite(policelight2 , HIGH);
}
if(state=='y'){
digitalWrite(policelight1 , LOW);
digitalWrite(policelight2 , LOW);
}
}