Sensor de obstáculos por infrarrojos. Sensor infrarrojo simple Sensor de detección de obstáculos

Directo al grano, ¡no puede haber otra forma de hablar! lm311 es un comparador (cuesta 9-10 rublos, común). El comparador compara 2 cantidades de entrada. En el diagrama, un valor de entrada es el "voltaje ideal", que se establece mediante una resistencia variable, el segundo valor es el valor que pasa a través del fototransistor hasta la segunda entrada del comparador. Al comparar los valores, el comparador llega a una conclusión. Si el haz LED brilla en el fototransistor (o se muestra desde la superficie), entonces la salida Señal se establece un cero lógico. Si el haz no se muestra y no incide en el fototransistor, entonces el LED se enciende...

Probamos fotodiodos, fototransistores y relés de infrarrojos. Y se llegó a la conclusión. Los mejores sensores de este esquema son: fotodiodos de 5 mm. Y fototransistores de 3 mm. hay muchos varias fotos dispositivos y tal vez usted mismo seleccione algo para usted.
Para principiantes, es preferible fabricarlo en una placa de pruebas.

En lugar de resistencias de 330 ohmios, es posible instalar resistencias de aproximadamente 91-100 ohmios.
El consumo de la tabla es mínimo.
Rango:
Al organizar una fotobarrera, la distancia alcanza el metro, siempre que se ajuste con precisión el LED y el fotodetector.
Al organizar un sensor para determinar una línea u obstáculo, la distancia alcanzó los 2-15 centímetros.

El sensor está fabricado, funciona, la prueba ha pasado, ¡su rendimiento ha sido probado!
Tus preguntas en los comentarios.
El sensor se utilizó junto con un microcontrolador que no tenía un ADC ni un comparador integrados.



Otros artículos de la sección:

Adaptador de comunicación. Diagrama de trabajo. RS232-TTL

En esta revisión revisaremos y probaremos el módulo. sensor de infrarrojos obstáculos marcados MH-B. El módulo está construido sobre un comparador dual LM393.

El pedido se realizó en la tienda online china Aliexpress. El sensor cuesta ~20 rublos:

La mercancía fue entregada a Georgia de forma gratuita por la empresa "4PX Correo de Singapur OM Pro" en el paquete estándar:

La placa del módulo estaba sellada herméticamente en una bolsa antiestática y envuelta en polietileno con granos:

En un lado del tablero hay pines para suministrar energía y retirar señal, y en el lado opuesto se instalan paralelos entre sí un LED infrarrojo y un fotodiodo, los cuales deben dirigirse hacia el obstáculo para determinar su presencia:

Todos los contactos están firmados y será muy fácil conectarse al módulo:

  • VCC se alimenta con tensión de alimentación;
  • pin GND - común;
  • La señal se elimina del pin OUT.

En el otro lado del tablero pone +OUT, pero esto no es del todo cierto, y de esto hablaremos más adelante:

Además del microcircuito y el LED con fotodiodo fabricado a partir de radioelementos, el módulo tiene:

  • LED de indicación de energía;
  • LED de indicación de señal;
  • dos resistencias de extinción de 1 kOhm para LED;
  • Resistencia de extinción de LED infrarrojos de 100 ohmios
  • dos resistencias de polarización de 10 kOhm;
  • Resistencia de ajuste de 10 kOhm
  • dos condensadores de derivación de 0,1 µF;

Como ya se mencionó, el módulo se basa en un comparador dual LM393. Veamos brevemente la documentación de este chip:

La serie LM393 son comparadores de voltaje de precisión duales e independientes capaces de funcionar con suministro simple o dividido. Estos dispositivos están diseñados para proporcionar un funcionamiento común de uno a otro con un modo de energía. Las especificaciones de compensación de voltaje de entrada de hasta 2,0 mV hacen de este dispositivo una excelente opción para muchas aplicaciones de electrónica industrial, automotriz y de consumo. Características del comparador LM393:

  • Amplio rango de potencia corriente continua fuente única (2,0 V a 36 V);
  • Rango de alimentación bipolar de 1,0 V a 18 V CC;
  • Corriente de reposo muy baja, independiente de la tensión de alimentación (0,4 mA);
  • Corriente de polarización de entrada de modo común baja (25 nA);
  • Corriente de polarización de entrada diferencial baja (5 nA);
  • Voltaje de compensación de entrada bajo (5,0 mV máx.);
  • Tensión de entrada diferencial igual a la tensión de alimentación;
  • Voltaje de salida compatible con niveles lógicos DTL, ECL, TTL, MOS y CMOS;
  • Temperatura ambiente de 0°C a 70°C.

El microcircuito tiene ocho pines, dos de los cuales son común (4) y potencia positiva (8), otras dos salidas: 1 - salida del comparador A, 7 - salida del comparador B. Los pines 2 y 3, respectivamente, son el inverso y entrada directa del comparador A, y pines 5 y 6, respectivamente, entradas directa e inversa del comparador B. También les presento el circuito interno de uno de los comparadores:

Como puede verse en el diagrama, la salida del comparador es una cascada basada en un transistor de colector abierto.

Todo el módulo ensamblado no mide más que la longitud de una cerilla y cabe fácilmente en un espacio pequeño:

Pasemos a la comprobación y para ello necesitamos:

  1. conector para conectar a los pines del módulo;
  2. resistencia limitadora de corriente para LED con una resistencia de 220 ohmios;
  3. y por supuesto el módulo en sí

Lo comprobaremos más de una manera sencilla, sin ningún controlador, y todo ello lo conectaremos según el siguiente esquema:

La descripción del módulo dice que funcionará con un voltaje de 3 V a 5 V y lo probaremos con un voltaje de suministro de 5 V. Me gustaría señalar una característica: al principio dije que el pin de salida está etiquetado +OUT y que esto no es del todo cierto. Del circuito interno del comparador en el que está ensamblado el módulo, se desprende claramente que el colector del transistor de salida no está conectado en ninguna parte y no puede haber un "+" en él, aunque se instala una resistencia de polarización de 10 kOhm en el módulo. placa entre la salida y la fuente de alimentación positiva, pero en algunos casos esto puede ser insuficiente, y en este caso resulta que la salida funciona a la inversa: cuando se activa el sensor, la salida será “0” lógico. Esto hay que tenerlo en cuenta a la hora de diseñar algunas manualidades. Al principio, todavía creí en la inscripción en la placa y conecté el LED entre la salida y el cable común, pero el LED comenzó a brillar inmediatamente cuando se aplicó energía sin obstáculos frente al módulo, y durante la operación, cuando apareció un obstáculo. se acercó a 3 cm, salió por el contrario:

Tuve que conectar un LED entre la salida y el positivo de la fuente de alimentación. Recopilamos esquema correcto y aplicar la tensión de alimentación:

Vemos que sin obstáculo el LED no se enciende.

Medimos la corriente y vemos que sin obstáculo en modo reposo, el consumo de corriente es de 36 mA:

Después del disparo, el LED que indica la presencia de una señal se enciende y el consumo de corriente aumenta a 47 mA:

Al cambiar la resistencia de la resistencia de recorte, medí la distancia de respuesta mínima y máxima estable posible del sensor. Cuando el eje de la resistencia de recorte se gira en sentido antihorario, la distancia de respuesta disminuye y la distancia mínima posible fue de 1 cm:

Cuando el eje de la resistencia de recorte se gira en el sentido de las agujas del reloj, la distancia de respuesta del sensor aumenta y la distancia de respuesta máxima confiable del sensor fue de aproximadamente 12 cm.

El dispositivo es un sencillo sensor de obstáculos digital, guiado por radiación infrarroja reflejada. Este sensor fue comprado en Aliexpress. El principio de funcionamiento es similar al esquema que se consideró recientemente.


Sensor de obstáculos infrarrojo comprado en Ali

Diseño y parámetros.

Estructuralmente, el sensor es placa de circuito impreso 31 x 14 mm, la placa tiene un orificio de montaje.


Sensor de obstáculos por infrarrojos - placa de circuito impreso

El peso del sensor es de 2,7 g Para el suministro de energía y la transmisión de información, el sensor tiene un conector de tres clavijas, cuyas clavijas están marcadas.


Conector de conexión de sensores de tres pines
  • El dispositivo funciona con un voltaje constante en el rango de 3,3 a 5 V, el consumo de corriente es de 25 mA con un voltaje de alimentación de 3,3 V y 40 mA con un voltaje de 5 V.

El sensor contiene un LED infrarrojo y un fotodetector. La presencia de un obstáculo está determinada por la intensidad de la radiación infrarroja reflejada. Usando una resistencia de recorte en la placa del sensor, puede configurar la sensibilidad requerida del dispositivo. Según el fabricante, el sensor reacciona a obstáculos en el rango de 2 a 30 cm y el ángulo de visión del sensor es de 35 grados. El autor pudo ajustar el sensor a obstáculos en el rango de 3 a 8 cm, aunque el problema puede ser que solo se probó un sensor y, además, el ángulo de visión del sensor es bastante amplio. Tampoco hay que olvidar que varias superficies reflejar radiación infrarroja De diferentes maneras, una superficie más "brillante" en este rango se detectará desde una distancia mayor que una oscura. En cualquier caso, este sensor es un "arma cuerpo a cuerpo".


Sensor de obstáculos por infrarrojos: tamaño de placa

Cuando aparece un obstáculo en el campo de visión del sensor, se establece una señal lógica cero en su salida de información. Si no hay ningún obstáculo en el campo de visión, entonces la señal de salida es lógica. Hay dos LED en el tablero del sensor, uno es un indicador de encendido y el otro es un indicador de respuesta del sensor, que se enciende cuando aparece un obstáculo en la zona de visibilidad.

Conexión a Arduino

Según el vendedor, el sensor está optimizado para Arduino, teniendo en cuenta la riqueza de dicho dispositivo sencillo, indicación y marcado, uno puede estar fácilmente de acuerdo con esto.


Sensor de obstáculos IR con Arduino

Para ver un ejemplo de cómo interactúa el sensor con la plataforma Arduino, puede tomar un programa que enciende un LED conectado al puerto digital 13 presionando un botón conectado al puerto digital 12 de la placa Arduino UNO. El programa fue tomado del sitio robocraft.ru.

/*
* LED con botón
*/

intledPin = 13; // CONDUJO
int btnPin = 12; // botón
valor int=0;

configuración nula()
{
pinMode(ledPin, SALIDA); // esta es la salida - LED
pinMode(btnPin, ENTRADA); // y este es el botón de entrada
Serie.begin(9600); // escribiremos en el puerto COM
}

bucle vacío()
{
val = digitalRead(btnPin); // descubre el estado del botón
if(val==ALTO) // botón presionado
{
escritura digital (ledPin, ALTA); // enciende el LED
Serial.println("H");
}
else // botón no presionado
{
escritura digital (ledPin, BAJO); //apaga el LED
Serial.println("L");
}
retraso(100);
}

En este caso, en lugar de un botón, se conecta un sensor. Después de cargar el programa en la memoria del microcontrolador, puede experimentar con diferentes modos de funcionamiento del sensor.

Conclusión de compra

En general, un buen sensor económico para sistemas de control táctil y orientación de robots. En este último caso, probablemente podría existir una alternativa o complemento a los finales de carrera que se activan cuando el robot entra en contacto con un obstáculo. Bien vale la pena el dinero. denev

Descripción general del sensor de obstáculos YL-63

El sensor infrarrojo digital para evitar obstáculos YL-63 (o FC-51) (Fig. 1) se utiliza cuando es necesario determinar la presencia de un objeto, pero no es necesario saber la distancia exacta al objeto. El sensor consta de emisor de infrarrojos y un fotodetector. La fuente de infrarrojos emite ondas infrarrojas que se reflejan en un obstáculo y se registran en un fotodetector. El sensor detecta obstáculos dentro de un rango de distancias desde cero hasta un límite establecido. Está construido sobre la base del comparador LM393, que genera voltaje según el principio: se detecta un obstáculo - nivel lógico ALTO, no detectado - nivel lógico BAJO, este estado también se indica mediante el LED rojo ubicado en el sensor. El valor umbral depende de la configuración del sensor y se ajusta mediante un potenciómetro instalado en el módulo. Un LED verde está instalado en el sensor para indicar energía. El sensor se utiliza en robótica para detectar obstáculos al mover robots con ruedas o con orugas.

