Lugar: /Automatización Electrónica / Sensores

Sensores

Contenido:

Aquí se describirán algunos sensores y transductores electrónicos para el desarrollo de sistemas autmáticos con microcontroladores.

Para ello los tutoriales a continuación están pensados para ser una guía rápida para menejarlos. El material descargable disponible aquí contiene mayor información.

Sensor Ultrasónico HC-SR04
Acelerómetro d triaxial MMA7361
Sensor de correinte eléctrica ACS712

Sensor Ultrasónico HC-SR04



Se trata de un módulo que utiliza la ecolocalización para determinar la distancia de separación entre un objeto y el sensor

Su principio de funcionamiento es simple, ya que consiste en generar una señal sonora de ultrasonido a 40Khz, y esperar a que esta señal sonora rebote (eco) en un objeto en frente. Según el tiempo que tarde el sonido en rebotar se puede calcular la distancia entre el sensor y el objeto, por que la velocidad del sonido es un dato conocido.



Este sensor tiene un alcance efectivo de 4m.
Algunas aplicaciones pueden ser:
  • Medidor de distancia.
  • Detector de Objetos hasta 4 m de distancia
  • Tallimetro
  • Determinar dimensiones de un objeto (usando varios sensores a cada lado)
  • Medidor de volumen de líquido en un Tanque
  • Alarma contra robos.
    Las aplicaciones son muchas tan solo hay que usar la imaginación.
Ahora describiremos la forma de trabajar con este sensor a travéves de un microcontrolador. Primero se debe poder comunicarse con el sensor y esto es muy sencillo,veamos como actua el sensor según la hoja de datos: El módulo tiene cuatro pines; VCC, GND,TRIGG, ECHO.
  • Para ordenarle al módulo HC-SR04 que emita una señal sonora y capture el eco se envía una 1 lógico al pin TRIGG (en este caso +5V) por al menos 10us.

  • El módulo enviará automáticamente ondas sonoras a 40 Khz y detectará si hay un retorno o eco de alguna de las señales enviadas.Si hay eco de retorno, el módulo enviará un pulso en nivel alto por el pin ECHO por un tiempo determinado. La duración de ese pulso es igual al tiempo en que el sonido fue enviado y tardo en retornar. Por tanto, podemos saber a que distancia esta el objeto con el que chocó el sonido solamente midiendo la duración del pulso, ya que sin el sonido viaja normalmente a 340 m/s para recorrer una distancia x tardará un tiempo t, en función a la velocidad del sonido.



De hecho la hoja de datos especifíca lo siguiente:

Distancia en cm = (tiempo del pulso en microsegundos) / 58

Distancica en pulgadas = (tiempo del pulso en microsegundos) / 148

==> Bajo este mismo principio compartimos un pequeño programa y un diagrama esquemático para calcular la distancia del primer objeto en frente usando el HC-SR04, la distancia es mostrada a través de una pantalla LCD alfanumérica 2x16. Para este ejemplo se utiliza el timer/counter 0 de un microcontrolador ATmega16 y un oscilador a 1 MHz RC interno.Es conveniente utilizar un timer/counter, por que la ejecución del programa no afecta su conteo y así ganamos precisión. El ejemplo fue codificado en lenguaje C, con GCC-AVR, utilizando el software Codeblocks como IDE. Pero si usas otro IDE, usa los archivos .c y .h para editarlos.

De todos modos dejo el .hex para grabarlo en un microcontrolador y probar el HC-SR04, recuerda funcionará siempre y cuando la frecuencia de trabajo del ATmega este a 1Mhz, si grabas estos valores en los fuses debería funcionar:
lfuse = 0xD1
hfuse = 0x99
Desde avrdude incluye este argumento al comando de grabación:
-U lfuse:w:0xd1:m -U hfuse:w:0x99:m
Todo este material esta en la sección descargables de este sensor. (el archivo .hex esta dentro la carpeta "bin/Release")

Dejo dos imágenes que prueban el funcionamiento del programa.
HC-SR04 detectando a que distancia esta la cámara.


HC-SR04 detectando a que distancia esta el techo.


Contenido descargable


--> Obtenerlo por medio de este sitio web:


Puedes adquirir este módulo por medio de este sitio web (si estás en La Paz - Bolivia).

