diodo-laser-arduino

Encender un diodo láser con Arduino

¿Qué es un diodo láser?

Un diodo láser es un dispositivo similar a un LED convencional, pero que en lugar de emitir luz convencional emite un haz de láser.

Como sabemos, a diferencia de un haz de luz convencional un haz de láser avanza en línea recta. Si el generador láser fuera perfecto y el haz estuviera en el vacío, la luz seguiría su camino hasta que encontrara un obstáculo.

Sin embargo al avanzar en un medio gaseoso (como el aire) o líquido, el choque con sus moléculas provoca la dispersión del haz haciendo que este se debilite progresivamente.

En el vacío el haz no es visible. Si lo vemos es, precisamente, porque colisiona con las moléculas del gas dispersando parte de la luz. El efecto es mayor, por ejemplo, en humo, lo que produce un efecto espectacular al hacer muy visible el haz.

Por otro lado ningún generador láser es perfecto, y menos aún los diodos baratos que usaremos en nuestros proyecto caseros, por lo que en realidad el haz deja de ser visible a los pocos metros en función de la calidad y la potencia del láser.

Los diodos láser son ampliamente empleados para la fabricación de punteros para presentaciones y efectos de luz en animaciones y espectáculos. También son componentes fundamentales de impresoras láser, escáneres y grabadores/reproductores de CD, DVD y Blu-Ray, entre otros.

En nuestros proyectos de electrónica y Arduino podemos utilizar un láser como dispositivo señalizador, por ejemplo colocándolo en una torreta con un sensor, o en el brazo de un robot bípedo.

Otro proyecto interesante para realizar con un diodo de haz lineal es un escáner 3D. También son frecuentes los proyectos que emplean láser de alta potencia para hacer aplicaciones de grabado en diversos materiales, como madera o plástico.

Y, en general, podemos ingeniárnosla para añadir un láser a casi cualquier robot o invento que se nos ocurra porque, para que negarlo… a todos nos gustan los láser.

Precio

Encontramos diodos láser para añadir a nuestros proyectos en una gran variedad de precios, en función fundamentalmente de su potencia.

Existen unas placas con un diodo láser rojo de 1mW, adecuadas para conectar directamente a Arduino. Son una buena opción para montajes pequeños y rápidos por su sencillez de uso. Podemos encontrar este tipo de placas por 0.55€, en vendedores internacionales de eBay o AliExpress.

arduino-diodo-laser

También podemos comprar directamente el diodo láser. Como decimos, hay un abanico enorme de precios en función de las características del diodo. Los diodos más pequeños, de 1mW (similares a los de la placa anterior) cuestan en torno a 0.15€. Por otro lado, a grandes rasgos y generalizando mucho, los diodos láser de potencia median cuestan en torno a 1€, y los de alta potencia de 10€ en adelante.

arduino-tipos-diodos-laser

Como consejo, no compréis láser caros (digamos más, de 10€) a fabricantes desconocidos y sin tener muy clara la calidad del diodo. Lo normal es que acabéis tirando el dinero.

Otra opción muy socorrida y en ocasiones más barata es comprar/reciclar directamente un puntero láser y aprovechar la electrónica, el cabezal y la carcasa, que integrados en un proyecto quedan muy bien. Podemos encontrar punteros de todos los colores por 1.5€ y punteros verdes realmente potentes e interesantes por 5-7€.

arduino-puntero-laser

La parte negativa de aprovechar un puntero es que para conectarlo tendremos que desmontarlo y soldar terminarles a su electrónica, lo que puede resultar algo más complicado y laborioso, y requerir cierta habilidad.

Por último, remarcar que no os fiéis de las especificaciones de potencia que incorporan en los anuncios los vendedores chinos porque, frecuentemente, no tienen nada que ver con la realidad.

¿Cómo funciona un diodo láser?

De forma resumida, un láser utiliza emisión inducida para generar un haz de luz coherente espacial y temporalmente. La coherencia espacial corresponde con la capacidad de la luz para viajar con poca divergencia, mientras que la coherencia temporal indica la emisión en un rango espectral estrecho.

arduino-laser-luz-coherente

