/*
HC-SR04 Ultrasonic Sensor Example.
Turn the LED on when an object is within 100cm range.
Copyright (C) 2021, Uri Shaked
*/
#define ECHO_PIN 2
#define TRIG_PIN 3
int ledRojo = 13;
int ledAmarillo = 11;
int ledVerde = 12;
void setup() {
Serial.begin(115200);
pinMode(ledRojo, OUTPUT);
pinMode(ledAmarillo, OUTPUT);
pinMode(ledVerde, OUTPUT);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
}
float readDistanceCM() {
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH);
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
int duration = pulseIn(ECHO_PIN, HIGH);
return duration * 0.034 / 2;
}
void loop() {
float distance = readDistanceCM();
bool muyCerca = distance < 100;
bool cerca = distance > 100 && distance < 200;
bool lejos = distance > 200 && distance < 300;
if (muyCerca) {
digitalWrite(ledRojo, HIGH);
digitalWrite(ledAmarillo, LOW);
digitalWrite(ledVerde, LOW);
} else if (cerca) {
digitalWrite(ledRojo, LOW);
digitalWrite(ledAmarillo, HIGH);
digitalWrite(ledVerde, LOW);
} else if (lejos) {
digitalWrite(ledRojo, LOW);
digitalWrite(ledAmarillo, LOW);
digitalWrite(ledVerde, HIGH);
}
Serial.print("Measured distance: ");
Serial.println(readDistanceCM());
delay(100);
}