domingo, 28 de abril de 2013

Cinco termómetros a la vez con Arduino

Estaba preparando las prácticas para mis alumnos de física en calor y temperatura y sucede que más de una vez, llegamos al laboratorio de la escuela y hay un solo termómetro (con suerte) otras veces me pasó que el que estaba, tenía el bulbo roto :-(

Hay muy lindos experimentos que serán motivo de otra entrada en mi blog con calor y es necesario contar con varios termómetros que lean en forma simultanea, este es el tema que hoy abordaremos.

Materiales

5 diodos 1N4148 (valen menos de 1$ o podemos sacarlos de alguna plaqueta)

5 resistencias de ¼ W de 2K2 ohms (tres bandas rojas en el código de colores)

Cable de mouse

Spaguetti termocontraible

La placa arduino.

clip_image002

Circuito eléctrico

Esta imagen muestra como ejemplo la conexión de dos de ellas

termometro5sondas

Construcción de las sondas

Es conveniente usar para todas la misma longitud de cable, unos 50 cm esta bastante bien, podemos usar el cable de los Mouse que son muy flexibles, tienen varios cables dentro pero solo usaremos dos de ellos. En uno de los extremos soldamos el diodo cuidando siempre usar los mismos colores para ánodo y cátodo, para luego no confundirnos en la conexión. Una vez soldado le pondremos un trozo de termocontraible para dejarlo prolijo y resguardar las soldaduras.

clip_image006

Las cinco sondas

clip_image008

En la imagen se ve el protoboard con las cinco sondas y ya conectadas a la placa Arduino

Calibrado

Para calibrar es sumamente sencillo, una vez armado el dispositivo como se ve en la imagen anterior cargamos el siguiente código a Arduino
//Código para calibrar las sondas del termómetro
void setup() {
Serial.begin(9600);
analogReference(INTERNAL);// pone como referencia iterna 1.1V
}
void loop() {
Serial.print (" Term 1= ");
Serial.print (analogRead(0));
Serial.print (" Term 2= ");
Serial.print (analogRead(1));
Serial.print (" Term 3= ");
Serial.print (analogRead(2));
Serial.print (" Term 4= ");
Serial.print (analogRead(3));
Serial.print (" Term 5= ");
Serial.println (analogRead(4));
delay(1000);
}

Una vez hecho esto activamos el monitor, nos encontraremos con cinco columnas como estas:

clip_image010

Atamos las 5 sondas con una banda elástica y las colocamos en una copa con hielo y un poco de agua dejando unos minutos para que se estabilicen las lecturas.

clip_image012

Tomamos nota de las lecturas

Por ejemplo en mi caso fueron:



























Numero de sondaLectura a 0°
1632
2630
3629
4628
5641

Ahora hacemos lo mismo pero colocando las sondas en agua hirviendo

clip_image014

Igual que antes tomamos nota, como ejemplo doy los valores míos pero cada uno deberá hacer sus medidas para que los termómetros marquen bien.



























Número de sondaLectura a 100°
1452
2459
3450
4449
5473

Ahora vamos a cargar el código que dará las lecturas de los termómetros que es este:
// termometro múltiple fácil de calibrar
float termometro1= 0;// entrada A0
float termometro2= 0;// entrada A1
float termometro3= 0;// entrada A2
float termometro4= 0;// entrada A3, se pueden poner mas sondas en A4 y 5
float termometro5= 0;
int tiempo=0;
int cnt=0;
float t1=0;
float t2=0;
float t3=0;
float t4=0;
float t5=0;
void setup() {
Serial.begin(9600);
analogReference(INTERNAL);// pone como referencia iterna 1.1V
}
void loop() {
   t1 = map(analogRead(0),452,632,1000,0); // a 0°C la lectrura de analgRead es 140 y a 100°C es 99
   t2 = map(analogRead(1),459,630,1000,0);// calibrar cada sonda por separado y poner los valores correspondientes en map  
   t3 = map(analogRead(2),450,629,1000,0);
   t4 = map(analogRead(3),449,628,1000,0);
   t5 = map(analogRead(4),473,641,1000,0);
   termometro1= t1/10;
    termometro2= t2/10;
     termometro3= t3/10;
      termometro4= t4/10;
       termometro5= t5/10;
   tiempo =millis()/1000;
   // para ver en el monitor
Serial.print (tiempo);
Serial.print (" Term 1= ");  
Serial.print (termometro1,1);
Serial.print ("        Term 2= ");
Serial.print (termometro2,1);
Serial.print ("        Term 3= ");
Serial.print (termometro3,1);
Serial.print ("        Term 4= ");
Serial.print (termometro4,1);
Serial.print ("        Term 5= ");
Serial.println (termometro5,1);
delay(1000);
}

Antes de proceder a cargarlo vamos a colocar los datos de referencia

Donde dice:

t1 = map(analogRead(0),450,631,1000,0);

debemos reemplazar los valores en rojo por las lecturas que tomamos a 0° y a 100° para la sonda 1, asi:

t1 = map(analogRead(0),452,632,1000,0);

Luego igual con la sonda2, 3, 4 y 5

En mi caso quedaría asi:
t1 = map(analogRead(0),452,632,1000,0); // a 0°C la lectrura de analgRead es 140 y a 100°C es 99
t2 = map(analogRead(1),459,630,1000,0);// calibrar cada sonda por separado y poner los valores correspondientes en map
t3 = map(analogRead(2),450,629,1000,0);
t4 = map(analogRead(3),449,628,1000,0);
t5 = map(analogRead(4),473,641,1000,0);

Hecho esto grabamos y levantamos el código a arduino, activamos el monitor y tenemos que tener lectura igual +/- 1° en todas las sondas marcando temperatura ambiente

Así:

con1digito

Listo, ahora podemos usar nuestras sonda por separado, probamos si da el cero con agua con hielo, o la temperatura corporal etc.

Este dispositivo voy a usarlo en unas pruebas interesantes de calor y tempertura en una próxima entrada.

sábado, 16 de febrero de 2013

Brazo universal para soporte de cámara fotográfica

 

Este simple accesorio le permitirá fijar la cámara en cualquier posición,  está realizado en hierro y consta de dos trozos de caño cuadrado de 13 x 13 mm, uno tiene un largo de 30 mm y el otro de 40 mm, el mas corto lleva soldado en un extremo una tuerca de la varilla roscada que se use, en este caso usé  ¼ pulgada de diámetro (6 mm) es justo la medida que las cámaras traen en su base para el soporte del trípode.  El otro extremo se perfora con mecha de 6.5 mm  en forma transversal.

IMG_0314 [800x600]

El caño cuadrado mas largo se perfora en ambos extremos transversalmente, pero ambas perforaciones deben cruzarse en forma transversal

IMG_0319 [800x600] IMG_0318 [800x600]

Se cortan trozos de varilla roscada de 20,30, 35, 55 y 80 mm

Al trozo de 30 mm se le sueldan dos tuercas, una en cada extremo, a una se le deja con la rosca y a la del otro extremo se le pasa una mecha de 6.5 mm

IMG_0320 [800x600]

Solo resta el armado

IMG_0315 [800x600]

La varilla que va en la tuerca que esta soldada al caño cuadrado va al soporte que sujeta el conjunto, se  puede hacer a gusto, tengo dos uno con una abrazadera para sujetarlo al ocular del telescopio o microscopio y otro con un cilindro que se sujeta al pié 

IMG_0322 [800x600]

IMG_0304 [800x600] IMG_0305 [800x600]

lunes, 11 de febrero de 2013

Fotografías de alta velocidad con cámaras comunes y arduino (Segunda parte)

En la primera entrega, estuve haciendo pruebas usando como sensor un micrófono, un determinado ruido hacía disparar el flash, en muchos casos el ruido es demasiado débil y hay que darle mucha sensibilidad al micrófono lo que hace que por cualquier motivo el flash se descargue, el mismo ruido de la cámara cuando dispara. Por ese motivo es necesario usar otro tipo de sensor, por ejemplo el que voy a describir que es una barrera infrarroja.

Como siempre usaremos materiales reciclados para fabricarla. Vamos a utilizar partes de un viejo ratón de PC.

Para este montaje usaremos un diodo infrarrojo y un fotodiodo, hay dos por cada Mouse

plaquetamouse [800x600]

Estan marcados en recuadros rojos las dos barreras, el componente negro es el receptor y el transparente es el emisor


IMG_0289 [800x600]

El de la izquierda es el receptor, el positivo es el del medio y para cada costado hay un fotodiodo ambos estan con el cátodo común, se conecta cualquiera de ellos, el led de la derecha tiene una pata mas alta, va a negativo y la corta a positivo


Estos sensores son como los que tiene el control remoto del TV, la luz no se ve, se enfrentan en un montaje el emisor y el receptor y se alimentan adecuadamente, esto hace que en receptor haya una señal proveniente del transmisor, si algo interrumpe esa señal de iR la señal en el receptor cae, ese efecto se usa para este sensor

clip_image002

Este es el circuito de la barrera iR


clip_image004

Para activar el flash usaremos el mismo circuito que usamos antes con el micrófono


Además de estos sencillos circuitos vamos a agregar un botón, un interruptor que cuando lo pulsemos haga que la barrera empiece a trabajar, porque esto? Este tipo de sensor se usa para fotografiar gotas de agua, cuando la gota pasa por la barrera activa el circuito del flash, como a veces para tomar la fotografía que queremos se hace necesario una determinada cadencia en las gotitas, no podemos estar abriendo y cerrando la válvula, una vez que ajustamos el goteo es mas fácil dejarlo ahí y controlar la barrera, bien este botón cuando es pulsado la activa.

clip_image006

Como se conecta el botón que activa la barrera


barrera [800x600]


En un soporte estan montados enfrentados el led y el fotodiodo


IMG_0295 [800x600]


La plaqueta con todos los componentes instalados sobre la placa arduino. al costado inferior izquierdo se ve un interruptor recuperado de una lectora de CD que oficia de botón de largada


El código para arduino



// Barrera óptica con botón de largada
// 
const int analogInPin = A0;  // Analog input pin conectado al fotodiodo
const int analogOutPin = 13; // Analog output pin that the LED is attached to
int time = 257;          // Tiempo que tarda antes de activar el flash
int sensorValue = 0;        // vale read from the pot
int outputValue = 0;        // value output to the PWM (analog out)
const int buttonPin = 3;     // Pin donde va el botón
// variables will change:
int buttonState = 0;         // lee el estado del botón
void setup() {
  // initialize the pushbutton pin as an input:
  pinMode(buttonPin, INPUT);     
  buttonState = digitalRead(buttonPin);
}
  void loop(){
  //Lee el estado del botón:
  buttonState = digitalRead(buttonPin);
    // Si el boton esta conectado
  if (buttonState == HIGH) {         
  sensorValue = analogRead(analogInPin);  
  if (sensorValue > 1000) // lee el valor del sensor analógico
  {
delay(time);
  digitalWrite(13, HIGH);
delay (100); // tiempo que deja el interruptor del flash activado
digitalWrite(13,LOW);
}  
  else 
  {
  digitalWrite (13, LOW);
  buttonState == LOW;
    }
  }
}

Por último para que no crean que es sacar fotos asi como asi a las gotas, unas imágenes del "estudio", como se disponen los elementos para tomar las fotos:

IMG_0301 [800x600]

Esta es la vista general, en la parte superior puede verse una vía de las usadas para suero que proporciona el goteo, tiene una especie de canilla autofabricada para regular la cadencia y velocidad, inmediatamente abajo la barrera iR, el mismo soporte que la sostiene se usa para la cámara que a su vez tiene un brazo universal que permite posicionar la misma en forma adecuada. Al costado el flash con un brazo flexible y la bandeja, hice varias pruebas y las mejores me han salido con fondo negro.

IMG_0303 [800x600]

El detalle de la barrera óptica

IMG_0302 [800x600]

Cerca la base del flexible del flash se ve la placa arduino y el circuito añadido, la notebook detrás de la pantalla

IMG_0305 [800x600]

Como se que van a preguntar, es un detalle del brazo de movimiento universal para la cámara, ver aquí

Unas fotos con los resultados

gota en equilibrio [800x600]

Gota en equilibrio

gotachocando

Esta es una gota chocando con otra que emerge del líquido

gota emeriendo [800x600]

domingo, 27 de enero de 2013

Fotos de alta velocidad con cámaras comunes y arduino

Esta forma de obtener imágenes como las que se muestran más abajo, se basa en el congelamiento de la imagen por medio del flash y no del obturador de la cámara (efecto estroboscópico).

Para tomar la imagen debemos poner a oscuras la habitación. Si quiere hacer una prueba simple sin ninguna electrónica, haga lo siguiente: consiga un flash cualquiera que pueda dispararlo manualmente (ya explicaré más adelante como fabricarlo a partir de alguna cámara vieja) coloque su cámara para que el obturador quede abierto al menos por 3 segundos (si señor, las cámaras tienen algo más que el automático!! usar la opción Tv -time value-), una vez así, ponga en marcha un ventilador al máximo, apague las luces y dispare la cámara, en el transcurso de los 3 segundos que esté el obturador abierto dispare el flash, ahora vea la foto, encontrará que ha podido fotografiar las paletas del ventilador como si estuviera apagado. Como notará el lector, sin ninguna electrónica se pueden tomar fotos como las de más abajo, pero resulta bastante tedioso, hay que hacer muchas pruebas porque al hacerlo manualmente no siempre el disparo del flash se hace en el momento preciso.

Expondré como se puede sincronizar el disparo del flash usando esa increíble placa que es Arduino y unos pocos componentes electrónicos.

Empezaré por el flash, que como dije antes debe ser uno que pueda accionarse separado de la cámara. Si vamos a comprarlo salen bastante caros, son de este tipo:

clip_image002

Fotografía tomada de www.mercadolibre.com.ar


Como la intensión es no gastar, usaremos el flash de alguna cámara en desuso o compramos una descartable, en mi caso usé el de una vieja Konica C35 que tenía roto el porta pilas.

clip_image005

La pobre ya sufrió la amputación del flash :-)


