Saltar la navegación

Lee la distancia y enciende un segundo led en función de la distancia

Lee la distancia y enciende un segundo led en función de la distancia

Enciende led por debajo de una distancia de inicio configurable con la variable inicio_led

//enciende led por debajo de una distancia de inicio configurable con la variable inicio_led
int trig = 12; // trigger en pin 12
int echo = 11; // echo en pin 11
int led = 3; // LED en pin 3
int duracion;
int distancia;
int inicio_led=20; //distancia en cm de inicio led
void setup()
{
pinMode(trig, OUTPUT); // trigger como salida
pinMode(echo, INPUT); // echo como entrada
pinMode(led, OUTPUT); // LED como salida
Serial.begin(9600); // inicializacion de comunicacion serial a 9600 bps

}

void loop()
{

digitalWrite(trig, HIGH); // generacion del pulso a enviar al pin conectado al trigger
delay(1);
digitalWrite(trig, LOW);

duracion = pulseIn(echo, HIGH); // con función pulseIn se espera un pulso alto en Echo
distancia = duracion / 58.2; // distancia medida en centimetros
Serial.println(distancia); // envio de valor de distancia por monitor serial
delay(200); // demora entre datos

if (distancia <= inicio_led && distancia > 0){ // si distancia entre 0 y 20 cms.
digitalWrite(led, HIGH); // enciende LED
delay(distancia * 10); // demora proporcional a la distancia
digitalWrite(led, LOW); // apaga LED
}

}