Características técnicas del sensor de obstáculos YL-63.

  • Modelo: YL-63 (o FC-51)
  • tensión de alimentación: 3,3–5 V
  • tipo de sensor: difusión
  • Comparador: LM393
  • distancia de detección de obstáculos: 2 – 30 cm
  • ángulo efectivo de detección de obstáculos: 35°
  • potenciómetro para cambiar la sensibilidad
  • LED de encendido
  • LED de indicación de funcionamiento
  • dimensiones: 43 x 16 x 7 mm

Conexión de YL-63 a Arduino

El módulo tiene 3 salidas:
  • VCC - fuente de alimentación 3-5 V;
  • GND - tierra;
  • SALIDA - salida digital.
Conectemos el sensor a la placa Arduino (diagrama de conexión en la Fig. 1) y escribamos un boceto simple que señale la presencia de un obstáculo con una señal sonora. Carguemos el boceto del Listado 1 en la placa Arduino y veamos cómo reacciona el sensor ante los obstáculos (ver Fig. 2).

Figura 1. Diagrama de conexión para conectar el sensor YL-63 a la placa Arduino

Carguemos el boceto del Listado 1 en la placa Arduino y veamos cómo reacciona el sensor ante los obstáculos (ver Fig. 3). Listado 1 // Boceto para revisar el sensor de obstáculos YL-63 // http:// http://3d-diy.ru // contacto para conectar la salida del sensor #define PIN_YL63 5 // Datos del sensor Y63 #define barrera digitalRead(PIN_YL63) void setup() ( // inicializando el puerto serie Serial.begin(9600); // configurando el pin de conexión del sensor en INTPUT pinMode(PIN_YL63,INTPUT); ) void loop() ( if (barrera == 1) ( Serial.println ("BARRERA!!!"); // Zona de detección de obstáculos while (barrera == 1) // Esperando salida (;) ) else ( Serial.println("no barrera"); // Fuera de la zona de detección de obstáculos mientras (barrera == 1) // Esperando entrada (;) ) )

Figura 2. Salida del monitor del puerto serie

Usando un potenciómetro, experimentemos configurando el valor umbral.

Ejemplo de uso

Consideremos un ejemplo del uso del sensor YL-63 a bordo de una popular plataforma robótica autopropulsada: un robot móvil en basado en arduino(ver 3).

Figura 3. Plataforma robótica – robot móvil basado en Arduino

Creemos un boceto de un robot atravesando un laberinto. Si, al mover un robot en un laberinto, te quedas en un lado (izquierdo o derecho), definitivamente llegarás a la salida (Fig. 4).

Figura 4. Esquema del robot recorriendo el laberinto.

Instalemos tres sensores de obstáculos en el parachoques delantero del robot, dos miran hacia adelante y uno mira hacia la derecha (ver Fig. 5).

La presencia de dos sensores frontales mejora la calidad de la detección de obstáculos en el frente, ya que un sensor no cubre toda el área frontal.

Figura 5. Conexión de sensores de obstáculos a un robot móvil basado en Arduino.

