Mostrando entradas con la etiqueta Señal digital. Mostrar todas las entradas
Mostrando entradas con la etiqueta Señal digital. Mostrar todas las entradas

viernes, 12 de julio de 2013

Disparador Schmitt (Schmitt trigger)


Por diversas razones, puede ser que en nuestro proyecto, las señales que estemos monitorizando con nuestros sensores, no sean tan limpias como deseáramos. Bien porque que los interruptores (switches) presentan pequeños rebotes, bien por las interferencias que generen cargas inductivas que tengamos cerca (por ejemplo motores), bien por interferencias de electrónica externa (antenas, móviles, ruidos en la red eléctrica...).
De forma que en lugar de encontrarnos con un señal ideal, tendremos que a nuestra señal se le superpone un ruido indeseable de fondo
y como al final nuestro Arduino traduce todo a valores digitales, tendremos situaciones en la que deberíamos tener una señal baja  y tenemos una señal alta, o la inversa (zonas marcadas en rojo en la imagen anterior). Imaginaos lo peligroso que puede ser eso, si nuestro circuito se encargara de disparar un sistema anti-incendios en una biblioteca. El daño por un falso incendio sería altísimo.
De modo que para minimizar este tipo de ruidos, un estadounidense llamado Otto Herbert Schmitt, inventó lo que llamamos el disparador Schmitt (Schmitt trigger).
El Disparador Schmitt (Schmitt trigger) hace uso de la histéresis, esto es la tendencia a conservar el nivel lógico hasta que no se produzca un cambio brusco. De esta manera se previene el ruido que podría tapar a la señal original y que causaría falsos cambios de estado si los niveles de referencia y entrada son parecidos.
Podemos ver una explicación detallada de este comportamiento en los siguientes videos:





miércoles, 10 de julio de 2013

¿Qué es la lógica digital?




Una vez que hemos visto como un convertidor puede digitalizar una señal analógica, ahora vamos a dar un paso más y vamos a ver cómo la electrónica moderna consigue velocidades de computación tan rápidas a través de la simplificación máxima de las operaciones.

Para ello usan lo que se conoce como lógica de dos estados. Un sistema que se limita a emitir preguntas que se pueden contestar con un Sí o con un No, con un Verdad o con un Falso, con un Encendido o con un Apagado, con un Alto o con un Bajo, con un 1 o con un 0.

Las señales se digitalizan, las preguntas se reformulan y cuando finalmente consigues que tu mundo sea así de simple, desaparecen las ambigüedades que nos causan tantos malos entendidos y nos consumen tantos recursos, y todo empieza a ser lógico. 

A estos estados se le llama ALTO y BAJO respectivamente. 

Al valor inferior de tensión BAJO le asociamos un valor lógico LOW ó ‘0’, mientras que al valor superior ALTO le asociamos HIGH ó ‘1’ lógico.

El valor "ALTO" vendría definido por el tipo de tecnología que estemos usando para definir el valor HIGH, que puede ser 5V, 3.3V ó 2.8V, y normalmente se le da el nombre genérico de Vcc, y "BAJO " sería normalmente 0V.

Pero ¿qué sucede si todavía no he llegado arriba pero estoy muy cerca?, ¿cómo puedo contestar?. Para resolver esta situación que es la más común de las situaciones en las que se puede  encontrar cualquier señal, el truco que se emplea es realizar una comparación con un valor que hace de juez, este valor se le llama tensión umbral. Si el valor medido es superior a la tensión umbral se devuelve HIGH, y si es inferior LOW. En general es razonable suponer que la tensión umbral es cercana al punto medio entre -Vcc y +Vcc.

En Arduino los valores de alimentación habituales son 0V (sería nuestro valor BAJO, y normalmente se le llama GND) y 5V (sería nuestro valor ALTO). En este caso la tensión umbral será muy cercana a 2’5V. Por tanto si medimos una tensión con un valor intermedio entre 0 a 2’5V Arduino devolverá una lectura LOW, y si medimos un valor entre 2’5V y 5V, devolverá HIGH.





De esta manera cualquier señal analógica podrá ser digitalizada para responder más rápidamente a las preguntas que le haga el microcontrolador.

¿Qué es una señal digital?

Aunque en el mundo real los valores que nos podemos encontrar en cada magnitud que medimos se encuentran dentro un espectro continuo de resultados posibles véase por ejemplo la evolución de temperatura que tenemos en nuestro dormitorio entre dos instantes de tiempo diferente T1 y T2 representada en una gráfica como ésta: 
Señal analógica
en el mundo digital, las magnitudes que queremos medir solo pueden estar en un conjunto discreto de valores: señales digitales. 

Un ejemplo que nos puede ayudar a entender este comportamiento lo podemos encontrar en el comportamiento de un ascensor, la señal que representa su estado sólo nos devolverá resultados del tipo, primera planta, segunda planta, etc. Otro ejemplo podría encontrarlo si queremos medir el estado de una lámpara, en este caso la señal sólo nos devolverá resultados del tipo, encendido o por el contrario apagado.

Entonces para trabajar en un mundo digital necesitaremos de la ayuda de un componente clave: el convertidor analógico digital (ADC, Analog to Digital Converter, en inglés).

Más adelante veremos el procedimiento de conversión de una señal analógica a digital, generando un tren de pulsos eléctricos. Muy parecido al código Morse, pero más sencillo. Traducirá cualquier seña a "ceros" y "unos": los famosos bits.
Conversión analógico digital


En la próxima entrada veremos qué son los bits.

Y ya sabéis, si tenéis alguna sugerencia o duda, no tenéis más que mandarnos un correo a
e intentaremos responder a vuestra pregunta lo antes que podamos.