Archivo de la etiqueta: proyectos

sensor de temperatura tmp36 y arduino


En esta nueva entrada vamos a ver como usar un sensor de temperatura analógico (emplea uno de los pines analógicos) modelo TMP36 con nuestra placa Arduino, dicho sensor es de la casa Analog Devices y permite realizar unas medidas de temperatura bastante precisas y a un muy reducido coste.

Foto Sensor TMP 36 GZ

Como podéis ver el sensor empleado es de tipo TO-92 (encapsulado como el DS18B20 o el de algunos transistores). Además se caracteriza por ser un sensor que es muy empleado para realizar medidas de temperatura y es muy sencillo de emplear (no hacen falta librerías para su uso). Es un sensor que se puede alimentar entre un rango de voltaje que va desde los 2.7V hasta los 5.5V, viene calibrado directamente en grados centígrados (ºC), presenta un factor de escala lineal de 10 mV/ºC (esto es la relación entre el cambio en la señal de salida y el cambio en la señal de la medida, es decir, cada 10 mV aumenta 1 ºC). Las características generales son:

Caracteristicas TMP36

Aquí os dejo un enlace para que podáis descargaros el datasheet del sensor de temperatura, el esquema en fritzing de conexionado y el sketch de Arduino: http://www.mediafire.com/?c26yr7fk48my0fw

Os pongo el esquema para la conexión del sensor a Arduino:

Conexion Fritzing TMP36

Aquí tenéis un código de ejemplo, de como obtener tanto el voltaje leído por el sensor, como los grados centígrados y los grados fahrenheit, además de mostrar los valores máximos y mínimos para cada una de las medidas mencionadas.

/* Sketch de ejemplo para testear el sensor de temperatura analógico TMP36
 Escrito por Regata para www.tallerarduino.wordpress.com

 MODO DE CONEXIÓN DEL SENSOR

 Conectamos el pin 1 que corresponde a la alimentación del sensor con los 5V del Arduino
 Conectamos el pin 2 que corresponde al pin de datos del sensor con cualquier pin analógico del Arduino
 Conectamos el pin 3 que corresponde al pin de masa (GND) del sensor con el pin GND del Arduino

*/

int temp = 5;  //Pin analógico A5 del Arduino donde conectaremos el pin de datos del sensor TMP36
float maxC = 0, minC = 100, maxF = 0, minF = 500, maxV = 0, minV = 5;  //Variables para ir comprobando maximos y minimos

void setup()
{
  Serial.begin(9600);  //Iniciamos comunicación serie con el Arduino para ver los resultados del sensor
                        //a través de la consola serie del IDE de Arduino
}

void loop()
{
  float voltaje, gradosC, gradosF;  //Declaramos estas variables tipo float para guardar los valores de lectura
                                    //del sensor, así como las conversiones a realizar para convertir a grados
                                    //centígrados y a grados Fahrenheit
                                    
  voltaje = analogRead(5) * 0.004882814;  //Con esta operación lo que hacemos es convertir el valor que nos devuelve
                                           //el analogRead(5) que va a estar comprendido entre 0 y 1023 a un valor
                                           //comprendido entre los 0.0 y los 5.0 voltios
                                           
  gradosC = (voltaje - 0.5) * 100.0;  //Gracias a esta fórmula que viene en el datasheet del sensor podemos convertir
                                       //el valor del voltaje a grados centigrados
                                       
  gradosF = ((voltaje - 0.5) * 100.0) * (9.0/5.0) + 32.0;  //Gracias a esta fórmula que viene en el datasheet del sensor podemos convertir
                                                           //el valor del voltaje a grados Fahrenheit
                                                           
  //Mostramos mensaje con valores actuales de humedad y temperatura, asi como maximos y minimos de cada uno de ellos
  Serial.print("Medidas actuales\n");
  Serial.print("C: "); 
  Serial.print(gradosC);
  Serial.print("\tF: "); 
  Serial.print(gradosF);
  Serial.print("\tV: "); 
  Serial.print(voltaje);
  //Comprobacion de maximos y minimos de humedad y temperatura
  if (maxC < gradosC)
    maxC = gradosC;
  if (gradosC < minC)
    minC = gradosC;
  if (maxF < gradosF)
    maxF = gradosF;
  if (gradosF < minF)
    minF = gradosF;
  if (maxV < voltaje)
    maxV = voltaje;
  if (voltaje < minV)
    minV = voltaje;
  Serial.print("\nMedidas maximas\n");
  Serial.print("C: "); 
  Serial.print(maxC);
  Serial.print("\tF: "); 
  Serial.print(maxF);
  Serial.print("\tV: "); 
  Serial.print(maxV);
  Serial.print("\nMedidas minimas\n");
  Serial.print("C: "); 
  Serial.print(minC);
  Serial.print("\tF: "); 
  Serial.print(minF);
  Serial.print("\tV: "); 
  Serial.print(minV);
  Serial.print("\n\n");
  delay(2000);  //Usamos un retardo de 2 segundos entre lectura y lectura  
}

