viernes, 29 de enero de 2016

Medidor de rayos ultravioletas con sensor de rayos UV y LCD NOKIA 5110


En la época en la que vivimos, debido al fuerte cambio climático que estamos experimentando, es muy importante que protejamos nuestra piel a la hora de tomar el sol, puesto que cada vez contamos con mayor número de enfermedades derivadas del abuso o de la deficiente protección cuando nos exponemos a las radiaciones ultravioletas procedentes del sol.
En este POST os traigo un excelente sistema que mide la magnitud de los rayos ultravioletas en una escala del 0 al 11. Para ello este sistema tiene conectado un sensor de rayos UV que nos ofrecerá a su salida (OUT) un voltaje variable que depende directamente de la intensidad con la que los rayos ultravioletas, procedentes del sol, inciden sobre el sensor. Este sensor se alimenta con una tensión entre 3-5V y es capaz de detectar rayos UV  con 200-370 nm de longitud de onda y una precisión de ± un índice UV.
Sensor de rayos UV

Además este sistema está dotado de un LCD NOKIA 5110, conectado a Arduino mediante comunicación SPI y programado a través de la librería “LCD5110_Graph.h”, donde se mostrarán los resultados en vivo y en directo. En la siguiente tabla podemos ver el significado de los resultados obtenidos a través del LCD NOKIA 5110.

Tabla del índice UV

Para el funcionamiento real de este sistema de medición de rayos UV, no serían necesarios ni el pulsador y su resistencia PULL-DOWN de 10KΩ, ni el LED UV, puesto que han sido implementados para comprobar que el sistema funciona correctamente, ya que en el interior de una vivienda la radiación UV tiende a cero a no ser que el sol entre a través de una ventana por ejemplo.
El LED UV de 5 mm debido a su escasa potencia, ha sido sobrealimentado a +5V, aunque se puede quemar si lo tenemos encendido mucho tiempo, para que la intensidad de brillo sea capaz de estimular al sensor de rayos UV y como consiguiente subir un nivel el índice UV que se muestra por el LCD NOKIA 5110 (para más detalles consultar el código del sistema).


Lista de Materiales:

·         Arduino UNO Rev.3.

·         Cable USB tipo A-B.

·         Sensor de rayos UV.

·         LCD PCD8544 (LCD NOKIA 5110).

·         LED UV 5mm (Ultravioleta).

·         Pulsador.

·         6 Resistencias de 10KΩ.

·         Protoboard.

·         Cables de conexión.


Código del programa:





Video:

jueves, 28 de enero de 2016

Cómo crear logos con LCD Assistant para visualizarlos con LCD NOKIA 5110


Hoy les voy a enseñar a trabajar con la aplicación para PC “LCD Assistant”, que nos sirve exclusivamente para transformar una imagen monocromática en formato mapa de bits (.bmp), en un archivo (.C) que Arduino es capaz de entender gracias al uso de la librería “LCD5110_Graph.h”, para mostrarnos la imagen a través del LCD NOKIA 5110 que ya hemos utilizado en el POST anterior. Para obtener la aplicación “LCD Assistant” tenéis que abrir el siguiente enlace:



Una vez que tenemos la imagen que deseamos convertir en un logo para el LCD NOKIA 5110, tenemos que seguir una serie de pasos para que se pueda visualizar correctamente en la pantalla:
·         Ejecutamos “Paint”:
o   Editamos la imagen: Cambiar tamaño (en px)à No mantener relación de aspecto à Medida máxima en Horizontal: 81 y en Vertical: 47 .
o   Guardamos la imagen: Archivo à Guardar como à Tipo à Mapa de bits monocromático.

·         Ejecutamos “LCD Assistant”:
o   File à Load Image à Buscamos el archivo de imagen *.bmp creado en Paint.
o   File à Save Output à Guardamos como queramos y le cambiamos la extensión a *.c para que pueda ser reconocido por el IDE de Arduino.

·       Guardamos el archivo *.c creado dentro de la carpeta que contiene al programa de Arduino que va a lanzar la imagen al LCD NOKIA 5110.

