Arduino - sensor ultrasónico como interruptor

 
Vista:

sensor ultrasónico como interruptor

Publicado por erick mosquera (1 intervención) el 12/10/2019 05:45:59
buenos colegas

, tengo un sensor ultrasónico y lo que quiero hacer es que, en el momento de detectar a distancia x, enciendo un LED, se mantiene activo y, cuando detecta nuevamente, se apaga en
primer lugar, gracias



código:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
int trigPin = 7; // Definimos los pinos con los que trabajaremos
int echoPin = 8;
int LEDR = 10;
int LEDV = 11;
velocidad de flotación = 0.0343; // velocidad del sonido en cm / us
long duracion, distancia;
 
configuración vacía ()
{
    pinMode (trigPin, OUTPUT); // Declaramos el pin digital 7 como salida
    pinMode (echoPin, INPUT); // Declaramos el pin digital 8 como entrada
    pinMode (LEDR, OUTPUT); // Declaramos el pin digital 10 como salida
    pinMode (LEDV, SALIDA); // Declaramos el pin digital 11 como salida
    digitalWrite (LEDR, LOW); // Definimos la salida digital 10 con un estado bajo
    digitalWrite (LEDV, LOW); // Definimos la salida digital 11 con un estado bajo
 }
void loop ()
  {
    digitalWrite (trigPin, LOW); // Nos aseguramos de que el activador está desactivado
    delayMicroseconds (2); // Para asegurarnos de que el activador está BAJO
    digitalWrite (trigPin, HIGH); // Activamos el pulso de salida
    delayMicroseconds (10); // Esperamos 10µs. El pulso sigue activo este tiempo
    digitalWrite (trigPin, LOW); // Cortamos el pulso y esperamos el ECHO
    duracion = pulseIn (echoPin, HIGH); // pulseIn mide el tiempo que pasa entre que el pin declarado (echoPin) cambia de estado bajo a alto (de 0 a 1)
    distancia = velocidad * duracion / 2; // Dividimos entre 2 porque queremos coger el tiempo de ida (y no ida y vuelta)
                                         // y entre 29,1 porque es 1 dividido entre la velocidad del sonido (1 / (vel sonido) en cm / us
    if (distancia < 20) {
        digitalWrite (LEDR, HIGH); // Si el sensor detecta una distancia menor a 20 cm enciende el LED Rojo
        digitalWrite (LEDV, LOW); // y apaga el verde
    }
    else {// de lo contrario
        digitalWrite (LEDR , BAJO); // apaga el rojo
        digitalWrite (LEDV, ALTO); // enciende el verde
        }
}
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder