jueves, 5 de diciembre de 2013

Módulo Emisor de Infrarrojos KY-005 - Parte 1

El módulo que os presentamos hoy es un emisor de infrarrojos que tiene la referencia KY-005 dentro del kit de sensores 37 en 1 de la serie Keyes, aunque no lo veréis marcado por ningún sitio.

Los sensores infrarrojos son muy cotidianos en nuestra vida hoy en día, los vemos en muchos aparatos electrónicos como televisiones, DVD’s y muchos otros.

Este módulo implementa básicamente un LED emisor de luz infrarroja de 38KHz, por lo que a la dificultad de no identificar claramente el módulo por ninguna referencia explícita, veréis que no veis nada cuando esté funcionando.

Esto puede incomodar algo, la depuración de nuestro proyecto. A fin de cuenta, si no funciona, será porque mi código está mal, será porque no he conectado algo bien, o será simplemente debido a que el LED está quemado. Uhmmm...

Vamos por parte, si queremos ver algo, tenemos que abrir bien los ojos... si queremos escuchar algo tendremos que poner bien la oreja, .... pues si queremos ver algo en el espectro de infrarrojos, tendremos que usar un sensor de infrarrojos como el KY-022. De otro modo vamos a tener complicado saber si el sistema está emitiendo cuando queremos y donde queremos.



A continuación os mostramos el espectro electromagnético completo, y el pequeño rango de frecuencias donde podemos usar nuestros ojos, fuera de ahí, siempre tendremos que usar detectores específicos para las frecuencias donde estemos trabajando.



Bien, una vez que tenemos claro, el tipo de módulo que tenemos entre manos, ahora la pregunta es: Si no tiene la referencia escrita ¿cómo seré capaz de identificar el KY-005 de entre los diversos módulos Keyes que montan un LED transparente? La respuesta está en los pequeños detalles.

A continuación os dejamos una pequeña guía de como identificar cada uno de ellos.


Bueno, ahora que ya sabéis lo qué es y quién es el módulo emisor de infrarrojos KY-005, vamos a pasar a ver como funciona. Por lo pronto, vamos a imaginarnos que funciona correctamente cada vez que lo alimentamos de forma adecuada, para ello usaremos un LED chivato, que se ilumine simultáneamente con nuestro LED de infrarrojo, cuando presentemos módulo de detección KY-022, os mostraremos como trabajar con ambos módulos de forma conjunta.

Si te interesa, haz clic en Módulo Emisor de Infrarrojos KY-005 - Parte 2.



Sensor de vibración mecánico por muelle




El sensor SW-18015P que hoy vamos a presentar es posiblemente uno de los sensores más baratos que podemos encontrar para detectar fuerzas y vibraciones. No tiene la precisión ni las prestaciones de los modernos MEMs, como puede ser los acelerómetros, pero en su favor podemos decir que comprar 50 de éstos no saldrá por más de 4 € en ebay. Es el sensor de vibración de muelle.

Aunque hay muchos tipos diferentes todos ellos se parecen, así que solo vamos a presentar una serie concreta de ellos que se montan en muchos de los módulos que podremos adquirir para nuestro Arduino: la serie SW-180**

Lo encontraremos en distintos colores y tamaños


distintas configuraciones de terminales y distintas sensibilidades a la vibración, que básicamente vendrán determinadas por el grosor del hilo usado en el muelle interior y de la longitud de la cápsula, que a todos los efectos simula la sensibilidad de una caña de pescar, cuanto más fina y larga, más sensible  (High sensitivity) será a los movimientos.

y hay muchas series diferentes a elegir



Pero si le quitamos la capa protectora que sella el interior y accedemos dentro, todos estos sensores parecerán idénticos:





El funcionamiento es bien sencillo, tan pronto se ejerce una fuerza sobre el dispositivo, los dos terminales, el interior y el muelle exterior, se unen cerrando el circuito, volviendo a su posición de reposo tan pronto la fuerza haya desaparecido, dejando de nuevo los dos terminales sin tocarse en circuito abierto.





Al ser un mecanismo simétrico responde igual a la vibración independientemente de la dirección de la que provenga. Aunque dependiendo del ambiente donde se vaya a usar, algunas veces preferiremos usar la versión sellada "P" y otras no.

En otras configuraciones, podemos encontrarnos que la caña central se sustituye por un tubo exterior, de modo que el circuito se cierra cuando el muelle choca contra la pared interior del tubo



