#include <ESP32Servo.h>
Servo myservo;
#define pinServo 13
#define DIR 11
#define STEP 10
#define EN 12
#define pulsador1 7 // Fin de carrera 1
#define pulsador2 8 // Fin de carrera 2
//Sentido del motor
bool HORARIO = HIGH;
bool ANTIHORARIO = LOW;
const int ANG_A_FIN = 150;
const int ANG_A_INI = 100;
void girar_motor(uint8_t fin_carrera, bool sentido) {
digitalWrite(EN, LOW);
digitalWrite(DIR, sentido);
do{
digitalWrite(STEP, HIGH);
delayMicroseconds(1000);
digitalWrite(STEP, LOW);
delayMicroseconds(1000);
}while(digitalRead(fin_carrera)==HIGH);
digitalWrite(EN, HIGH);
}
void setup() {
pinMode(DIR, OUTPUT);
pinMode(STEP, OUTPUT);
pinMode(pulsador1, INPUT_PULLUP);
pinMode(pulsador2, INPUT_PULLUP);
Serial.begin(115200);
myservo.attach(pinServo, 600, 2400);
myservo.write(ANG_A_INI);
}
void loop() {
girar_motor(pulsador1, ANTIHORARIO);
myservo.write(ANG_A_FIN);
delay(500);
girar_motor(pulsador2, HORARIO);
myservo.write(ANG_A_INI);
delay(500);
}