Settings
Light Theme
Dark Theme

89. Eliminar el ruido en Arduino, controlando la señal

89. Eliminar el ruido en Arduino, controlando la señal
Aug 23, 2016 · 34m 29s

Después de unas semanas de vacaciones en este periodo estival, vuelvo a la carga con un nuevo capítulo del podcast La Tecnología Para Todos. Hoy voy a hablarte de cómo...

show more
Después de unas semanas de vacaciones en este periodo estival, vuelvo a la carga con un nuevo capítulo del podcast La Tecnología Para Todos. Hoy voy a hablarte de cómo eliminar el ruido en Arduino.

Tarde o temprano te verás expuesto a esta señal parasitaria que se acopla a tu señal útil y perturba tus mediciones. Por eso es necesario saber qué es el ruido, cuáles son las fuentes que lo producen y como podemos atajarlo.

Al igual que en muchos factores involucrados en la electrónica y en la programación, no hay una fórmula mágica para la eliminación del ruido, pero si que podemos aplicar ciertas técnicas que nos ayuden a mitigarlo en la medida de lo posible.

Eliminar el ruido en Arduino

Antes de comenzar con tema que voy a tratar hoy, decirte que el 14, 15 y 16 de Octubre, estaré en las XI JPOD (Jornadas de Podcasting) en Málaga. En este evento nacional realizaré un directo junto a Gabriel Viso del podcast Pitando. Si vas a estar por allí, espero verte.

¿Qué es el ruido?, conocerlo nos ayudará a eliminar el ruido en Arduino

Podemos encontrar muchos artículos, libros e incluso vídeos sobre el ruido en Internet. El objeto de este capítulo no es profundizar hasta tal detalle, solo quiero dejar claro cómo afecta a nuestros proyectos y cómo podemos eliminar el ruido en Arduino.

El ruido no deja de ser una señal eléctrica, al igual que las señales de Arduino, normalmente una señal continua de 5V, y de otros sistemas eléctricos que trabajan con señales alternas que pueden ir, por ejemplo, de 220V a -220V.

Por lo tanto, el ruido es una señal de interferencia que se añade o se suma a nuestra señal útil produciendo efectos perjudiciales. Vamos a verlo con un ejemplo. Imagínate un sensor de temperatura cuya relación temperatura-voltaje es de 1º-10mV. Esto quiere decir que cada grado, se incrementa en 10mV la tensión obtenida. Si medimos la temperatura en algún lugar donde sabemos que hay 20ºC exactamente, el resultado será 200mV. Al conectar el sensor a Arduino comprobamos que el voltaje obtenido es de 220mV, lo que equivale a una temperatura de 22ºC. Esos 20mV de más ¿qué son? Precisamente eso es el ruido, una señal parasitaria que se añade a nuestra señal útil y por lo tanto la altera.

Diseñamos con casos ideales que no contemplan el ruido en nuestros proyectos

Cuando estamos diseñando nuestro proyecto, utilizamos la típica Ley de Ohm o Leyes de Kirchhoff. Estas leyes se basan en desarrollos matemáticos que no tienen en cuenta el efecto del ruido. Podemos probar a crear un circuito muy sencillo con una resistencia y un LED. Si hacemos los cálculos y obtenemos los voltajes, comprobaremos con un multímetro que aunque se parezcan, el resultado no es el mismo. Esto es debido al ruido inherente de la propia placa de Arduino, los componentes e incluso el multímetro. En consecuencia debemos contemplar esta señal perjudicial y por lo tanto eliminar el ruido en Arduino.

La señal de ruido no afecta de igual manera a las señales analógicas que digitales

Ya hemos visto el ejemplo de un sensor de temperatura con una señal analógica. Pero no afecta en igual medida a las señales digitales, dependerá de la amplitud del ruido. En términos generales, la señales analógicas son más sensibles al ruido.

Si en el ejemplo anterior del sensor de temperatura, la señal de ruido tuviera 0.3mV en vez de 20mV, no afectaría a nuestras medidas. Por lo tanto la amplitud de la señal es importante. En el caso de las señales digitales, la amplitud también es importante, pero solo afectará si dicha amplitud es lo suficientemente grande para cambiar de estado de alto a bajo o de bajo a alto.

Cómo funcionan las señales digitales

Hagamos un paréntesis para ver cómo funcionan las señales digitales en Arduino. Estamos acostumbrados a hablar de alto y bajo y relacionarlo con 0V y 5V. Pero eso no es realmente lo que sucede dentro de la placa. Existen unos márgenes para identificar si la señal está en estado alto o bajo.

Precisamente este es uno de los puntos fuertes de Arduino, gracias a la amplitud de ese rango la señal digital soporta una gran cantidad de ruido. A continuación puedes ver la imagen donde se representan esos márgenes para el microcontrolador ATmega328 del Arduino UNO.

Niveles lógicos digital Arduino

Como comprobamos, de 0V a 1,5V se considera un estado bajo. De 3V a 5V se considera un estado alto. Por último de 1,5V a 3V se considera una indeterminación. Supongamos que tenemos un nivel bajo en la señal digital con un valor de 0,5V. Para que se produzca un cambio a una indeterminación necesitaremos que la amplitud del ruido sea de más de 1V y para que cambie a estado alto más de 2,5V.

Por lo tanto, el ruido no afecta en la misma medida a las señales digitales eso sí, cuando afecta los resultados pueden ser "catastróficos". Vamos a verlo con un ejemplo de la vida real

En el año 2010 se produjo el apagón analógico, se pasó de emitir la televisión en analógico a digital

Recordarás que antes la televisión se veía de diferente manera. Antes del año 2010, se emitía con una señal analógica. A partir de ese año se empezó a emitir en digital a través de la TDT (Televisión Digital Terrestre).

Con la televisión analógica, cuando había interferencias por ruido, la señal se distorsionaba y se producía el típico efecto nieve. Aún así se conseguía ver la televisión, aunque sin calidad. Con la TDT se consiguieron varias cosas entre ellas una mejor calidad, la necesidad de menor potencia para emitir y la optimización del ancho de banda. El gran problema de este tipo de señales es que si le afecta el ruido, la televisión se deja de ver. Seguramente te habrá pasado alguna vez donde la televisión se ha quedado en negro. Esto sucede por lo anteriormente comentado, la señal de ruido tiene tanta amplitud que hace cambiar de estado a los bit digitales.

En resumen, el ruido es otra señal que interfiere con nuestra señal útil. Afecta en mayor medida a señales analógicas que digitales, pero cuando estas últimas son afectadas, su recuperación es complicada. Si queremos eliminar el ruido en Arduino, debemos conocer las fuentes y factores que lo producen.
show less
Comments
La tecnología para todos

La tecnología para todos

7 years ago

Muchas gracias, yo también estoy encantado de que te gusten 😉
Reflexiones en la onda

Reflexiones en la onda

7 years ago

Me encantan tus programas y tu proyecto.
Information
Author La tecnología para todos
Website -
Tags

Looks like you don't have any active episode

Browse Spreaker Catalogue to discover great new content

Current

Looks like you don't have any episodes in your queue

Browse Spreaker Catalogue to discover great new content

Next Up

Episode Cover Episode Cover

It's so quiet here...

Time to discover new episodes!

Discover
Your Library
Search