Hay que desarmarla y separar el flash con su electrónica asociada, tenga mucho cuidado porque dentro hay un capacitor y da tremendos calambrazos.

clip_image007

El cilindro gris al lado de la fresa del dremel es el capacitor que puede darle una descarga


De la electrónica salen varios cables, unos son de la alimentación (van a las pilas) y hay un par de cables que son los que provocan el disparo, hay que descubrir cuales son, de ahí sacaremos los cables que se usarán para dispararlo desde el arduino.

clip_image009

Esta imagen muestra el flash ya instalado en una caja plástica de un viejo cargador, el botón blanco a la derecha se pulsa para cargar el flash, el cable gris es el disparador


clip_image011

El flash manual terminado.


En la siguiente página se muestra como obtenerlo de una cámara desechable

Una vez tenemos el flash, ya podemos hacer la prueba que comenté mas arriba para ir probando.

La placa arduino se usa para disparar el flash en forma automática, esta placa tiene varias entradas y salidas analógicas y digitales, se usa una entrada analógica son un sensor que puede ser un micrófono, una barrera óptica o algún otro y un cambio en el sensor provoca el cambio de estado de una salida digital que dispara el flash.

Los circuitos asociados a la placa son muy simples y con muy pocos componentes

microfono fotos ht

 

relay

El transistor que maneja el relay es cualquiera que sea NPN.


clip_image015

La electrónica dispuesta sobre el Arduino


El código para programar el micro de arduino es este, tomado de la misma página que indiqué antes:

 
/* Arduino High Speed Photography
Micrófono colocado en Analog0 con una resistencia pull-down de 1k
*/
int ledPin = 13;
int time = 2; // Tiempo entre que se detecta el sonido y salta el flash
int sensibility = 40; // Sensibilidad (>37)
void setup()
{
pinMode(ledPin, OUTPUT);
}
void loop()
{
if (analogRead(0) > sensibility)
{
delay(time);
digitalWrite(ledPin, HIGH);
delay(250);
digitalWrite(ledPin, LOW);
delay(1000);
}
}



Variando int time = 2; variamos los milisegundos de retraso en que se disparará el relay, en este caso el valor es 2 milisegundos.

clip_image017

Todo el sistema eléctrico preparado.


El “estudio” necesitaremos montar un pequeño estudio para las distintas fotos,

clip_image019

Puede verse la cámara en un trípode improvisado, el micrófono pegado a la fuente donde fotografiaremos la gota, el flash que no debe ser tan directo, para que la imagen salga mas nítida, hay que ir probando. También puede verse la placa arduino, que en este caso la alimento con la notebook por el USB, pero puede ser alimentada con una batería de 9v, con la compu es mejor para variar los parámetros del código.


