#include <Servo.h>

#define leda 1
#define ledb 2
#define ledc 3
#define buzzer 4
#define button1 5
#define PIN_TRIG 9
#define PIN_ECHO 10
Servo myservo;

int status1;
int duration;
int condition;

void setup() 
{
  Serial.begin(115200);
  myservo.attach(8);
  pinMode(leda, OUTPUT);
  pinMode(ledb, OUTPUT);
  pinMode(ledc, OUTPUT);

  pinMode(PIN_TRIG, OUTPUT);
  pinMode(PIN_ECHO, INPUT);
  
  pinMode(buzzer, OUTPUT);
  pinMode(button1, INPUT_PULLUP);
}

void loop()
{
  ultrasonic();
  if(duration <= 100 && status1 == 1)
  {
    led();
    status1 = 0;
  }
  else if(duration > 100)
  {
    status1 = 1;
  }
}

void led()
{
  status1 = digitalRead(button1);
  digitalWrite(PIN_TRIG, HIGH);
  delayMicroseconds(10);
  digitalWrite(PIN_TRIG, LOW);

  int duration = pulseIn(PIN_ECHO, HIGH);
  Serial.print("distance in cm: ");
  Serial.print(duration / 58);

  duration = duration / 58;
  delay(1000);

  digitalWrite(leda, HIGH);
  myservo.write(0);
  delay(1000);
  digitalWrite(leda, LOW);

  digitalWrite(ledb, HIGH);
  delay(500);
  digitalWrite(ledb, LOW);

  digitalWrite(buzzer, HIGH);
  tone(buzzer, 1000);
  myservo.write(180);
  digitalWrite(ledc, HIGH);
  delay(1000);
  myservo.write(0);
  digitalWrite(ledc, LOW);
  digitalWrite(buzzer, LOW);
  noTone(buzzer);

}
void ultrasonic()
{
  status1 = digitalRead(button1);
  digitalWrite(PIN_TRIG, HIGH);
  delayMicroseconds(10);
  digitalWrite(PIN_TRIG, LOW);

  duration = pulseIn(PIN_TRIG, HIGH);
  Serial.print("distance in cm: ");
  Serial.print(duration / 5);

  duration = duration / 58;
  delay(1000);

}

// unfinished project
mega:SCL
mega:SDA
mega:AREF
mega:GND.1
mega:13
mega:12
mega:11
mega:10
mega:9
mega:8
mega:7
mega:6
mega:5
mega:4
mega:3
mega:2
mega:1
mega:0
mega:14
mega:15
mega:16
mega:17
mega:18
mega:19
mega:20
mega:21
mega:5V.1
mega:5V.2
mega:22
mega:23
mega:24
mega:25
mega:26
mega:27
mega:28
mega:29
mega:30
mega:31
mega:32
mega:33
mega:34
mega:35
mega:36
mega:37
mega:38
mega:39
mega:40
mega:41
mega:42
mega:43
mega:44
mega:45
mega:46
mega:47
mega:48
mega:49
mega:50
mega:51
mega:52
mega:53
mega:GND.4
mega:GND.5
mega:IOREF
mega:RESET
mega:3.3V
mega:5V
mega:GND.2
mega:GND.3
mega:VIN
mega:A0
mega:A1
mega:A2
mega:A3
mega:A4
mega:A5
mega:A6
mega:A7
mega:A8
mega:A9
mega:A10
mega:A11
mega:A12
mega:A13
mega:A14
mega:A15
btn1:1.l
btn1:2.l
btn1:1.r
btn1:2.r
led1:A
led1:C
bz1:1
bz1:2
led2:A
led2:C
led3:A
led3:C
servo1:GND
servo1:V+
servo1:PWM
ultrasonic1:VCC
ultrasonic1:TRIG
ultrasonic1:ECHO
ultrasonic1:GND