Veamos ahora, la especificación de uno de los más populares el sensor  SW-18015P

  • Voltaje máximo: 12V
  • Corriente máxima : 20 mA
  • Resistencia en reposo (circuito abierto) > 10 Mohm
  • Resistencia de detección (circuito cerrado) < 10 ohm
  • Rango de temperatura de trabajo : desde -40º hasta 80ºC



Como podemos observar, es un sensor simple, barato y que se adapta perfectamente a las características de nuestro Arduino.

En la próxima entrada, veremos como nos podemos encontrar uno de ellos en el sensor Keyes KY-002.

miércoles, 4 de diciembre de 2013

Sensor de interrupción manual KY-004 (Key Switch Module)


Este módulo KY-004 disponible en el  Kit de sensores Keyes 37 en 1 implementa un pequeño pulsador como el que estuvimos presentando en la entrada sobre qué son y cómo funciona un pulsador.

En este caso, el módulo lo que nos hace es implementar el pulsador y una resistencia de protección en una pequeña plaquita. Y aunque a efectos prácticos podría parecernos un módulo un poco útil, éste nos permite evaluar cual sería el posible efecto de un fin de carrera en nuestro proyecto robótico.

Por si no lo sabéis un fin de carrera es un tipo especial de pulsador que lo usaremos en muchísimos sitios, en detección de apertura de puertas, detección de avance de un carro motorizado, impresoras 3D....


El proyecto que presentamos a continuación pretende generar aviso visuales  cada vez que acciones el pulsador, Que sería equivalente a decir, cada vez que el ascensor de nuestro ejemplo anterior, llegue a fin de carrera.


Para su construcción necesitaremos los siguientes elementos:


REFERENCIA
CANTIDAD
FOTO






Módulo de pulsador manual KY-004





1







Protoboard





1







Cables colores






3








Arduino






1


El funcionamiento de un LED,  de las resistencias de protección y de pulsador, lo vimos en entradas anteriores, y el programa está comentado para permitirnos entender las instrucciones que le estamos dando a nuestro microcontrolador.


DIAGRAMA DE CONEXIÓN



FUNCIONAMIENTO

Primero definiremos un pin donde vamos a enclavar el aviso visual, nuestro LED, y el pin desde donde vamos a monitorizar nuestro de llegada (que lo simularemos cuando apretemos el pulsador). Esto lo podemos hacer bien usando variables del tipo entero o bien con la directiva #define (que ahorra memoria en caso de que nuestro sketch muy complejo). En este caso usaremos el pin 13, de nuestra placa que ya monta su propio LED. Así nos ahorramos montar un LED externo y su resistencia limitadora.

Y también definiremos la variable que vamos a usar, para registrar si hemos pulsado el botón (que sería el equivalente en el ejemplo de la cabina elevadora del ejemplo inicial, al detectar que hemos llegado o no al destino (por eso le hemos puesto a la variable el nombre AlarmaDeLlegada).

Luego tendremos que configurar el setup de nuestro proyecto, que en este caso se limitará a definir si los pines que vamos a usar son de entrada o salida. En este ejemplo, el LED de aviso, es un output y como el KY004 es un pulsador que nos manda una señal, este pin será un input (una entrada).

A partir de aquí monitorizaremos la variable de detección de llegada (AlarmaDeLlegada) y si detecta que hemos llegado hará que se encienda nuestro LED, y si no permanecerá apagado.

Si queréis descargaros el sketch y usarlo directamente en vuestra placa, el fichero os lo dejo aquí, aunque es mejor que intentemos siempre copiarlo a mano, de este modo nos vamos familiarizando con las estructuras de programación, sus funciones y los modos más comunes de error que cometeremos a medida que vayamos desarrollando programas más complejos.


Para todos aquellos que no dispongáis de un módulo KY-004, el mismo funcionamiento lo podemos hacer reemplazando el KY004, con un pulsador una resistencia de pull-up.

A fin de cuentas, si le echamos un vistazo rápido a las tripas de nuestro módulo, podremos ver que no es más que un pulsador y una resistencia de pull-up.



Cuando presionamos el botón, la señal que antes estaba conectada a la alimentación (5 voltios en nuestro ejemplo) a través de una resistencia de 10K, pasa a estar conectada a tierra. Y cuando dejamos de presionar, el contacto se pierde y vuelve a situarse a la tensión de alimentación suministrada por el pin central.




El comportamiento esquemático del flujo de corriente lo podemos ver fácilmente en el siguiente esquema donde claramente vemos el efecto del pulsador y de la resistencia de pull-up.




Y si además queremos reemplazar el LED de la placa Arduino con uno exterior, tendremos que montar en la protoboard un LED y una resistencia limitadora de 220ohms.

El esquema que deberéis usar sería uno de los dos de abajo (según si vais o no montar un LED externo). El sketch funcionará igual de bien que si  estuvierais usando un KY-004.




Y ya sabéis, si tenéis alguna sugerencia de mejora o duda, no tenéis más que mandarnos un correo a



e intentaremos responder a vuestra pregunta lo antes que podamos.



Sensor de temperatura y humedad - Keyes KY015 - Parte 1



En esta entrada presentaremos quién es y para qué nos puede servir el módulo Keyes KY015, o KY-015 que vemos en la foto.

Este módulo, que nos lo solemos encontrar dentro del kit de módulos Keyes,  es un sensor de temperatura y humedad, que está  basado en el comportamiento del DHT11 que ya presentamos en una entrada anterior.






El DHT11 es un sensor digital de temperatura y humedad, que está calibrado en fábrica para dar precisiones del orden del 5% en humedad y 2% en temperatura. Trabaja en el rango de 0-50ºC y 20-90% de humedad relativa. La señal se genera en un solo terminal, el mismo que usa para recibir instrucciones,  y esto hace que su integración en cualquier proyecto sea muy sencilla.


Como el circuito de polarización recomendado es


El valor que nos aportará este módulo será exclusivamente reducir el número de terminales de 3 a 4, anulando el PIN 4 que no se conectaba, e incorporando la resistencia de pull-up en el PIN de señal, para evitarnos tener que incorporarlas nosotros al circuito, si solo montásemos el DHT11  de forma individual.

De este modo lo que conseguimos es compactar en un solo módulo lo que de otro modo lo haríamos así


Si releemos lo que hablábamos en la entrada asociada al DHT11 , vimos que también sería recomendable incluir un condensador entre el GND y la alimentación con objeto de filtrar un poco la alimentación. Pues bien, según el módulo que compremos bien de Keyes o bien de otros fabricantes, vemos que algunas versiones sí han incorporado nuestra recomendación, así que siempre que el precio no lo impida, debemos fijarnos en este detalle y seleccionar la versión mejorada. Un par de ejemplos los presentamos a continuación.






Sensor Temperatura y Humedad - DHT11




El DHT11 es un sensor digital de temperatura y humedad, que está calibrado en fábrica para dar precisiones del orden del 5% en humedad y 2% en temperatura, y trabaja en el rango de 0-50ºC y 20-90% de humedad relativa. Por lo que dará cobertura a la mayor parte de nuestras aplicaciones.
La señal se genera en un solo terminal y esto hace que su integración en cualquier proyecto sea de lo más sencilla.

El encapsulado es pequeño como podemos observar en la figura 


y puede llegar a transmitir señales a través del terminal de salida hasta 20 metros.

El circuito de polarización típico para este sensor es el que se presenta a continuación





donde podemos ver que la alimentación puede ser de 3 o de 5 Voltios y que al terminal de la señal le colocamos una resistencia pull-up de 5Kohms para garantizar que las ligeras fluctuaciones en las tensiones de la señal, asociadas a ruidos electrónicos, no afectan a la información que reciba nuestro Arduino. De hecho incluso podríamos meter algún condensador de 100 nF entre la alimentación y el GND con el propósito de filtrar también los ruidos en la misma.

De promedio no suele consumir más que 1mA como podemos ver en su hoja de datos, aunque puede llegar a tener picos de 2.5mA cuando está registrando y transmitiendo la señal. Algo que está muy dentro de las capacidades nominales de nuestros pines digitales del Arduino (40mA máx.)



El esquema de conexionado con nuestra protoboard podría ser algo similar a esto:



Si queremos ver cómo se llegan a entender nuestro Arduino y nuestro sensor DHT11, basta echarle un vistazo a la gráfica que de pulsos que se presenta abajo. Tanto nuestro Arduino como nuestro sensor usan el mismo canal para comunicarse y para transmitir, por lo que se tienen que organizar como lo harían dos trenes pasando por una misma vía.


Primero el Arduino cambia el estado del PIN de detección (en nuestro caso el PIN 8) de Alto a Bajo (o lo que es lo mismo de los 5 Voltios que tenía gracias a nuestra resistencia pull-up de 5K, a 0Voltios que es el nivel que da el PIN GND), y se queda así al menos 18 ms, con objeto de que el sensor DHT11 detecte que algo ha pasado. Transcurridos ese tiempo, y sabiendo que esa señal es la que avisa al DHT11 para que esté atento a las órdenes, el Arduino genera un pulso de 5voltios de 20 a 40 microsegundos y espera a ver qué le contesta el sensor DHT11, manteniéndose en nivel bajo y a la espera de la respuesta del sensor, quien le contesta con otro pulso de 5voltios de 80microsegundos y a partir de ahí le manda la información en formato digital, una vez hecho esto, pone de nuevo la línea en nivel bajo y Arduino entiende “cierra” la comunicación volviendo a poner el canal a 5 voltios como al principio.

martes, 3 de diciembre de 2013

Sensor Magnético - Keyes KY03 - Parte 1










En esta entrada vamos a presentar el segundo sensor magnético de efecto Hall que os podéis encontrar cuando os decidáis a comprar el KIT Keyes 37-in-1 Sensor Module Starter Kit for Arduino  (ver descripción en Sensores Keyes). Se llama KY03 o también KY003, y al igual que nos sucedía con el KY035 (ver entrada KY035), nos lo podemos encontrar en dos configuraciones distintas como se puede observar en las fotos que siguen:



Luego intentaremos localizar la diferencia en los esquemas de las placas, por ahora, vamos a lo que más nos urge, que es ver qué tipo de sensor y cuáles serían sus prestaciones nominales.

Al igual que hicimos en la entrada del KY035 (ver entrada KY035), usaremos una buena lupa para fijarnos en el marcado del componente que lleva montado, aunque como en este caso se ve bastante peor, os lo remarco sobre la siguiente foto (las dimensiones están en mm).



Pues bien aparentemente, y digo aparentemente porque es increíble el número de falsificaciones que existen en el mundo de la electrónica, correspondería a un interruptor de efecto Hall de Alegro (la hoja de datos completa la podemos ver en la hoja de datos del A3141-44E de Allegro.



Este dispositivo, aunque también se base en el efecto Hall, es bien distinto del que vimos en la entrada relacionada con el KY035. En aquel caso era un sensor lineal y generaba una tensión de salida para cada valor de campo magnético medido. En este caso es un simple interruptor que funciona cuando llega a ciertos niveles de intensidad magnética. La diferencia entre el A3141, A3142, A3143 y el A3144, es simplemente los distintos puntos en los que el interruptor se activará.
Veamos sus características operativas fundamentales



Puede funcionar con una fuente no regulada de 4.5V hasta 24V, lo que lo hace entrar dentro de las tensiones de 5V de los pines de nuestro Arduino, con intensidades de corriente de salida del orden de 25mA, lo cual permite que podamos usar esta señal con cualquier circuito digital que pretendamos usar en nuestro proyecto a continuación.

El pinout del dispositivo viene también incluido en la hoja de datos de Allegro.


de modo que con el multímetro en mano, solo necesitamos ir buscando continuidades para identificar, cuál será el pinout del nuestro KY03. Al igual que os recomendaba en la entrada del  KY035, el espíritu del tinkering es descubrir todo por uno mismo, así que antes de ver el esquema que os presento a continuación gracias a los Rayos-X, intentadlo un momento por vosotros mismos.



El LED que implementa la placa nos permite visualmente adivinar cuándo hemos activado el switch y de este modo verificar si nuestro proyecto está dando los resultados previstos.

Ahora solo nos queda empezar a programar nuestro sketch. Eso lo veremos en la próxima entrada.

lunes, 2 de diciembre de 2013

Sensor Magnético - Keyes KY035 - Parte 1


Los sensores de efecto Hall son bastante simples de usar pero hay algunas cosas que quizás no conozcas y que quizás necesites conocer antes de comenzar un nuevo proyecto.

Como ya sabrás por nuestra entrada anterior Sensores Magnéticos, un sensor de efecto Hall es un dispositivo que reacciona a un campo magnético generando una señal eléctrica. Siendo el uso más común de este tipo de sensores el de actuar como un conmutador digital en presencia de un campo magnético lo suficientemente fuerte.

Pero la realidad es que hay muchos tipos diferentes: los hay que producen una señal analógica en función de la fuerza y la polaridad de un imán, los hay de los que conmutan cuando detecta un campo lo suficientemente fuerte, y que no vuelven a abrirse hasta que no se detecta un campo igual de fuerte en sentido contrario,  los hay que solo detectan el campo magnético en un eje, o lo hay que pueden medir los tres componentes del campo que detecte, etc.

Cada sensor de efecto Hall están diseñado para trabajar con una intensidad específica del campo magnético (medido en Gauss), con objeto de que solo se accione cuando la señal es la adecuada. Y digo adecuada, porque tan malo es que la intensidad requerida para activarlo sea muy baja (y entonces podríamos tener mucha contribución de los campos magnéticos circundantes generados) como que sea muy alta, puesto que el resto de la electrónica de nuestro proyecto podría verse influenciada.

La mayoría de los sensores se venden cubriendo una amplia gama de sensibilidades, aunque en esta primera introducción presentaremos uno que se vende en el kit de sensores para Arduino de la serie Sensores Keyes, el sensor KY 035.

Como sucede para el resto de los sensores de la serie Keyes, normalmente los proveedores no suministran demasiada información sobre sus características básicas, sus condiciones de operación ni sus limitaciones. Esto que en principio para cualquiera podría parecer un despropósito para alguno lo considera un reto, por que está en la base del tinkering, el cuestionarse para qué sirve cualquier cosa, encontrarle su utilidad, y darle uso.

Y como es fundamental ser positivo y ver todo de las perspectiva más adecuada, he querido pensar que es así, y no por ser un sensor realmente barato.

Sea como sea, si eres de los que piensan descubrirlo todo por tí mismo, sáltate el resto de la entrada y vete directamente a la fase de montaje y programación que presento en la segunda parte de esta presentación del sensor KY0035.

Si estás aquí, es que entiendo de que además de querer cacharrear con el sensor, te interesa saber algo más de qué es, y quién lo ha construido.

Pues bien, este es el aspecto general del sensor, donde como verás cuesta un poco poder identificarlo fácilmente del resto de sensores de la serie Keyes (las dimensiones están en milímetros).


El acabado no es especialmente bueno, pero si miramos con atención, podemos identificar el sensor que monta: El sensor lineal de efecto Hall de Honeywell referencia SS49E.


Gracias a esto podremos sacar las prestaciones que se le espera al sensor KY035. Según la hoja de datos de Honeywell

y de aquí podemos observar varias cosas:

  1. Es un sensor lineal. Esto es, que va a traducir en tensión las variaciones del campo magnético que perciba
  2. Los voltajes de alimentación con los que va a trabajar estarán en el rango de 2,7 a 6,5 voltios. Esto es, debería sentirse muy cómodo con los 5 voltios de tensión de los pines del Arduino.
  3. El consumo es muy reducido, de menos de 10 mA. Lo cual significa que puede alimentarse directamente de la placa de Arduino que suministra hasta un máximo de 40 mA por PIN.
  4. Trabaja en campos magnéticos en el rango de 650-1000 Gauss.  Esto nos va a permitir trabajar con imanes pequeñitos de uso habitual.

Bien, ahora que sabemos para qué debería servirnos, vamos a ver cómo podríamos conectarlo. Esto normalmente viene claramente identificado en el PinOut del sensor o de la placa, pero como solo veo una S en el pin más a la derecha me surgen dudas de qué conexionado lleva la placa, y para qué se le han creado los PADs de conexión L y R1. Así que, con polímetro en mano, empiezo a buscar continuidad entre cada pin y cada PAD de la PCB.

Si eres un fanático del tinkering, no sigas leyendo hasta que no tengas un esquema propio. Es fácil, usa el multímetro en modo idenficación de continuidad y prueba PAD a PAD con quién está conectado cada cosa.

Pues bien, una vez que hayáis terminado podéis comprobar el resultado con el mío y ver si lo tenéis todo bien identificado. Os dejo una foto hecha con Rayos-X como ayuda.



Con todo ello, parece ahora evidente el esquema:

Pero esto no nos dice demasiado, porque lo que necesitamos saber, es cuál es el PIN de alimentación, cuál el de tierra y cuál el de salida,  y de nuevo, gracias al hecho de haber identificado al proveedor Honeywell, vemos que en la hoja de datos define su diagrama de bloques

y si vamos a la versión del encapsulado que nos afecta, no solo veremos donde está situada el sensor Hall, sino que nos identificará qué es cada PIN concreto.

 o lo que es lo mismo

Algo que parece dar sentido a la "S" (por ser la Señal de Salida) y a la Tierra (GND, por ser el PIN negativo). Por descarte el tercer PIN sería la alimentación Vs.

Esta es la esencia del Tinkering. Ahora ya estamos en disposición de montarlo en una protoboard (si no recuerdas qué era, lee la entrada sobre el protroboard) y empezar a programar algo sencillito, teniendo siempre en mente que el comportamiento nominal previsto para este sensor lineal sería como el que se ilustra en la hoja de datos del componente de Honeywell.