La salida que obtenemos a través de la consola serie del IDE de Arduino es la siguiente:

Muestra de datos TMP36

Espero que os sirva de ayuda para vuestros proyectos!!

Si te ha servido de ayuda esta entrada, puedes realizar un donativo para agradecer el tiempo que dedico al blog y ayudar a hacer más entradas.

donativo_paypal

Arduino Tutorials Cap7. Uso de las memorias SD


Muy buenas a todos! Tras un largo letargo de duro trabajo dónde no hemos tenido tiempo de nada, volvemos de nuevo con la serie de video tutoriales. Esta semana publicamos un nuevo capítulo de la serie “Arduino Tutorials”, esta vez se trata del capítulo número 7, el cual nos introduce en el mundo de las SD!

Como siempre todo este tutorial viene guiado con 3 ejemplos para facilitar el fácil entendimiento de los conceptos!

Aquí os dejo el link con todos los archivos necesarios para el desarrollo del tutorial

Sin más, aquí os dejo el video:

PD: perdonad la voz de moco que tengo en el video, pero el costipado no me ha dado respiro alguno! jejejeje

Enjoy!

OSHWDEM en coruña: 17 de noviembre


Este 17 de Noviembre se celebra en La Coruña un evento con filosofía BarCamp sobre electrónica y Open Source Hardware. Donde habrá talleres sobre:

* Arduino: un taller ideal para la gente que comienza en este mundo, con ejemplos de aplicaciones interesantes. Este espacio será gracias a la colaboración de Jose Rodriguez (@josejarj), integrante de Inestable y culpable de la primera Barcamp gallega sobre Arduino.

* Impresoras 3D: taller sobre impresoras 3D, donde encontrarás varias impresoras Reprap funcionando, y además donde podrás aprender a montarte tu propia impresora y como diseñar e imprimir tus propios objetos 3D. Se contará con la presencia de personajes ilustres como Juan González Gómez (@Obijuan_cube) y Juan Manuel Amuedo (@colepower) del proyecto CloneWars.

* RaspberryPi: Podrás encontrar ejemplos de aplicación de la famosa placa de la mano de Julio Galarón (@jgalaron). Además de contar con Simón Pena (@spenap) que enseñará sus proyectos para móviles Nokia.

* Robótica: Con la presencia de varios robots, entre ellos Orugas de Alejandro Taracido (@TCRobotics), Robbit creado por Fidel Fraga (@guafi), Mini Skybot serie de robots creados por Juan González (@Obijuan_cube), Humanoides Robonova-I robots humanoides comerciales programados por Álex Alfaya (@alexalfaya) y Alejandro Valiñas (@sdaf2) y además de poder presentar tu propio robot.

* Música OSHW: espacio destinado a demostrar las capacidades de Arduino para generar sonido e incluso música. Con la colaboración de Xulio Coira (@xulioc), que también presentará el proyecto OpenPipe.

* Montaje de circuitos: se demostrarán las diferentes técnicas necesarias para construir un circuito electrónico desde cero, desde el esquemático, pasando por el diseño de la placa, la construcción de la placa y el montaje final de los componentes. Con la colaboración de Alfredo Prado (@radikalbytes), uno de los culpables de la Castelao Barcamp organizada en Vigo en Septiembre.

Además se sortearán varios premios entre los asistentes a la OSHWDEM de Coruña!!

Podéis encontrar más información en su blog: http://oshwdem.wordpress.com/ y en su twitter: @OSHWDEM

Nos vemos allí, no faltéis!!!

Si te ha servido de ayuda esta entrada, puedes realizar un donativo para agradecer el tiempo que dedico al blog y ayudar a hacer más entradas.

donativo_paypal

Sensor de nivel de liquido y arduino o pinguino pic


Como estoy metido en un proyecto sobre el control de unos depósitos de agua para la furgoneta vivienda de un amigo mio, me parece interesante hablar aquí de los sensores de nivel de liquido.

Los sensores de nivel de liquido de los que vamos a hablar son de este tipo:

La verdad es que son muy fáciles de usar, ya que cuando están activados puentean los dos cables que traen, así que funcionan como un interruptor. Os dejo las características de los mismos:

El ejemplo que hice para probarlo es muy básico y es el mismo tanto para arduino como para pinguino pic, lo único que cambia son los pines a donde he conectado tanto el sensor como el led de alarma (los podéis ver en el código de pinguino pic), os dejo una imagen del esquema de conexionado:

Aquí podéis ver un vídeo del funcionamiento del sensor (en un improvisado depósito de agua realizado con una botella de refresco):

El código para arduino:

/*Prueba sensor de nivel de liquido*/

int sensor=12;  //Indicamos el pin al que tenemos conectado el sensor de nivel de liquido
int led=11;      //Indicamos el pin al que tenemos conectado el led que indica alarma

