CocheEvitaObstaculos

 /***   Included libraries  ***/
#include <BitbloqSoftwareSerial.h>

/***   Global variables and function definition  ***/
uint8_t boton = 52;
const int PinTrig = 48; // antes 2;
const int PinEcho = 49; // antes 7;
bqSoftwareSerial puerto_serie(0, 1, 9600);
uint8_t IN1izqatras = 3;
uint8_t IN2izqalante = 4;
uint8_t IN3dchAtras = 5;
uint8_t IN4dchAlante = 6;
uint8_t ENAiz = 8;
uint8_t ENBdch = 9;
float voy = 0;
float obstaculo = 0;
const float VelSon = 34000.0;

void LeoTrigger()
{
  digitalWrite(PinTrig, LOW);
  delayMicroseconds(2);
  digitalWrite(PinTrig, HIGH);
  delayMicroseconds(10);
  digitalWrite(PinTrig, LOW);
  unsigned long tiempo = pulseIn(PinEcho, HIGH);
  obstaculo = tiempo * 0.000001 * VelSon / 2.0;
  puerto_serie.print(obstaculo);
  puerto_serie.print("cm");
  puerto_serie.println(tiempo);
}

void pared() {
    LeoTrigger();
    while (obstaculo <= 10) {
        digitalWrite(IN2izqalante, LOW);
        digitalWrite(IN4dchAlante, LOW);
        delay(200);
        digitalWrite(IN1izqatras, HIGH);
        delay(1200);
        digitalWrite(IN1izqatras, LOW);
        puerto_serie.println(obstaculo);
        LeoTrigger();
    }
}


/***   Setup  ***/
void setup() {
    pinMode(boton, INPUT);
    puerto_serie.begin(9600);
    pinMode(IN1izqatras, OUTPUT);
    pinMode(IN2izqalante, OUTPUT);
    pinMode(IN3dchAtras, OUTPUT);
    pinMode(IN4dchAlante, OUTPUT);
    pinMode(PinTrig, OUTPUT);
    pinMode(PinEcho, INPUT);
    pinMode(ENAiz, OUTPUT);
    pinMode(ENBdch, OUTPUT);
    analogWrite(ENAiz, 120);
    analogWrite(ENBdch, 120);
}

/***   Loop  ***/
void loop() {
    if (digitalRead(boton) == 1) {
        while (digitalRead(boton) == 1) {
            
        }
        if (voy == 0) {
            voy = 1;
        }
        else {
            voy = 0;
        }
    }
    if (voy == 0) {
        digitalWrite(IN2izqalante, LOW);
        digitalWrite(IN4dchAlante, LOW);
    }
    else {
        digitalWrite(IN2izqalante, HIGH);
        digitalWrite(IN4dchAlante, HIGH);
        pared();
    }
}