El precio de comercialización fijado en esta página es de 45 Bs. Contáctate si lo consideras justo, :) será un placer entregártelo personalmente.

Acelerómetro triaxial MMA7361

Acelerometro MMA7361


Se trata de un acelerómetro micromecanizado capaz de determinar la aceleración en sus tres componentes (X, Y , Z) que actúa sobre el sensor.
Además de poder determinar cambios en la aceleración también "detecta" la aceleración de la gravedad en X, Y, Z.
Esta última característica lo hace ideal para aplicaciones como un inclinómetro de precisión por ejemplo, ya que es capaz de determinar el módulo de la aceleración de la gravedad en tres ejes X, Y, Z. Si podemos saber esto, entoces también podemos saber la inclinación en X, Y, Z del sensor en el espacio con respecto al centro de la tierra (que es el centro de gravedad).En la hoja de datos (disponible para su descarga más abajo), encontrarás más información.

Este dispositivo permite dos sensibilidades de medición ±1.5g y ±6g [*1], según la aplicación. Además permite que el dispositivo entre en modo sleep de muy bajo consumo de corriente. Posee funcionalidades como SelfTest que sirve para comprobar la integridad del sensor y correcto pocisionamiento, y 0g-Detect que consta de un pin de salida que sirve para detectar caida libre.

Su pequeño tamaño, bajo consumo, fácil manejo y alta linealidad lo hacen útil para las siguientes aplicaciones:
  • Inclinómetro analógico.
  • Detector de caídas para dispositivos móviles u otros.
  • Alarma antirobos (detectando cambios bruscos de aceleración).
  • En robótica como sensor de movimiento.
  • Para juegos 2D y 3d en mandos móviles o de movimiento limitado.
  • Para muestreo de cambios de posición o inclinación.

  • Hay muchas otras más pero eso lo dejo a su creatividad.
*Algo importante a tener en cuenta es que este sensor es sensible a las descargas electrostáticas, según la hoja de datos un pulso de más de 2KV puede dañar al sensor [*2].

Determinar la aceleración del MMA7361


Es importante primero saber hacia donde apuntan X, Y, Z para saber el sentido de la aceleración.

Dinámica de aceleración del acelerómetro MMA7361.


Del gráfico, si el sensor por ejemplo estaría boca abajo, la aceleracón en el eje Z sería completamente negativa.

El siguiente gráfico ilustra otras inclinaciones:
Acelerómetro MMA7361 con distintas inclinaciones ("Up" es la cara superior, la marca indica el pin 1).

Ahora que sabemos hacia donde apunta cada eje del sensor, si el sensor esta inmóvil podremos saber la inclinación en cada eje y también si es sometido a una aceleración, cual es el sentido de dicha aceleración.
El MMA7361 tiene un pin correspondiente a cada eje, en los cuales hay un voltaje de CC (corriente continua) entre 0V y VDD (VDD = 3.3 V), que varía según la aceleración en el eje respectivo. Como este sensor también determina aceleraciones en sentido inverso, la relación de aceleración es la siguiente, donde la gravedad de la tierra equivale a 1g:
Aceleración (g) Voltaje en el pin (V) Modo
0 1.65 1.5g
1 2.45
-1 0.85
0 1.65 6g
1 1.856
-1 1.446


En resumen, si la aceleración es positiva el voltaje de salida en cada pin estará por encima de VDD/2 (1.65V) y si es negativa por debajo de VDD/2. Según la hoja de datos en modo 1.5g la sensibilidad es de 800 mv/g, y en 6g de 206 mV/g.

Con todo lo anterior solo nos faltaría indicar que el sensor actuará normalmente siempre y cuando se envía un 0 lógico al pin sleep (el pin sleep es de lógica negativa por tanto, VDD = 0 lógico). Y al activar sleep el sensor no envía ninguna respuesta y consume aproximadamente 3 uA.

Como el sensor envía señales analógicas en sus pines X, Y, Z. necesitaremos de un módulo de conversión analógico-digital (ADC) para usarlo con un microcontrolador. En este caso, usaremos un ATmega16 que tiene 7 pines en el puerto A para conversión A/D, mas información del ADC en microcontroladores AVR en este enlace.

