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:
, 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


0