#include <ESP32Servo.h>
#include <TM1637Display.h>
#define CLK 22
#define DIO 23
int led = 4;
int led_2 = 2;
int push_button = 12;
int push_button_state;
int push_button_count;
int servo_pin = 14;
unsigned long lastButtonPress = 0;
const int debounceDelay = 50;
Servo servo;
void setup() {
// put your setup code here, to run once:
Serial.begin(115200);
pinMode(led, OUTPUT);
pinMode(led_2, OUTPUT);
pinMode(push_button, INPUT);
servo.attach(servo_pin, 500, 2400);
TM1637Display display = TM1637Display(CLK, DIO);
}
int pos = 0;
void loop() {
// put your main code here, to run repeatedly:
// push button count and led indication code
push_button_state = digitalRead(push_button);
if ( push_button_state == HIGH && (millis() - lastButtonPress) > debounceDelay)
{
lastButtonPress = millis();
digitalWrite(led_2, HIGH);
Serial.println("LED_2_ON '\n'");
push_button_count++;
Serial.println("The total pressing Count is ");
Serial.println(push_button_count);
moveServo();
}
else
{
digitalWrite(led_2, LOW);
}
TM1637Display display = TM1637Display(CLK, DIO);
display.showNumberDec(push_button_count);
//Led blinking code
digitalWrite(led, HIGH);
delay (2000);
digitalWrite(led, LOW);
delay (2000);
}
void moveServo() {
for (pos = 0; pos <= 180; pos += 1) {
servo.write(pos);
delay(15);
if (digitalRead(push_button)==LOW) {
servo.write(pos);
return;
}
}
for (pos = 180; pos >= 0; pos -= 1) {
servo.write(pos);
delay(15);
if (digitalRead(push_button)==LOW) {
servo.write(pos);
return;
}
}
}