==> El siguiente ejemplo es una simple aplicación que tiene como objetivo probar el funcionamiento del sensor MMA7361, mostrando los valores en unidades g (aceleración de la gravedad de la tierra) de cada eje, en otras palabras muestra la inclinación de cada eje. El ejemplo incluye un pequeño archivo de cabecera .h para el manejo del sensor y del ADC del microcontrolador.

La siguientes imágenes muestran el funcionamiento del sensor y las salidas en una pantalla LCD alfanumérica 2x16, también una imagen de un LED conectado al pin 0g-detect encendiendose al detectar el sensor en caida libre. El código fuente esta contenido en el fichero descargable .zip.
Funcionamiento del Acelerómetro MMA7361 con distintas inclinaciones y detección de caída libre.

Contenido descargable


Notas
[*1].- Con "6g" ampliamos la escala pero perdemos precisión. (<-- volver a la lectura)
[*2].- Para que un ser humano sienta una descarga electrostática en su cuerpo, el voltaje debe ser de al menos ±4KV.(<-- volver a la lectura)


--> Obtenerlo por medio de este sitio web:
El módulo en oferta consta de un sensor MMA7361 en una puqeña placa que incluye regulación de 5V a 3.3V lo que permite hacer funcionar el sensor con +5V, led indicador y otros componentes que protegen y mejoran linealidad del sensor. Es el mismo que aparece en las fotos de este artículo.

El precio de comercialización fijado en esta página es de 70 Bs. Contáctate si lo consideras justo, :) será un placer entregártelo personalmente.

Sensor de corriente eléctrica ACS712

Sensor de corriente electrica ACS712
Sensor ACS712 x30

Este es un sensor de corriente eléctrica de bajo ruido que presenta una salida de voltaje analógico de 0V a VCC proporcional a la corriente eléctrica que circula por un conductor cerca de las terminales que posee. Pemite una medición en el rango de ±30 Amperios, la polaridad depende del sentido de la corriente con respecto a las terminales que posee. Gracias al efecto Hall, el chip y el conductor están aislados eéctricamente y permite mediciones en AC o DC.

Es de fácil manejo y de gran utilidad en aplicaciones que necesiten medir o detectar el flujo de corriente eléctrica, es muy amigable para su uso con sistemas basados en microcontroladores por que se suministra con +5V y sus salidas análogicas estan en ese rango. Tiene un comportamiento lineal en los rangos de ±30 A, ±20 A y ±5 A dependiendo del rango de trabajo del chip.

    Mencionaremos algunas aplicaciones para este dispositivo.

  • Sistemas de medición de corriente eléctrica.
  • Detección de flujo de corriente eléctrica.
  • Detección de sobre corriente, para protección a equipos y conductores eléctricos.
  • Como amperímetro.
  • Para sistemas de muestreo y cuantización del flujo eléctrico.

Funcionamiento


Basa su funcionamiento en un principio natural de la corriente eléctrica que circula por un conductor. Este es que cuando existe flujo de corriente eléctrica a través de un conductor, se libera una campo magético alrededor del conductor proporcional a la cantidad de corriente que circula por el conductor.

Por lo que este sensor no necesita hacer contacto eléctrico con el conductor ya que se "dedica" a medir el campo magnético cerca de un conductor que independientemente del tipo de corriente que circule (Alterna AC o Directa DC) será proporcional a la cantidad de corriente eléctrica que circule en el conductor.

Esa característica nos ahorra sistemas como opto-aisladores u otros costosos sistemas de aislamiento eléctrico, en el caso de que necesitemos aislamiento. Además este sensor es bidirecional, es decir, permite medir corrientes en sentido directo (+) o en sentido contrario (-), precisamente este sentido se determina con respecto a los pines 1 , 2 y 3,4 del sensor que son los que reciben el campo magnético.

Sentido corriente ACS712

De la figura anterior si la corriente fluye en sentido de la flecha verde entonces se considera en sentido (+) o dirtecto, por tanto, es importante tener este "detalle" en ceunta en las aplicaciones. Por supuesto, a la hora de medir corriente alterna el sentido de la corriente cambiará continuamente en este y caso las lecturas se alternarán entre (+) y (-).

Existen tres ACS712 distintos, esta distinción tiene que ver con el rango de corriente que puede medir sin enviar falsas lecturas. Estos son el ACS712x05B, ACS712x20A y ACS712x30A, que tienen un rango de mediciones de ±5 Amperios, ±20 Amperios y ±30 Amperios respectivamente. Según la hoja de datos de este sensor tiene una sensibilidad de acuerdo a su modelo mostrada en la siguiente tabla:

Sensibilidad (mV/A)
ACS712x05B ACS712x20A ACS712x30A
185 100 66
Ruido (mV)
21 11 7

*El ACS712 otorga en el pin de salida out un voltaje mayor a VCC/2 si el sentido de la corriente es (+), y un voltaje menor a VCC/2 si el sentido de la corriente en el conductor es (-). Entonces, si el voltaje en la salida es exactamente VCC/2 significa que no hay flujo de corriente.

Bajo este principio para determinar la corriente que circula en el conductor objetivo solo hará falta conectar el pin del sensor a por ejemplo un conversor analógico-digital de un microcontrolador o circuito ADC, y aplicar la fórmula:

Corriente eléctrica en amperios = (Voltaje de salida - Vcc/2) / Sensibilidad

La forma de conectar un conductor es similar a la que se usa para un amperímetro , es necesario conectar las terminales del conductor en los conectores del sensor y ajustarlas con los tornillos, similar al de la figura siguiente. De esta manera el sensor podrá trabajar apropiademente.
Sensor de corriente electrica ACS712
Una forma de conectar un conductor eléctrico a un sensor ACS712.
En la figura se ve que el conductor esta conectado en sentido contrario a la orientación del sensor y al flujo de corriente. Por ello si se tratase de corriente directa la lectura del flujo de corriente eléctrica sería (-). Pero, el conductor ilustrado arriba esta conectado a un voltaje alterno, es el conductor de un foco de 100W. Por eso, no importa el sentido de la corriente y la orientación del sensor ya que la corriente se alternará entre positiva y negativa.

==> El ejemplo descargable se hizo para mostrar las lecturas de un sensor ACS712x30A de la corriente eléctrica en un conductor y mostrarlas en amperios en una pantalla LCD 2x16 alfanumérica. Esta implementado usando un microcontrolador ATMEGA16 usando el canal ADC0. Aunque dada la simplicidad del manejo del sensor este mismo código puede ser fácilmente adaptado para otro tipo de microcontrolador o placa de desarrollo como ARDUINO. Algo que contiene este código es que el microcontrolador toma 7 lecturas del canal ADC0 al que esta conectado el pin de salida del sensor, y saca el promedio de estas lecturas para mostrarlos en la LCD, esto para tener medidas más precisas. El ejemplo incluye también el diagrama esquemático del circuito.

A continuacín algunas fotos que prueban el funcionamiento del sensor con el código del ejemplo anterior usando un foco de 100W conectado a la línea de 220V. Notarás que las lecturas varían de (+) a (-) debido a la corriente alterna. En teoría la corriente medida debería ser de 0.45 A para este foco, pero es sabido que la señal de esta línea además de ser alterna, presenta un comportamiento sinusoidal y el valor de 220V es en realidad el voltaje eficaz o promedio de la señal, y que un amperímetro "común" también mediría esta corriente eficaz. Pero este sensor toma lecturas cada cierto intervalo de tiempo (ver hoja de datos) y aparte el programa en el microcontrolador lee el sensor en otro intervalo de tiempo, por eso las lecturas de las fotos se acercan a la del valor de corriente real, pero son suficientes para mostrar que el sensor funciona correctamente.
Sensor de corriente electrica ACS712
Sensor de corriente electrica ACS712
Funcionamiento del sensor ACS712.
Contenido descargable


--> Obtenerlo por medio de este sitio web:
El sensor disponible es el ACS712x30A en una placa para fácil aplicación y listo para usarse. Es el mismo que aparece en las fotos de este artículo.

El precio de comercialización fijado en esta página es de 80 Bs. Contáctate si lo consideras justo, :) será un placer entregártelo personalmente.


Lugar: /Automatización Electrónica / Sensores





Licencia Creative Commons
Para todo el contenido hecho por los autores del sitio, salvo el contenido que explícitamente indique otra licencia,
esta obra está bajo una Licencia Creative Commons Atribución-CompartirIgual 3.0 Unported.