En el boceto comprobamos el estado de los sensores y, en función de los datos recibidos, se toma una decisión sobre el movimiento. Los sensores están conectados a los pines 2, 12, 13 de Arduino. // Números de los puertos a los que están conectados los sensores de obstáculos. const int Frente1 = 2, Frente2 = 12, Derecha = 13; Creemos un nuevo boceto en el IDE de Arduino, agreguemos el código del Listado 2 y carguemos el boceto en la placa Arduino. Listado 2 // Declarar variables para almacenar el estado de los dos motores. int motor_L1, motor_L2, entrada_L; int motor_R1, motor_R2, entrada_R; // Las constantes de tiempo se utilizan para establecer con precisión el tiempo para girar, girar y avanzar // en milisegundos. constante int tiempo_90 = 390; // Número de puertos a los que están conectados los sensores de obstáculos. const int Frente1 = 2, Frente2 = 12, Derecha = 13; //================================================== ======== void setup() ( // Ingrese los números de pin de Arduino en las variables. // Para los motores izquierdo y derecho de la máquina. setup_motor_system(3, 4, 11, 7, 8, 10); / / pinMode(Front1, INPUT); pinMode(Front2, INPUT); pinMode(Derecha, INPUT); // Los motores están funcionando. void loop() ( boolean d_Front1, d_Front2, d_Right; d_Front1 = digitalRead(Front1); d_Front2 = digitalRead(Front2); d_Right = digitalRead(Derecha); // Si no se activó ningún sensor. if (d_Front1 && d_Front2 && d_Right) ( //Disminuye la velocidad de las ruedas derechas setspeed(255, 15); forward(); //gira a la derecha. else ( //Si uno de los sensores delanteros se activa y el derecho no. if ((! d_Front1) || (!d_Front2) ) ( //Potencia máxima a todas las ruedas. setspeed(255, 255); // girar a la izquierda 90 grados. left(); delay(time_90 / 5); ) else ( // Si el se activa el sensor derecho. // Disminuye la velocidad de las ruedas izquierdas. setspeed(15, 255);//gira a la izquierda ) ) // Función para inicializar el control del motor. void setup_motor_system(int L1, int L2, int iL, int R1, int R2, int iR) ( // Ingrese los números de contactos (pines) de Arduino en las variables. motor_L1 = L1; motor_L2 = L2; input_L = iL; // Para los motores izquierdo y derecho de la máquina. motor_R1; motor_R2 = iR; // Transfiere los puertos especificados al estado de salida de datos. pinMode(motor_L2, OUTPUT); input_R, OUTPUT); // La función establece la velocidad del motor. void setspeed(int LeftSpeed, int RightSpeed) ( // Establece el ancho del flanco positivo de 0 a 255. analogWrite(input_L, LeftSpeed); analogWrite(input_R, RightSpeed); // Cuanto más grande, más intenso funciona el motor. ) // Gire a la izquierda con las ruedas izquierdas bloqueadas. void forward() ( // Las ruedas izquierdas giran hacia adelante. digitalWrite(motor_L1, HIGH); digitalWrite(motor_L2, LOW); // Las ruedas derechas giran hacia adelante. digitalWrite(motor_R1, HIGH); digitalWrite(motor_R2, LOW); ) // Gire a la izquierda. void left() ( // las ruedas izquierdas giran hacia atrás digitalWrite(motor_L1, LOW); digitalWrite(motor_L2, HIGH); // las ruedas derechas giran. digitalWrite(motor_R1, HIGH); digitalWrite(motor_R2, LOW); ) Inicie el robot en el laberinto y observa cómo se mueve en el laberinto.

Preguntas frecuentes Preguntas frecuentes

1. El LED verde no se enciende
  • Compruebe que el sensor esté conectado correctamente.
2. El sensor no detecta un obstáculo a cierta distancia.
  • Usando un potenciómetro, seleccione el umbral de respuesta del sensor.

lo más simple sensor de infrarrojos, que informará de la presencia de un obstáculo, se puede realizar con un solo transistor. Este producto casero probablemente no aplicación práctica, sino más bien teórico, que demuestra el funcionamiento de un sensor de obstáculos por infrarrojos. Por supuesto, nadie nos molesta en hacer una aplicación práctica, por ejemplo, en la construcción de robots simples.

Circuito del sensor de obstáculos por infrarrojos

El funcionamiento del circuito es muy sencillo. Un LED infrarrojo emite radiación infrarroja en un espectro invisible para el ojo humano. Si un objeto aparece en el camino de la radiación, entonces rayos infrarrojos comienzan a reflejarse en el objeto y regresan hacia el LED. Un fotoelemento infrarrojo (fotodiodo IR) sirve como trampa para estos rayos. Cuando los rayos reflejados inciden sobre él, su resistencia disminuye. Como resultado, la corriente en el circuito base del transistor aumenta y el transistor se abre. La carga del transistor es un LED azul que comienza a brillar. Puede conectar un timbre a la salida y escuchar una señal sonora.
Si no hay ningún obstáculo para el sensor, entonces los rayos no se reflejan y el transistor no se abre.
Puede tomar cualquier transistor de la misma estructura, puede usar el KT315 o KT3102 soviético.

Conjunto de sensores

El circuito está ensamblado. montado en la pared. No requiere configuración: funciona de inmediato. Lo alimento con una batería de 3,7 V.


Los robots aspiradores utilizan sensores infrarrojos, varios sistemas control, una imprenta normal definitivamente tendrá un par de estos, o incluso más, etc.