·         Ejecutamos el programa de Arduino (*.ino):
o   Cuando se nos abre el IDE , ahora al lado del archivo *.ino nos aparecerá un archivo *.c que es la imagen en cuestión.
o   Añadir al principio del archivo *.C:  #include
o   Tenemos que cambiar : imagen [] = {  à  imagen [] PROGMEM = {

·         Por último solo nos queda subir todo a nuestro Arduino para poder ver a través del LDC NOKIA 5110, si hemos realizado correctamente el logo.

Ventana del LCD Assistant

El programa que contiene este POST simplemente nos mostrará, a través del LCD NOKIA 5110, una serie de mensajes de texto, acompañados por una serie de logotipos que yo he creado con la aplicación LCD Assistant, a partir de imágenes de superhéroes que encontrado por la WEB y que he modificado siguiendo los pasos anteriormente mencionados. A continuación os muestro los logos que nos ha de mostrar el LCD NOKIA 5110.
Logos de Superhéroes en formato *.bmp
 
Como nota puntual os quiero recordar que la librería “LCD5110_Graph.h” es válida tanto para mostrar imágenes como texto (ver el código del programa para más información).


Lista de Materiales:

·         Arduino UNO Rev.3.

·         Cable USB tipo A-B.

·         LCD PCD8544 (LCD NOKIA 5110).

·         5 Resistencias de 10KΩ.

·         Protoboard.

·         Cables de conexión.


Código del programa:




Video:

Cómo utilizar una pantalla LCD de un NOKIA 5110


El LCD Gráfico de Nokia 5110, es una pequeña pantalla gráfica LCD montada sobre un PCB de 45mm x 45mm, que tiene una resolución de 84 x 48 píxeles sobre los que podemos dibujar gráficos y textos. Existen varias librerías para Arduino que funcionan con este LCD, sin embargo, ahora vamos a trabajar con las que nos proporciona “Adafruit” (fabricante de componentes electrónicos para Arduino): “Adafruit_GFX.h” y  “Adafruit_PCD8544.h”. En siguientes POST veremos cómo trabajar con la librería “LCD5110_Graph.h”, puesto que cada una tiene sus ventajas y dependiendo de la aplicación, se puede escoger la que más convenga.

LCD NOKIA 5110

La pantalla utiliza el chip controlador PCD8544 de Philips que fue utilizado en el Nokia 5110, el cual está diseñado para funcionar sólo a 3.3V, teniendo niveles de comunicación de 3.3V en sus pines (RST, CE, DC, Din y Clk), por lo que para conectarlos con Arduino a través de comunicación SPI, se requiere un convertidor de nivel lógico (5V à 3.3V) o resistencias de limitación de corriente de 10kΩ, de lo contrario se podría dañar fácilmente la pantalla.
Con el siguiente programa vamos a ser capaces de visualizar, a través del LCD de NOKIA 5110, una serie de formas y caracteres previamente programados ayudándonos de las librerías que “Adafruit” nos proporciona (para más información revisar el código de la programación).


Lista de Materiales:

·         Arduino UNO Rev.3.

·         Cable USB tipo A-B.

·         LCD PCD8544 (LCD NOKIA 5110).

·         5 Resistencias de 10KΩ.

·         Protoboard.

·         Cables de conexión.


Código del programa:





Video:

lunes, 25 de enero de 2016

Control del brillo de un LED a través de un LDR


Un LDR,  cuyas siglas se originan de su nombre en inglés light-dependent resistor, es un componente electrónico cuya resistencia disminuye con el aumento de intensidad de luz incidente y viceversa, que también es comúnmente conocido como fotorresistor.

LDR o fotorresistor
 
El valor de resistencia eléctrica de un LDR es bajo cuando hay luz incidiendo en él (del orden de 50-100Ω) y muy alto cuando está a oscuras (1 MΩ aproximadamente).
Con este POST vamos a ser capaces de controlar el brillo de un LED dependiendo de la cantidad de luz que incide sobre el LDR, es decir, cuando la luz sea máxima el LED permanece apagado, y a medida que la luz ambiente vaya disminuyendo, el LED irá brillando con mayor intensidad, hasta que en ausencia de luz el brillo del LED sea máximo.
Hay que tener en cuenta que debemos de ajustar el valor máximo que el LDR nos va a ofrecer en su salida (conectada al pin analógico A0) cada vez que ejecutamos el programa, puesto que es directamente proporcional a la cantidad de luz máxima que hay en la habitación donde se encuentre y esta no es la misma en todos los casos. Para ello, a través del  monitor serie del IDE de Arduino, vamos a poder comprobar en cada momento el valor que tiene la salida del LDR y así poder ajustar sus valores propios (máximo y mínimo) mediante programación. Siempre pondremos un valor por debajo del valor máximo que el LDR nos ofrece en su salida.
El valor mínimo que el LDR ofrece en su salida, que se obtiene tapando la célula del LDR y este valor solo es necesario ajustarlo una vez para cada LDR diferente que vayamos a utilizar, puesto que ninguno es igual a otro al 100%.


Lista de Materiales:

·         Arduino UNO Rev.3.

·         Cable USB tipo A-B.

·         LED 5mm (de cualquier color).

·         LDR (fotorresistor).

·         Resistencias de 10KΩ y 220Ω.

·         Protoboard.

·         Cables de conexión.


Código del programa:







Video:

sábado, 23 de enero de 2016

Lámpara de aplausos con sensor de sonido


En este POST vamos a seguir utilizando el RELÉ de 5VDC, pero ahora para encender una bombilla de bajo consumo de 10W/220VAC cuando se produzca la conmutación del RELÉ. Para ocasionar dicha conmutación en las salidas NC (normalmente cerrada) y NA (normalmente abierta) del RELÉ vamos a hacer uso de un módulo sensor de sonido, el cual al dar una palmada cerca de su micrófono integrado va a poner su salida a NIVEL ALTO (+5V) siendo capaz de excitar al RELÉ de 5VDC para que la bombilla se encienda.
Cuando se produce una segunda palmada, va a ocurrir todo lo contrario, es decir, la salida del sensor de sonido permanecerá a NIVEL BAJO y como consiguiente el RELÉ permanecerá en el estado inicial de reposo (sus salidas no conmutan), apagándose la bombilla. Este proceso se va a repetir constantemente cada vez que demos palmadas cerca del sensor de sonido.
Vamos a ver que la sensibilidad del sensor de sonido (sensor que mediante vibraciones producidas en la membrana detecta la cantidad de sonido) es controlada por un potenciómetro multivuelta, es decir, cuando estamos utilizando su salida digital (D0), tendremos que regular el potenciómetro hasta que el LED L2 que trae incorporado en la placa deje de lucir. De otra manera, si estamos utilizando su salida analógica (A0) debemos regular el potenciómetro para programar el valor del sensor a tanteo (entre 0 y 1023) ayudándonos de la visualización de dicho valor a través del monitor serial del IDE de Arduino, aunque esto último no es necesario realizarlo en este POST.

Módulo sensor de sonido

Lista de Materiales:

·         Arduino UNO Rev.3.

·         Cable USB tipo A-B.

·         Módulo relé de 5VDC (SRD-05VDC-SL-C).

·         Módulo sensor de sonido.

·         Casquillo portalámparas de PVC.

·         Bombilla de bajo consumo de 10W/220VAC.

·         Pila de 9V (Para alimentar al Arduino sin necesidad de PC).

·         Protoboard.

·         Cables de conexión.


Código del programa:




Video:

viernes, 22 de enero de 2016

Como activar un ventilador de 12V a través de un relé de 5V


Ahora mismo es un momento muy oportuno para presentaros el módulo relé de 5VDC. Es el complemento ideal para Arduino en tareas que se requieran mayor voltaje de alimentación en corriente continua y en alterna.  Como ejemplos desarrollados en este BLOG tenemos el control de un ventilador de 12VDC, como es el caso de este POST, o el encendido de una bombilla a 220VAC, como veremos en un POST posterior, aunque no descarto utilizar el relé en alguna ocasión más.
Como  ya deberíamos saber, Arduino solamente es capaz de suministrar 5VDC y unos pocos miliamperios (40-50 mA) a través de sus salidas digitales, lo que nos es suficiente para controlar el encendido de un pequeño diodo LED o un zumbador piezoeléctrico como hemos ido viendo en POST anteriores. Aquí es cuando nos surge el problema, por ejemplo, si queremos controlar un motor de 220VAC mediante Arduino, como puede ser el que incorpora una batidora o un secador de pelo (en torno a los 1000W de potencia).
Para ello necesitamos utilizar un relé de 5VDC que Arduino pueda controlar con sus salidas digitales como si de un interruptor se tratase, para manejar en la salida conmutada (normalmente abierta o cerrada) una tensión de 220VAC y 5A que pueda hacer moverse al motor y teniendo en cuenta que la alimentación del circuito de potencia (salida conmutada del relé) no proviene del Arduino, puesto que no podría, sino de una fuente externa como puede ser la que un enchufe de la red eléctrica de una vivienda nos suministra (mucho cuidado a la hora de trabajar con tensiones y corrientes elevadas).
Según la RAE (Real Academia Española) , un relé es un dispositivo electromagnético que, estimulado por una corriente eléctrica muy débil, abre o cierra un circuito en el cual se disipa una potencia mayor que en el circuito estimulador, es decir, que con poca corriente en su entrada, es capaz de conmutar una gran corriente en su salida.
El modelo SRD-05VDC-SL-C que nosotros vamos a utilizar se controla a 5VDC, es decir, cuando le llega una señal a NIVEL ALTO proveniente del Arduino, a su entrada de control, este conmuta sus salidas (NC y NA), pudiendo controlar una corriente máxima de 10A con tensiones de 250VAC o de 30VDC. En nuestro caso se alimentará el ventilador con una fuente de tensión de 12VDC cuando el relé conmute.

Relé SRD-05VDC-SL-C

Con el siguiente programa seremos capaces de encender y apagar un ventilador de 12VDC a través de un relé de 5VDC, cada vez que presionemos un pulsador. A través del monitor serie podremos comprobar el estado tanto del RELÉ como del ventilador en cada momento. Es conveniente echar un pequeño vistazo al programa y a sus comentarios para poder comprender plenamente el funcionamiento del sistema.

Monitor serie
 
Lista de Materiales:

·         Arduino UNO Rev.3.

·         Cable USB tipo A-B.

·         Módulo relé de 5VDC (SRD-05VDC-SL-C).

·         Ventilador de 12VDC 0.15A (C5010B12M).

·         Fuente de tensión de 12VDC.

·         Pulsador.

·         Resistencia de 10KΩ.

·         Protoboard.

·         Cables de conexión.


Código del programa:




Video:

jueves, 21 de enero de 2016

Descifrar código secreto con teclado matricial 4x3


Para este POST vamos a utilizar un teclado matricial 4x3 (0 - 9, *, #). Este teclado cuenta con 7 pines de control, por ejemplo, cuando apretamos la tecla número 1 se conectan los pines 2 y 3, para la tecla 5 se conectan los pines 7 y 1, y así sucesivamente. Por lo tanto los pines correspondientes a las filas del teclado matricial 4x3 son el 2, 7, 6 y 4; y los correspondientes a las columnas el 3, 1 y 5.

Teclado Matricial 4x3

A partir de ahora es cuando se define a que terminales digitales del Arduino van a ir conectados. En este POST los vamos a conectar de la siguiente manera:

FILAS:

1.         Pin 2 del teclado à Pin digital 3 de Arduino.

2.         Pin 7 del teclado à Pin digital 8 de Arduino.

3.         Pin 6 del teclado à Pin digital 7 de Arduino.

4.         Pin 4 del teclado à Pin digital 5 de Arduino.

 COLUMNAS:

1.         Pin 3 del teclado à Pin digital 4 de Arduino.

2.         Pin 1 del teclado à Pin digital 2 de Arduino.

3.         Pin 5 del teclado à Pin digital 6 de Arduino.
                                   
Una vez realizadas las conexiones entre el teclado matricial 4x3 y Arduino, solo tenemos que cargarle el programa e introducir un código secreto mediante el teclado matricial 4x3 (en nuestro caso el código secreto programado es el “1234”),  y después de pulsar los 4 dígitos, si estos coinciden con los 4 dígitos del código secreto  se iluminará el LED verde (sistema desbloqueado); de lo contrario, se encenderá o mantendrá encendido un LED rojo (sistema bloqueado).

Cada vez que introduzcamos un código de 4 dígitos, es necesario resetear el sistema pulsando “#” o “*”, para que el sistema se vuelva a bloquear si lo habíamos desbloqueado o para que nos permita introducir un nuevo código si el sistema sigue bloqueado. A través del puerto serie, podremos ir monitorizando los códigos introducidos, así como los mensajes configurados mediante programación (para más información os recomiendo revisar los comentarios del programa).

Monitor Serie

Me gustaría apuntar, que las resistencias de 10kΩ y la conexión a 5V que podáis encontraros en otros ejemplos de montaje, conectadas a las filas del teclado matricial no son necesarias (Conexión Pull-Up en las entradas), puesto que la librería "keypad", ya configura los terminales en modo "INPUT_PULLUP", facilitando el montaje.



Lista de Materiales:

·         Arduino UNO Rev.3.

·         Cable USB tipo A-B.

·         Teclado matricial 4x3.

·         2 LEDS de 3 mm (Rojo y Verde).

·         2 Resistencias de 220Ω.

·         Protoboard.

·         Cables de conexión.


 Código del pograma:




 Video: