int motor1 =2;
int motor2 =3;
int motor3 =4;
int motor4 =5;
int motor1Enable = 9;
int motor2Enable = 10;
#define Pecho1 7
#define Ptrig1 6
const int sensorPin = 11;
int led2 =13;
long duracion,distancia;
void setup() {
// put your setup code here, to run once:
pinMode(Pecho1,INPUT);
pinMode(Ptrig1,OUTPUT);
Serial.begin(9600);
pinMode(motor1,OUTPUT);
pinMode(motor2,OUTPUT);
pinMode(motor3,OUTPUT);
pinMode(motor4,OUTPUT);
pinMode(led2,OUTPUT);
pinMode(sensorPin, INPUT); //definir pin como entrada
analogWrite(motor1Enable, OUTPUT); // Inicialmente, velocidad 0
analogWrite(motor2Enable, OUTPUT); // Inicialmente, velocidad 0
void loop() {
// put your main code here, to run repeatedly:
digitalWrite(Ptrig1,HIGH); //
delayMicroseconds(1);
digitalWrite(Ptrig1,LOW);
delayMicroseconds(1);
duracion = pulseIn(Pecho1,HIGH);
distancia = (duracion/2) / 29;
if(distancia >=500 || distancia <=0){
Serial.println("---");
else {
Serial.print(distancia);
Serial.println("cm");
int value = 1;
value = digitalRead(sensorPin ); //lectura digital de pin
if (distancia<=20 && distancia >=1){
analogWrite(motor1Enable,255);
analogWrite(motor2Enable,255);
digitalWrite(motor1,HIGH);
digitalWrite(motor2,LOW);
digitalWrite(motor3,HIGH);
digitalWrite(motor4,LOW);
digitalWrite(led2,HIGH);
delay(1000);
if (distancia<=200 && distancia >=20){
analogWrite(motor1Enable,100);
analogWrite(motor2Enable,100);
digitalWrite(led2,LOW);
digitalWrite(motor1,HIGH);
digitalWrite(motor2,LOW);
digitalWrite(motor3,LOW);
digitalWrite(motor4,HIGH);
if (value == LOW) {
Serial.println("TCRT5000L activado");
digitalWrite(motor1,LOW);
digitalWrite(motor2,HIGH);
digitalWrite(motor3,LOW);
digitalWrite(motor4,HIGH);
else {
Serial.println("TCRT5000L desactivado");