Para conseguir la emisión láser un diodo cuenta con una unión PN de grandes dimensiones que favorece la emisión estimulada. Uno de las caras del cristal semiconductor es casi totalmente reflectante, mientras que la otra deja pasar la luz parcialmente. Esto constituye una guía de ondas que amplifica la luz, que sale por la cara parcialmente reflectante.

Adicionalmente los diodos láser disponen de una lente, o colimador, que rectifica la divergencia de la luz. Unido al hecho de que la luz tiene un alto grado de coherencia espacial, hace que el haz sea capaz de recorrer grandes distancias manteniendo un haz pequeño.

arduino-diodo-laser-funcionamiento

Existen diodos láser de todo tipo de potencia, desde los más pequeños de 1mW empleados en punteros, de 1W utilizados, por ejemplo, para realizar grabados en madera o plástico.

Los diodos de mayor potencia necesitan un disipador de calor para que no se rompan en su funcionamiento. Aún con disipador, normalmente no pueden estar encendidos continuamente, y hay que encenderos y apagarlos en ciclos de unos pocos segundos.

Cuidado con los diodos de alta potencia. Con potencias superiores de 50mW es obligatorio el uso de gafas protectoras. El simple reflejo en cualquier superficie que provoque el contacto con la retina puede causar una pérdida permanente de visión.

Los diodos láser disponen de un alto grado de monocromaticidad, existiendo diodos que emiten luz en diversos colores, rojo, verde, azul y violeta.

En forma resumida, los láser rojos son los más apropiados para generar calor y quemar. Es frecuente encontrar proyectos donde encienden cerillas, explotan globos negros o máquinas grabadoras.

Los verdes son los más visibles, dado que el ojo humano es muy sensible a la luz verde. En los diodos verdes es frecuente ver el propio haz de luz a lo largo su trayectoria.

arduino-laser-tipos-haz

También encontramos diodos láser con distintas formas de haz en función de la óptica que integran. Lo más habitual es un haz de tipo puntero, pero también podemos lineales o de múltiples puntos simultáneos.

Esquema de montaje

En el caso de que empleemos una placa comercial con láser de pequeña potencia integrado el esquema de conexión es muy sencillo. Simplemente alimentamos el módulo conectando Vcc y GND a 5V y GND en Arduino. Por otro lado, conectamos el pin de señal del módulo a cualquier salida digital de Arduino.

arduino-laser-esquema

Por el contrario, en el caso de usar un diodo de mayor potencia, las salidas de Arduino no van a poder proporcional la intensidad suficiente para encender el diodo, dado que la intensidad máxima que pueden proporcionar es de 40mA, siendo recomendable no exceder de 20mA.

En este caso necesitaremos una etapa de amplificación, para lo cuál podemos usar un transistor BJT o untransistor MOSFET. En este ejemplo, usaremos una placa comercial con MOSFET IRF520N, como vimos en esta entrada, para controlar la carga.

arduino-laser-esquema-mosfet

En ambos casos, la conexión vista desde Arduino es la misma. Simplemente empleamos una salida digital para encender el montaje, bien sea el diodo directamente o a través de una etapa de amplificación.

arduino-laser-conexion

En el caso de que el diodo incorpore algún tipo de controlador (driver), o al reaprovechar un puntero conservaremos toda la electrónica asociada al láser y simplemente usaremos la etapa MOSFET como interruptor para encender y apagar el diodo.

Ejemplo de código de montaje

El código necesario es sencillo, ya que para a controlar el diodo únicamente necesitamos emplear una salida digital, tal y como vimos en la entrada salidas digitales.

Por ejemplo, el siguiente código simplemente encendería y apagaría el diodo láser 5 segundos, dejándolo descansar 20 segundos.

const int pin = 9;

void setup() {
  pinMode(pin, OUTPUT);  //definir pin como salida
}
 
void loop(){
  digitalWrite(pin, HIGH);   // poner el Pin en HIGH
  delay(5000);               // esperar 5 segundos
  digitalWrite(pin, LOW);    // poner el Pin en LOW
  delay(20000);               // esperar 20 segundos
}

Descarga el código

Todo el código de esta entrada está disponible para su descarga en Github. github-full