Proyectos y cursos de electronica

Encuentra informacion de cada componente, esquemas y diagramas de circuitos electronicos, tutoriales, calculadoras, electrisidad...

Robotica y domotica

Encuetra cursos, tutoriales, proyectos y mucho más. Toda la tecnologia para crear fabulosos robot.

software de electrónica

Descarga los mejores programas de electrónica para tu pc y se un profecional.

Mantención de PC

Aprende a reparar los errores mas comunes de un PC. Soluciona las fallas que tengas en tu computadora y aprende mas de informatica...

Descarga libros gratis

Descarga libros de electronica, electricidad, mantencion de pc, codigos web, robotica, domotica, html, c++, c#, java y mucho más...

Please enable / Bitte aktiviere JavaScript!
Veuillez activer / Por favor activa el Javascript![ ? ]

miércoles, 18 de mayo de 2016

MEDIR VIBRACIÓN CON SENSOR SW-18020P EN ARDUINO

¿Que es un sensor de vibración?

Un sensor de vibración es un dispositivo que reacciona ante movimientos bruscos, golpes, o vibraciones, pero no a movimientos constantes o progresivos. En el caso de detectar una vibración genera una señal digital, que cesa al finalizar la vibración.
El principio de funcionamiento es muy sencillo. El dispositivo dispone de un cilindro, con dos contactos. Uno de los contactos está unido a una varilla metálica ubicada en el centro del cilindro. A su alrededor, el otro contacto se arrolla a su alrededor en forma de muelle.
En caso de una vibración, el muelle se deforma por efecto de la inercia, estableciendo contacto en varios puntos con el contacto fijo. De esta forma, se establece una conexión eléctrica entra ambos contactos, que puede ser leida con un microprocesador, como si fuera un pulsador, como vimos en entradas digitales en Arduino.


Esquema eléctrico

El esquema eléctrico que necesitamos es el siguiente.

Montaje

Mientras que el montaje en una protoboard sería el siguiente.

Ejemplo de código

A continuación tenemos un ejemplo de código para realizar la lectura del sensor. Leemos el estado del sensor mediante la entrada digital, usando la resistencia internar de Pull Up. Por otro lado, empleamos el valor shakeTime y la variable estado previo para controlar el cambio de estado, y así detectar la vibración.
Si te ha gustado comparte y comenta

lunes, 16 de mayo de 2016

DETECTAR CAMPOS MAGNÉTICOS CON SENSOR HALL A3144 EN ARDUINO

¿Qué es un sensor Hall?

Un sensor Hall es un dispositivo que nos permite realizar mediciones de campo magnético.
Los sensores Hall son ampliamente utilizados. Por ejemplo, en la industria del automóvil se usan para funciones tan dispares como para el accionamiento de los cinturones de seguridad, o la medición de la posición del árbol de levas. También se usan para medir velocidades de fluidos, detección de metales, factores de inducción, entre otras muchas aplicaciones.
Una ventaja importante de los sensores Hall es que realizan la medición a distancia, sin necesidad de contacto físico. Aunque su alcance es limitado (típicamente pocos centímetros) esto supone que apenas presentan desgaste mecánico. Además son inmunes a ruidos y polvo. Esto los convierte en sensores fiables y duraderos.
En general, encontramos dos tipos de sensores Hall:
  • Analógicos. Generan una salida proporcional a la intensidad del campo magnético. Empleados para medir la intensidad de un campo magnético
  • Digitales. Proporcionan un valor Alto en presencia de campo magnético, y bajo en ausencia del mismo. Por tanto, son empleados para detectar la existencia de campos magnéticos. A su vez se dividen en,
    • Switch, se activan al acercar el polo, y se desactivan al retirar el polo
    • Latch, se activan al acercar un polo, y mantienen su valor hasta que se acerca un polo contrario
En esta entrada emplearemos un sensor Hall A3144, de tipo digital Switch. Podemos emplear este sensor para detectar la presencia de un objeto, al que previamente habremos colocado un pequeño imán, o para fabricar tacómetros (contadores de revoluciones) simplemente acoplando un pequeño imán de neodimio al eje.

¿Cómo funciona un sensor Hall?

Su principio de funcionamiento es el efecto Hall, denominado así por su descubridor Edwin Herbery Hall, en 1849.
Al hacer circular una corriente eléctrica a lo largo de un semiconductor en presencia de un campo magnético, los electrones son desviados por efecto del campo magnético, dando lugar a una tensión perpendicular a la corriente y al campo magnético.

Midiendo esta tensión originada por el efecto Hall podemos conseguir construir sensores y medidores de campos magnéticos.

Esquema eléctrico

El esquema eléctrico que necesitamos es el siguiente.

Por lo que el esquema de conexión con Arduino quedaría así.


El esquema y valores de resistencias mostrador corresponden con el sensor A3144. Otros sensores hall requieren otros esquemas de montaje. Consultar su datasheet correspondiente si vuestro componente es distinto.

Montaje

Mientras que el montaje en una protoboard sería el siguiente.

Ejemplo de código

El código necesario para realizar la lectura es simple. Simplemente leemos el estado el estado del Pin del sensor Hall, tal y como vimos en la entrada entradas digitales en Arduino.
Si te ha gustado comparte y comenta

domingo, 15 de mayo de 2016

MEDIR TEMPERATURA CON TERMISTOR (MF52) EN ARDUINO

¿Qué es un termistor?

Un termistor es un dispositivo cuya resistencia varia al variar la temperatura. Podemos emplear esta variación de la resistencia para realizar una medición de la temperatura ambiente.
Un termistor está formado por un semiconductor como óxido férrico, el óxido de níquel, o el óxido de cobalto. Al aumentar la temperatura, varia la concentración de portadores, por lo que varía la resistencia del dispositivo.
Existen dos tipos de termistores,
  • NTC, tienen una resistencia inferior al aumentar la temperatura
  • PTC, tienen una resistencia superior al aumentar la temperatura (también llamado posistor)
siendo más habituales los termistores de tipo NTC.
Los termistores son dispositivos baratos, pequeños, duraderos, con un rango de medición relativamente amplio, considerablemente precisos y rápidos, y poco susceptibles al ruido. Esto hace que sean ampliamente empleados en la medición de temperatura en climatización, almacenamiento de líquidos, y automoción.
La mayor desventaja de los termistores es su fuerte comportamiento no lineal. Esto no es tan problema, dado que disponemos de modelos matemáticos bien conocidos que permiten calcular con precisión la medición de temperatura. Sin embargo, nos obligan a emplear necesariamente números en coma flotante y cálculos logarítmicos, que deben ser evitados en procesadores dado que ralentizan la ejecución significativamente.

¿Cómo funciona un termistor?

Como hemos comentado, la relación entre temperatura y resistencia en un termistor es fuertemente no lineal. La siguiente gráfica corresponde muestra esta relación para un termistor de la familia MF52 y Rnominal 10 kOhm.

Lógicamente, cada familia y modelo de termistor presenta una gráfica distinta, pero el comportamiento es similar.
Existen varios modelos matemáticos para aproximar el comportamiento de un termistor, más o menos complejos. El modelo de Steinhart-Hart es una aproximación de tercer orden, ampliamente empleado, dado por la siguiente ecuación,

Si queremos incluir la corrección por autocalentamiento, podemos incluir la siguiente ecuación al modelo.

Con el empleo de estas ecuaciones el error debido al modelo matemático es inferior a 0,005ºC, para todo el rango de temperaturas de medición (de -30 a 110 ºC). Por tanto, introduce un error que resulta despreciable frente al resto de factores, como la tolerancia de las resistencias, del propio termistor, o la aritmética de coma flotante.

Esquema eléctrico

El esquema eléctrico sería el siguiente.

Montaje

Por su parte, el montaje eléctrico en una protoboard quedaría de la siguiente manera.

Ejemplos de código

A continuación un ejemplo de código. El siguiente código realiza la lectura de la resistencia del termistor, y emplea la ecuación de Steinhart-Hart para calcular la temperatura y mostrarla por puerto de serie.
Los valores A, B y C empleados están calibrados para una resistencia MF52 10kOhm, y deberán ser cambiados para otro tipo de termistores.
En ocasiones, podemos obtener estos valores directamente del Datasheet del componente. Sin embargo, resulta frecuente que únicamente se proporcione un valor Beta, correspondiente con un modelo de menor precisión que Steinhart-Hart. En estos casos, debemos obtener los valores A, B y C por ajuste de la tabla de resistencias y temperaturas del sensor.

Si te ha gustado comparte y comenta.

sábado, 14 de mayo de 2016

MEDIR NIVEL DE LUZ CON FOTORESISTENCIA LDR EN ARDUINO

En este articulo aprenderemos a medir el nivel de luz, tanto en interiores o exteriores, con la ayuda de Arduino y una fotoresistencia LDR (familia GL55 o similar), usando las entradas analógicas de Arduino.

¿Qué es un fotoresistor LDR?

Un fotoresistor, o LDR (light-dependent resistor) es un dispositivo cuya resistencia varia en función de la luz recibida. Podemos usar esta variación para medir, a través de las entradas analógicas, una estimación del nivel de la luz.
Por tanto, un fotoresistor disminuye su resistencia a medida que aumenta la luz sobre él. Los valores típicos son de 1 Mohm en total oscuridad, a 50-100 Ohm bajo luz brillante.
Por otro lado, la variación de la resistencia es relativamente lenta, de 20 a 100 ms en función del modelo. Esta lentitud hace que no sea posible registrar variaciones rápidas, como las producidas en fuentes de luz artificiales alimentadas por corriente alterna. Este comportamiento puede ser beneficioso, ya que dota al sensor de una gran estabilidad.
Finalmente, los fotoresistores no resultan adecuados para proporcionar una medición de la iluminancia, es decir, para servir como luxómetro Esto es debido a su baja precisión, su fuerte dependencia con la temperatura y, especialmente, a que su distribución espectral no resulta adecuada para la medición de iluminancia.

Por tanto, un LDR es una sensor que resulta adecuado para proporcionar medidas cuantitativas sobre el nivel de luz, tanto en interiores como en exteriores, y reaccionar, por ejemplo, encendiendo una luz, subiendo una persiana, u orientando un robot.

¿Cómo funciona un fotoresistor LDR?

Matemáticamente, la relación entre la iluminancia y la resistencia de una LDR sigue una función potencial.

Siendo R0 la resistencia a una intensidad I0, ambas conocidas.
La constante gamma es la pendiente de la gráfica logarítmica, o la pérdida de resistencia por década. Su valor típicamente 0.5 a 0.8.
Por este motivo, frecuentemente las gráficas que relacionan ambos valores se representan en escalas logarítmicas para ambos ejes. Bajo esta representación, la relación se muestra como una gráfica lineal.

Estos valores pueden ser obtenidos del datasheet del componente. Por ejemplo, para la familia GL55 de fotoresistores son los siguientes:
Modelo Voltaje
(V)
Temperatura
(ºC)
Pico
espectral
(nm)
Resistencia
oscuridad
(KΩ)
Resistencia
luz brillante
(KΩ)
gamma Tiempo
respuesta
(ms)
GL5516 150 -30º+70º 540 5-10 500 0.5 30
GL5528 150 -30º+70º 540 10-20 1000 0.6 25
GL5537-1 150 -30º+70º 540 20-30 2000 0.6 25
GL5537-2 150 -30º+70º 540 30-50 3000 0.7 25
GL5539 150 -30º+70º 540 50-100 5000 0.8 25
GL5549 150 -30º+70º 540 100-200 10000 0.9 25

Sin embargo, siempre existirán pequeñas variaciones entre dispositivos, incluso dentro de la misma familia, debidos a la fabricación del componente.
El comportamiento potencial hace que estas pequeñas diferencias supongan grandes variaciones en la medición, por lo que no es posible, en general, emplear estos valores de forma absoluta sin un proceso de calibración.

Esquema eléctrico

El esquema eléctrico sería el siguiente.

Montaje

Por su parte, el montaje eléctrico en una protoboard quedaría de la siguiente manera.

Ejemplos de código

A continuación tenéis algunos ejemplos de código. En el siguiente, usamos las entradas digitales para hacer parpadear el LED integrado en la placa mientras el LDR recibe luz suficiente.


El siguiente ejemplo emplea una entrada analógica para activar el LED integrado en la placa si supera un cierto umbral (threshold).


El siguiente código proporciona una lectura del nivel de iluminación recibido. Observar que los cálculos se realizan con aritmética de enteros, evitando emplear números de coma flotante, dado que ralentizan mucho la ejecución del código.

Si te ha gustado comparte y comenta

ENCENDER UN LED CON ARDUINO

En este articulo veremos como encender un LED mediante las salidas de Arduino. Para ello, veremos el principio de funcionamiento y el esquema eléctrico necesario.
Por supuesto, también podemos usar el contenido de esta entrada para encender un LED con cualquier otro autómata, o directamente conectándolo a tensión con una fuente de alimentación o batería. El esquema eléctrico es el mismo, sin más que sustituir la salida de Arduino por vuestra fuente de tensión.
En algunos libros o páginas web veréis que, a veces, conectan directamente el LED a una salida digital o analógica de Arduino. Aunque esto funciona (luego veremos porque) es una mala práctica. EN general, los LED deben conectarse siempre a través de una resistencia.
Para entender la importancia y el papel de esta resistencia, y poder calcular su valor, es necesario entender cómo funciona un LED.

Regla menométcnica:
– La patilla “más” larga es la positiva.
– La patilla “menos” larga es la negativa.


¿Por qué funciona conectando a una salida de Arduino directamente?

Como hemos adelantado esto, a veces veréis en tutoriales en Internet que algunos conectan un LED directamente a una salida de Arduino, sin usar una resistencia. Efectivamente, esto funciona y el LED luce sin romperse. ¿Cómo puede ser posible esto?
Esto funciona porque Arduino tiene una limitación de 20mA en sus salidas. Esta limitación hace que el LED no se funda, aunque realmente se está comportando como si fuera un corticircuito. Simplemente Arduino no puede dar más corriente.
No obstante es esto es una práctica totalmente desaconsejada por varios motivos. En primer lugar porque supone forzar de forma innecesaria la salida de Arduino, lo que puede acortar su vida a largo plazo. Por otro porque 20mA es, en general, una corriente demasiado elevada para un Led. Pero sobre todo, porque es una chapuza y una falta de higiene electrónica total.

Calcular el valor de la resistencia

Hemos dicho que lo principal para hacer funcionar un LED es calcular el valor de la resistencia necesaria. Para calcular el valor de tensión necesaria para alimentar un LED necesitamos conectar 3 parámetros
  • La tensión de alimentación (Vcc)
  • La tensión de polarización directa del LED (Vd)
  • La corriente nominal del LED (In)
Calcula el valor de la resistencia es sencillo. Como hemos dicho, la tensión que soporta el LED es la diferencia entre la tensión aplicada y la tensión de polarización directa del LED.
Aplicando la ley de Ohm, con el valor de la intensidad nominal del LED

Por lo que lo que el valor de la resistencia resulta

Dado que las resistencias comerciales tienen valores normalizados, no encontraréis una resistencia con el valor exacto que hayáis calculado. En este caso, elegiremos la resistencia normalizada inmediatamente superior al valor calculado, para garantizar que la corriente es inferior a la nominal.
La tensión de alimentación Vcc es conocida para nosotros. En caso de aplicar una fuente de alimentación o una batería, Vcc es la tensión nominal de la misma. En el caso de una salida digital o analógica de Arduino, Vcc dependerá del modelo que estemos usando (5V o 3.3V) pero también es conocido.
Recordar que aunque uséis una salida analógica PWM la tensión entregada a la carga es siempre Vcc. Consultar la entrada Salidas analógicas PWM en Arduino si tenéis dudas en esto.

Respecto a la tensión de polarización y la corriente nominal dependen de los materiales y constitución interna del diodo. En el caso de diodos LED convencionales de 3mm y 5mm, dependen principalmente del color y luminosidad
No obstante, en la mayoría de las ocasiones el propio vendedor facilita estos valores en el anuncio. En caso de duda deberemos acudir al Datasheet del LED para consultar los valores nominales.
En la siguiente tabla os adjuntamos unos valores generales de la tensión de polarización Vd típica para cada color. También os figura el valor de la resistencia necesaria, en Ohmios, para distintos valores de tensión de alimentación Vcc.
Color Vdd Resistencia (Ohmios)
3.3V 5V 9V 12V
Infrarrojo 1.4V 150 270 510 680
Rojo 1.8V 100 220 470 680
Naranja 2.1V 100 200 470 680
Amarillo 2.2V 100 200 470 680
Verde 3.2V 10 150 330 560
Azul 3.5V 100 330 560
Violeta 3.6V 100 330 560
Blanco 3.8V 100 330 560

Conexión eléctrica

La conexión eléctrica es realmente sencilla. Simplemente ponemos la resistencia previamente calculada en serie con el LED.

El montaje en una protoboard quedaría de la siguiente forma.

Ejemplos de código

A continuación alguno de los códigos para probar a encender LED con nuestros Arduinos, y el montaje indicado. Los códigos son similares a los que hemos visto previamente en las distintas entradas del blog, pero empleando un LED externo en lugar del LED integrado en la placa. Para ello, solo tenemos que sustituir el número de PIN 13, correspondiente con el LED integrado, por el PIN de la salida a la que vamos a emplear.
Así, el primer código sirve para encender y apagar un LED, tal y como vimos en la entrada salidas digitales en Arduino.


El siguiente código emplea las salidas digitales y la comunicación por puerto de serie para hacer parpadear el LED el número de veces que enviemos por el puerto de serie, tal y como vimos en la entrada comunicación por el puerto de serie de Arduino.


Por último, el siguiente código emplea una salida PWM para hacer variar la intensidad del LED, tal y como vimos en la entrada salidas analógicas en Arduino.


Hasta aquí el tutorial de usos de LED. ¡Parece mentira lo que ha dado para escribir un dispositivo tan pequeño! Esperamos que queda claro el uso de los LED con o sin Arduino, y os animamos a usarlos y probarlos en vuestros experimentos.

Si te ha gustado comparte y comenta