Header image  
Electricidad, Electrónica, automatización industrial, láser, vacío  
line decor
    INICIO  || Traductor de idiomas ||
line decor
 
 
 
 

 
 

Láser Nd:Yag versión 2.0

Láser de neodimio:Yag de fabricación casera y alta potencia.

Cavidad láser:

Problemas con la cavidad específica para unas dimensiones concretas:

Pegamento usado para sellar la barra con los casquillos:

Espejos resonantes:

Primeros pasos y estructura del láser:

Primera luz, y densidad de energía mínimo para la salida láser:

Medidas con el fotodiodo Motorola MRD500, y osciloscopio DSO5200A con un ancho de banda de 200MHz.

Primeras pruebas en materiales:

Otra aplicación interesante:

Mejoras del láser, versión 2.1:

Otros disparos en diferentes materiales a 180 julios en lámpara flash:

Esquema eléctrico:

Esquema adaptado a Arduino:

Medidas de Energía de salida:

Espejo de salida 70% reflectante:

Programa con Arduino UNO:

Programa control láser:

Programa en C++ pasado al Arduino V2.2:

int an0 = 0; // Monitor voltaje condensador
int an1 = 1; // Regulación potenciometro
int an2 = 2; // Regulación ratio de repetición de 0.1 a 10Hz
int dout2 = 2; // K1 Principal
int dout3 = 3; // K2 Refrigeración
int dout4 = 4; // K3 Disparo serie flash
int dout5 = 5; // RS1 Relé solido regulación carga condensador
int dout6 = 6; // Led piloto listo para disparar
int dout11 = 11; // Láser puntero salida, modulación TTL cable a masa apagado.
int din8 = 8; // Paro de Emergencia (NC)
int din9 = 9; // Marcha S1 (NO)
int din10 = 10; // Disparo S2 (NO)

boolean n = false ; //otras variables de control y proceso.
int a = 0;
int b = 0;
unsigned long interval = 0;
unsigned long time = 0;
unsigned long previoustime = 0;
boolean timeok = false;

void setup(){
pinMode(dout2, OUTPUT); // pin 2 digital de salida a K1 relé principal
pinMode(dout3, OUTPUT); // pin 3 digital de salida a K2 refrigeración
pinMode(dout4, OUTPUT); // pin 4 digital de salida a K3 disparo
pinMode(dout5, OUTPUT); // pin 5 digital de salida a RS1 Relé regulación carga condensadores
pinMode(dout6, OUTPUT); // pin 6 digital de salida a led piloto de LISTO
pinMode(dout11, OUTPUT); // pin11 salida analógica PWM para controlar puntero láser por TTL
pinMode(din8, INPUT); // Pin 8 digital, PE (NC)
pinMode(din9, INPUT); // Pin 9 digital, S1 Marcha (NO)
pinMode(din10, INPUT); // Pin 10 digital, S2 Disparo (NO)
}
void loop(){

if(digitalRead(din8) == HIGH ){
digitalWrite(dout3, HIGH); // Si PE cerrado, enchufa el K2 de refrigeración
digitalWrite(dout11, 180); // Enciende el láser puntero para enfocar
if(digitalRead(din9) == HIGH ) {

digitalWrite(dout2, HIGH); // Si S1 cerrado, activa K1 y define las entradas analógicas para comparar luego
a = analogRead (an0); // De 270 a 900 voltios con el ajuste de origen, sin variar resistencias
b = analogRead (an1);
analogWrite(dout11, 50);
if( a < b){ // Si voltaje condensador más pequeño que potenciometro, activa RS1 carga condensador
digitalWrite(dout5, HIGH);
}else{ //Sino desactiva RS1 no carga condensador
digitalWrite(dout5, LOW);
n = true; // Pone la variable "n" en TRUE para disparar el láser.
digitalWrite(dout6, HIGH); // Enciende el led de LISTO
}
/* if(analogRead(an2)*1 > interval + 5 || analogRead(an2)*1 < interval - 5){ interval = analogRead(an2)*1; } // Si hay un desvio de más de 5% entonces reasigna el
// nuevo valor
// INTERVALO lee potenciometro tasa de repetición y multiplica por 10, así como máximo hay 10320 milisegundos = 10.3 segundos por repetición
time = millis(); // Asigna de nuevo el tiempo en time
if( time - previoustime > interval){ // Si tiempo menos el anterior es mayor que el intervalo , entonces escribe de nuevo el tiempo en la variable previa
previoustime = time;
timeok = true; // entonces da permiso para disparo
}else{
previoustime = time;
timeok = false; // Si no , no da permiso
}
*/
if(digitalRead(din10) == HIGH && n == true ){ // && timeok == true
digitalWrite(dout5, LOW); // Asegura que RS1 carga condensador está apagado
analogWrite(dout11, 255); // Apaga puntero láser mientras dispara
delay(15); //Espera un semiciclo de los 50Hz por si estaba conduciendo RS1
digitalWrite(dout4, HIGH); // Disparo K3 relé flash
delay(25); // Espera 20ms para que el relé tenga tiempo de descargar.
digitalWrite(dout4, LOW); // Desactiva K3 relé flash
delay(450); //Delay forzado para no quemar el transformador de microondas, por suprimir y poner la tasa de repetición ajustable.
n = false; // Pone a 0 la condición de disparo listo.
digitalWrite(dout6, LOW); // Desactiva el led de LISTO

timeok = false; // Pone la condición de tiempo en False para empezar a contar de nuevo
analogWrite(dout11, 50); // Enciende de nuevo el láser rojo de enfoque
}
}else{
digitalWrite(dout2, LOW); // Si no activa S1 de marcha, desactiva K1 principal
digitalWrite(dout5, LOW); // Si no activa S1 de marcha, desactiva RS1 de carga condensador
analogWrite(dout11, 180); // Si desactiva S1, atenua el láser puntero
digitalWrite(dout6, LOW); //Desactiva led de listo
digitalWrite(dout4, LOW); //Desactiva por si acaso K3
delay(1000); // Espera 1 segundo para que de tiempo a descargar el condensador para volver a activarlo.
}

}else{
digitalWrite(dout3, LOW); // Sino activa PE, desactiva refrigeración K2
digitalWrite(dout2, LOW); // sino activa PE, desactiva K1 principal
digitalWrite(dout5, LOW); // sino activa PE, por si acaso desactiva RS1, aunque no debería estar activado.
analogWrite(dout11, 255); // Si apreta el PE, apaga también el láser puntero
digitalWrite(dout6, LOW); // Desactiva led de listo
digitalWrite(dout4, LOW); //Desactiva K3 por si acaso
delay(2000); // Pausa para descargar los condensadores y poder volver a iniciar.
}
}

Otros experimentos usando el láser SHG (Generador del segundo harmónico) 532nm:

Otras imágenes con más detalle:

Intervalo de tiempo aproximado invertido en el láser y el auto-aprendizaje:

 

Volver al index