void setup()
{                
	//Configuramos los pines correspondientes como entradas o salidas
  pinMode(sensor,INPUT);   //sensor de nivel de liquido
  pinMode(led, OUTPUT); //salida led
}

void loop()
{
  if(digitalRead(sensor)==LOW)
    digitalWrite(led,LOW);
  else
    digitalWrite(led,HIGH);
}

El código para pinguino pic:

/*Prueba sensor de nivel de liquido*/

int sensor=0;  //Indicamos el pin al que tenemos conectado el sensor de nivel de liquido
int led=1;      //Indicamos el pin al que tenemos conectado el led que indica alarma

void setup()
{                
	//Configuramos los pines correspondientes como entradas o salidas
  pinMode(sensor,INPUT);   //sensor de nivel de liquido
  pinMode(led, OUTPUT); //salida led
}

void loop()
{
  if(digitalRead(sensor)==LOW)
    digitalWrite(led,LOW);
  else
    digitalWrite(led,HIGH);
}

Espero que os sirva de ayuda!!!

Si te ha servido de ayuda esta entrada, puedes realizar un donativo para agradecer el tiempo que dedico al blog y ayudar a hacer más entradas.

donativo_paypal

Módulo de Relés


Como en un anterior tutorial hemos visto como usar y montar un circuito de relés para tu arduino/pinguino pic, aquí os dejo un sencillo tutorial para poder conectar módulos de relés que ya se compran montados a nuestros proyectos.

El módulo que voy a emplear es uno muy típico que podéis encontrar por ebay a un precio realmente muy atractivo, se trata de este:

Como podéis ver, en este módulo (que es el que he empleado para el tutorial) trae dos entradas para poder activar dos relés, pero podemos encontrar módulos con más relés e incluso de un solo relé, lo que necesitemos para nuestros proyectos.

Os dejo el esquema de conexión y paso a explicar un poco la conexión para que funcione todo correctamente:

Como podéis ver en la foto del módulo observamos que tenemos dos tiras de pines, una que es en la que esta el jumper, que tiene tres pines y podemos seleccionar alimentar todo el módulo de forma conjunta (es decir seleccionar con el jumper jd-vcc y vcc), o bien alimentar de forma independiente tanto optoacopladores como relés (quitando el jumper), yo he usado la forma de alimentar todo de manera conjunta, ya que me parece la forma más sencillo de hacerlo, así que he dejado el jumper uniendo jd-vcc y vcc. Y la otra tira de pines que es donde nos aparece en el siguiente orden: GND IN1 IN2 VCC, aquí es donde unimos la alimentación con nuestro arduino, es decir, GND del módulo con GND del arduino/pinguino pic, VCC del módulo con 5V del arduino/pinguino pic y las entradas IN1 e IN2 (se activan las bobinas de los relés cuando ponemos a GND dichas entradas) conectados a los pines que deseemos de nuestro arduino/pinguino pic, serán los encargados de activar las bobinas de los relés correspondientes. Como veis es una manera muy sencilla de poder emplear relés en nuestros proyectos sin necesidad de construirnos una pcb para realizar dicha tarea.

Por otro lado tenemos los conectores a los que conectaremos los aparatos eléctricos que queramos activar o desactivar mediante nuestro módulos de relés, como podéis observar en la imagen de arriba, tienen tres conectores cada relé, empezando por abajo observamos en este orden: Conector normalmente cerrado del relé 1 (está activo hasta que se activa la bobina del relé mediante la entrada IN1 poniéndola a LOW), el conector común del relé 1 y el conector normalmente abierto del relé 1 (está desactivado hasta que se activa la bobina del relé mediante la entrada IN1 y permanece activado hasta que se ponga a HIGH dicha entrada).

Os dejo un vídeo de funcionamiento utilizando el módulo con un arduino uno y una bombilla a 220V, donde se apaga/enciende con un intervalo de 5 segundos, empleando el ejemplo blink.

Código:

/*
Ejemplo de encendido/apagado de una bombilla de 220V con un módulo de relés
 */

void setup() 
{                
  // Indicamos el pin que va a activar o desactivar la bobina del relé
  pinMode(13, OUTPUT);     
}

void loop() 
{
  //Ojo las bobinas de los relés se activan cuando a las entradas del módulo tienen GND
  digitalWrite(13, HIGH);   // Desactivamos la bobina del relé
  delay(5000);              // Esperamos 5 segundos
  digitalWrite(13, LOW);    // Activamos la bobina del relé
  delay(5000);              // Esperamos 5 segundos
}

Si te ha servido de ayuda esta entrada, puedes realizar un donativo para agradecer el tiempo que dedico al blog y ayudar a hacer más entradas.

donativo_paypal

Si te ha servido de ayuda esta entrada, puedes realizar un donativo para agradecer el tiempo que dedico al blog y ayudar a hacer más entradas.

donativo_paypal