Se entiende como es el mecanismo? Con la habitación a oscuras disparamos la cámara con obturador abierto, dejamos caer el objeto en la fuente y el ruido hace que a los x milisegundos se dispare el flash, en la foto veremos congelado solo es instante.

Algunas fotitos

clip_image021

clip_image023

clip_image025

IMG_0120bis [800x600]

Esto es lo que siempre me dicen que hago, esta vez lo hice.... romper los huevos.

IMG_0107 [800x600] (1)

Unas mas

IMG_0122 [800x600]Globos de agua reventados con los dardos de una ballesta


IMG_0124 [800x600]

IMG_0125 [800x600]

IMG_0126 [800x600]

A esta última le dí un milisegundo mas de retardo, la flechita ya casi pasó completa y el agua empieza adesparramarse

Modificación del flash para acortar el tiempo de exposición:

Luego de hacer varias fotos, uno empieza a buscarle fallas y defectos, cuando sacamos fotos de proyectiles, como el caso del dardo de la ballesta, se puede notar que el mismo no sale nítido, sale un tanto “corrido” debido a la velocidad que lleva, si el pulso de iluminación no es lo suficiente corto, la flecha queda registrada en un trayecto que recorre mientras tiene luz, eso provoca este efecto.

clip_image002[1]

Observe que el dardo sale “movido”


