#include <ESP32Servo.h>
#include <Arduino.h>
#include <TM1637Display.h>
const int TRIG_PIN = 15; // Arduino pin connected to Ultrasonic Sensor's TRIG pin
const int ECHO_PIN = 2; // Arduino pin connected to Ultrasonic Sensor's ECHO pin
const int RED_LED_PIN = 27; // Arduino pin connected to the green LED
const int DISTANCE_THRESHOLD_RED = 0; // Distance threshold for the green LED
const int DISTANCE_THRESHOLD_DEAD = 200; // Distance threshold for the LED to "die"
const int CLK = 33; //Set the CLK pin connection to the display
const int DIO = 25; //Set the DIO pin connection to the display
Servo myservo;
int pos = 0;
int ServoPin = 14;
int inputPin = 13;
int pirState = LOW;
int val = 0;
int numCounter = 0;
TM1637Display display(CLK, DIO);
void setup() {
pinMode(13, INPUT);
pinMode(14, OUTPUT);
Serial.begin(115200);
pinMode(18, INPUT);
pinMode(33, OUTPUT);
Serial.begin(115200);
myservo.attach(14);
Serial.begin(115200);
Serial.begin(9600);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(RED_LED_PIN, OUTPUT);
}
void loop() {
val = digitalRead(inputPin);
if (val == HIGH) {
digitalWrite(ServoPin, HIGH);
if (pirState == LOW) {
Serial.println("Gerak Nih!");
pirState = HIGH;
for (pos= -180; pos <= 90; pos += 1) {
//in steps of 1 degree
myservo.write(pos);
delay(10);
Serial.println(pos);
}
}
} else {
digitalWrite(ServoPin, LOW);
if (pirState, HIGH) {
delay(30);
Serial.println("Diam Diam");
pirState = LOW;
}
}
delay(10);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
long duration_us = pulseIn(ECHO_PIN, HIGH);
float distance_cm = 0.017 * duration_us;
Serial.print("Distance: ");
Serial.print(distance_cm);
Serial.println(" cm");
if (distance_cm >= DISTANCE_THRESHOLD_DEAD) {
// LED "dies" (turn off all LEDs)
digitalWrite(RED_LED_PIN, LOW);
} else {
// Green LED turns on
digitalWrite(RED_LED_PIN, HIGH);
delay(5);
digitalWrite(RED_LED_PIN, LOW);
}
delay(500);
int button = digitalRead(18);
if (button==LOW){
digitalWrite(27, LOW);
Serial.println("Nyala");
delay(100);
}
else{
digitalWrite(27, HIGH);
Serial.println("Mati");
}
delay(10);
}