LL-DIGIT Led Láser Sensor con Receptor para Arduino

[LL-DIGIT] LL-DIGIT Led Láser Sensor con Receptor para Arduino

https://electrofranko.com/web/image/product.template/783/image_1920?unique=80c7b68

S/ 68.00 68.0 PEN S/ 68.00

S/ 68.00

Not Available For Sale

Esta combinación no existe.

Términos y condiciones
Envío: 2-3 días laborales


Referencia Interna: LL-DIGIT

Sensor Láser con Receptor Digital (LL-DIGIT)

Módulo detector de barrera óptica con emisor LED láser concentrado y salida digital TTL condicional.

El módulo de sensor y receptor láser digital LL-DIGIT es un sistema optoelectrónico de alto rendimiento diseñado para la detección de interrupciones mecánicas a distancias prolongadas. Este dispositivo integra un emisor de diodo láser focalizado de 650 nm y una tarjeta receptora dotada de un fototransistor con circuito de acondicionamiento digital a bordo. Al incidir el haz sobre el receptor, la placa conmuta de forma inmediata entregando un nivel lógico TTL (Alto/Bajo) sin requerir filtrados analógicos complejos. Su diseño compacto lo convierte en la herramienta ideal para la implementación de barreras perimetrales de seguridad, contadores rápidos en líneas de producción y sistemas de posicionamiento robótico inmunes a la dispersión térmica.

Especificaciones Técnicas

Parámetro Detalle
Tensión de AlimentaciónDC 5.0 V Estables
Corriente de Operación< 35 mA (Emisor y Receptor activos)
Longitud de Onda Láser650 nm (Espectro rojo visible)
Tipo de Salida de DatosDigital TTL (Lógica binaria directa)
Distancia Efectiva MáximaHasta 15 metros (Línea de visión alineada)
Ángulo de Recepción±15° Grados de tolerancia óptica
Parámetro Detalle
Tiempo de Respuesta< 2.0 ms (Conmutación de alta velocidad)
Lógica de Salida PredeterminadaSalida en ALTO al incidir / BAJO obstruido
Temperatura de Trabajo-25 °C a +75 °C
Indicadores integradosLED piloto de encendido e indicador de señal
Distribución de PinesVCC, GND, DO (Digital Output)
Tipo de EncapsuladoMódulo PCB con perforaciones de montaje M3

Diagrama de Conexiones y Mapeo de Pines

Diagrama de Conexión LL-DIGIT

Ventajas del Módulo

Inmunidad Óptica Avanzada: La tarjeta receptora incorpora filtros físicos de paso de banda lumínica que reducen drásticamente las lecturas falsas causadas por focos incandescentes o la luz solar indirecta del ambiente.

Focalización de Largo Alcance: A diferencia de los sensores infrarrojos estándar, el haz colimado del láser rojo permite monitorear distancias métricas considerables sin perder potencia ni abrir el haz de cobertura.

Conexión Directa sin Acondicionamiento: Al entregar una señal puramente cuadrada y acondicionada digitalmente, se acopla directamente a pines de entrada genéricos de microcontroladores sin requerir etapas de amplificación operacional externas.

Código Arduino Completo y Optimizado

// Código de Control Avanzado para el Sensor Láser Digital LL-DIGIT // Implementa máquina de estados para monitoreo de barrera óptica y contador histórico const int pinDO = 2; // Pin digital con soporte para interrupciones externas (Receptor DO) // VARIABLES VOLÁTILES OPTIMIZADAS PARA REGISTRO DE EVENTOS ÓPTICOS volatile unsigned long conteoInterrupciones = 0; // Contador de veces que se rompe el haz volatile unsigned long timestampUltimoEvento = 0; // Registro temporal para control de rebote // CONFIGURACIÓN LOGÍSTICA COMPLEMENTARIA (Líneas extendidas adicionadas) const unsigned long umbralAntirrebote = 40; // Tiempo de estabilización en milisegundos int ultimoEstadoEstable = HIGH; // Estado lógico previo registrado unsigned long marcadorTiempoEstado = 0; // Monitoreo de duración del estado actual unsigned long duracionMaximaBloqueo = 0; // Registro del récord de obstrucción temporal bool alarmaBloqueoProlongado = false; // Bandera de seguridad para alerta crítica // Rutina de Servicio de Interrupción (ISR) por Hardware para captura inmediata void ISR_DeteccionLaser() { unsigned long tiempoActual = millis(); // Validación de flancos limpios aislando rebotes eléctricos espurios if (tiempoActual - timestampUltimoEvento > umbralAntirrebote) { conteoInterrupciones++; timestampUltimoEvento = tiempoActual; } } void setup() { Serial.begin(9600); pinMode(pinDO, INPUT); // Configuración del terminal del receptor digital // Enlace de la interrupción en flanco de bajada (FALLING) cuando el haz se corta (Pasa de HIGH a LOW) attachInterrupt(digitalPinToInterrupt(pinDO), ISR_DeteccionLaser, FALLING); marcadorTiempoEstado = millis(); Serial.println("--- Sistema de Monitoreo Láser LL-DIGIT Inicializado ---"); Serial.println("Alineación completada. Monitoreando barrera óptica activa..."); } void loop() { int estadoActual = digitalRead(pinDO); unsigned long tiempoActual = millis(); // EVALUACIÓN DE CAMBIOS DINÁMICOS DE ESTADO EN EL HAZ (Líneas extendidas adicionadas) if (estadoActual != ultimoEstadoEstable) { unsigned long duracionEstadoPrevio = tiempoActual - marcadorTiempoEstado; marcadorTiempoEstado = tiempoActual; // Reinicia el cronómetro del estado if (estadoActual == LOW) { Serial.print("\n[ ALERTA ] ¡Haz Láser Interrumpido! Conteo de Bloqueos: "); Serial.println(conteoInterrupciones); } else { Serial.print("\n[ OK ] Haz Láser Restablecido. El bloqueo duró: "); Serial.print(duracionEstadoPrevio); Serial.println(" ms"); // Registro del récord histórico del tiempo de interrupción if (duracionEstadoPrevio > duracionMaximaBloqueo) { duracionMaximaBloqueo = duracionEstadoPrevio; } alarmaBloqueoProlongado = false; } ultimoEstadoEstable = estadoActual; } // MONITOREO DE SEGURIDAD POR OBSTRUCCIÓN PROLONGADA (Líneas extendidas adicionadas) if (estadoActual == LOW && !alarmaBloqueoProlongado) { unsigned long tiempoObstruido = tiempoActual - marcadorTiempoEstado; if (tiempoObstruido > 4000) { // Alerta crítica si el haz pasa más de 4 segundos cortado Serial.println("\n[ CRÍTICO ] ¡ADVERTENCIA! Obstrucción continua y prolongada en la línea láser."); Serial.print("Tiempo actual retenido: "); Serial.print(tiempoObstruido / 1000); Serial.println(" segundos."); alarmaBloqueoProlongado = true; } } // Reporte periódico automatizado cada 3 segundos si el sistema permanece estable static unsigned long tiempoReporte = 0; if (tiempoActual - tiempoReporte >= 3000) { tiempoReporte = tiempoActual; Serial.print("Estado Actual: "); Serial.print((estadoActual == HIGH) ? "CONECTADO (Haz alineado)" : "INTERRUMPIDO"); Serial.print(" | Eventos Totales: "); Serial.print(conteoInterrupciones); Serial.print(" | Retención Máxima: "); Serial.print(duracionMaximaBloqueo); Serial.println(" ms"); } delay(50); // Estabilización del ciclo principal }