Que se puede hacer para que eso mejore? El tiempo y la intensidad de la luz del flash dependen de un capacitor que es el que se descarga y provoca el destello en la lámpara del propio flash,

clip_image004

Esta marcado el capacitor del flash que vamos a cambiar


En la imagen esta marcado el “responsable”, este capacitor tiene un valor de 200 mF 300v y tiene una polaridad, encontrará que de un lado esta marcado el negativo. Lo que haremos será cambiar ese capacitor por uno de menor valor.

Hay en los balastros de las lámparas de bajo consumo unos que nos servirán, podemos usar las que ya están quemadas, normalmente estos capacitares no son los que se dañan

clip_image006

La imagen muestra el capacitor que vamos a usar del balastro, necesitamos 2, no necesariamente deben ser del mismo valor, uno puede ser de 4,7 y el otro de 5,6 MF


Vamos a necesitar dos de estos capacitores, tienen un valor de 4,7 ó 5,6 MF 400v.

Los dos capacitares deben ir en paralelo, es decir, vamos a unir las patas con igual signo, de esta forma se suman las capacidades, finalmente tendremos un capacitor de unos 10 MF 400v.

Antes de desoldar el capacitor original del flash, con el destornillador vamos a puentear los dos terminales del mismo, veremos que hace una chispa, no se asuste, es normal, si no lo hacemos corremos riesgo que nos de un calambrazo. Ahora si, desoldamos y teniendo cuidado con la polaridad soldamos el capacitor de 10MF.

clip_image008

Ya instalados los dos capacitores de balastro en lugar del original


Comprobamos que todo funciona, notaremos que el flash se carga muuuuuyyyyy rápido y cuando lo disparamos ya no tiene la fuerza que tenía, pero igual va a ser suficiente para iluminar la escena.

Cuando probemos veremos que lo que salía movido ya sale mucho mejor

clip_image010

El trapo de piso que sale al costado izquierdo es para limpiar el enchastre


clip_image012

La flechita sabe bien nítida ahora