#include <ESP32Servo.h> // SE DEFINE AL SERVOMOTOR.
Servo miservo;
int pos;
//int puenteR=9;
//int puenteL=8;
int motorRP=13;
int motorRB=12;
int motorLP=14;
int motorLB=27;
unsigned long pulso;
float distancia;
float derecha;
float izquierda;
int trig=18;
int echo=5;
int duracion;
void setup() {
// put your setup code here, to run once:
pinMode(trig, OUTPUT);
pinMode(echo, INPUT);
//pinMode(puenteR, OUTPUT);
//pinMode(puenteL, OUTPUT);
pinMode(motorRP, OUTPUT);
pinMode(motorRB, OUTPUT);
pinMode(motorLP, OUTPUT);
pinMode(motorLB, OUTPUT);
//digitalWrite(puenteR,LOW);
//digitalWrite(puenteL,LOW);
miservo.attach(2);
Serial.begin(115200);
}
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(trig,HIGH);
delayMicroseconds(100);
digitalWrite(trig, LOW);
duracion= pulseIn(echo, HIGH);
distancia = duracion/58.2;
Serial.println(distancia);
delay(100);
if(distancia < 35){
digitalWrite(motorRP, LOW);
digitalWrite(motorRB, LOW);
//digitalWrite(puenteR, LOW);
//digitalWrite(puenteL, LOW);
digitalWrite(motorLP, LOW);
digitalWrite(motorLB, LOW);
miservo.write(pos=0);
digitalWrite(trig, HIGH);
delayMicroseconds(100);
digitalWrite(trig, LOW);
duracion= pulseIn(echo,HIGH);
derecha = duracion/58.2;
delay(1000+derecha);
Serial.print("derecha");
Serial.print(derecha);
miservo.write(pos=180);
digitalWrite(trig,HIGH);
delayMicroseconds(100);
digitalWrite(trig, LOW);
duracion= pulseIn(echo,HIGH);
izquierda = duracion/58.2;
delay(1000+izquierda);
//Frente
miservo.write(pos=90);
digitalWrite(trig,HIGH);
delayMicroseconds(100);
digitalWrite(trig, LOW);
duracion= pulseIn(echo,HIGH);
distancia = duracion/58.2;
delay(1000);
//
digitalWrite(motorRP,HIGH);
digitalWrite(motorRB,LOW);
//digitalWrite(puenteR,HIGH);
// digitalWrite(puenteL,HIGH);
digitalWrite(motorLP,HIGH);
digitalWrite(motorLB,LOW);
delay(400);
if(derecha>izquierda) {
digitalWrite(motorRP,HIGH);
digitalWrite(motorRB,LOW);
//digitalWrite(puenteR,HIGH);
//digitalWrite(puenteL,HIGH);
digitalWrite(motorLP,LOW);
digitalWrite(motorLB,HIGH);
delay(400);
}
else{
digitalWrite(motorRP,LOW);
digitalWrite(motorRB,HIGH);
//digitalWrite(puenteR,HIGH);
//digitalWrite(puenteL,HIGH);
digitalWrite(motorLP,HIGH);
digitalWrite(motorLB,LOW);
delay(400);
}
}
else{
miservo.write(pos=90);
digitalWrite(trig, HIGH);
delayMicroseconds(100);
digitalWrite(trig,LOW);
duracion= pulseIn(echo, HIGH);
distancia= duracion/58.2;
digitalWrite(motorRP,LOW);
digitalWrite(motorRB,HIGH);
//digitalWrite(puenteR,HIGH);
//digitalWrite(puenteL,HIGH);
digitalWrite(motorLP,LOW);
digitalWrite(motorLB,HIGH);
delay(1000);
}
}
esp:VIN
esp:GND.2
esp:D13
esp:D12
esp:D14
esp:D27
esp:D26
esp:D25
esp:D33
esp:D32
esp:D35
esp:D34
esp:VN
esp:VP
esp:EN
esp:3V3
esp:GND.1
esp:D15
esp:D2
esp:D4
esp:RX2
esp:TX2
esp:D5
esp:D18
esp:D19
esp:D21
esp:RX0
esp:TX0
esp:D22
esp:D23
ultrasonic1:VCC
ultrasonic1:TRIG
ultrasonic1:ECHO
ultrasonic1:GND
led1:A
led1:C
r1:1
r1:2
led2:A
led2:C
r3:1
r3:2
servo1:GND
servo1:V+
servo1:PWM
led3:A
led3:C
led4:A
led4:C
r2:1
r2:2
r4:1
r4:2