Codigo del proyecto en arduino ID

const int ledVerde= 2;

const int ledAmarillo = 3;

const int ledRojo = 4;


// Pines del sensor ultrasónico

const int trigPin = 5;

const int echoPin = 6;


// Pin del buzzer

const int buzzer = 7;


void setup() {

  // Configuración de pines como salida

  pinMode(ledRojo, OUTPUT);

  pinMode(ledAmarillo, OUTPUT);

  pinMode(ledVerde, OUTPUT);

  pinMode(buzzer, OUTPUT);


  // Sensor ultrasónico

  pinMode(trigPin, OUTPUT);

  pinMode(echoPin, INPUT);


  // Monitor serial (opcional)

  Serial.begin(9600);

}


void loop() {

  long duracion, distancia;


  // Enviar pulso ultrasónico

  digitalWrite(trigPin, LOW);

  delayMicroseconds(2);

  digitalWrite(trigPin, HIGH);

  delayMicroseconds(10);

  digitalWrite(trigPin, LOW);


  

  duracion = pulseIn(echoPin, HIGH);

  distancia = duracion * 0.034 / 2;

  

  Serial.print("Distancia: ");

  Serial.print(distancia);

  Serial.println(" cm");


  // Si el objeto está a menos de 20 cm

  if (distancia > 0 && distancia < 20) {

    digitalWrite(ledRojo, LOW);


    // Parpadeo del LED amarillo con bucle for

    for (int i = 0; i < 3; i++) {

      digitalWrite(ledAmarillo, HIGH);

      delay(300);

      digitalWrite(ledAmarillo, LOW);

      delay(300);

    }


  

    digitalWrite(ledVerde, HIGH);

    digitalWrite(buzzer, HIGH);


    while (distancia < 20 && distancia > 0) {

      delay(500);


     

      digitalWrite(trigPin, LOW);

      delayMicroseconds(2);

      digitalWrite(trigPin, HIGH);

      delayMicroseconds(10);

      digitalWrite(trigPin, LOW);

      duracion = pulseIn(echoPin, HIGH);

      distancia = duracion * 0.034 / 2;

    }


    

    digitalWrite(ledVerde, LOW);

    digitalWrite(buzzer, LOW);

    digitalWrite(ledRojo, HIGH);

  } else {

    

    digitalWrite(ledVerde, LOW);

    digitalWrite(ledAmarillo, LOW);

    digitalWrite(ledRojo, HIGH);

    digitalWrite(buzzer, LOW);

  }


  delay(200); 

}








Comentarios

Entradas populares