¿Cómo interpretan los sensores el microcontrolador?

4

Siempre me he preguntado esto, ¿cómo son exactamente interpretados los sensores por / para el microcontrolador? Al igual que vamos a usar un ejemplo de un sensor de calor ... ¿cómo es exactamente como decir ... un Arduino interpretando los datos? Me refiero a usar un sensor de temperatura centígrado de precisión LM35 que es bastante común pero pequeño al mismo tiempo.

    
pregunta

3 respuestas

10

No estoy familiarizado con el Arduino, pero en general los microcontroladores interactúan con un sensor en una de dos formas, ya sea como voltaje (usando el ADC para la entrada) o mediante un bus serie como I2C o SPI.

El LM35 genera un voltaje proporcional a la temperatura en grados centígrados, por lo que debe conectar su salida a la entrada ADC del Arduino.

La salida bruta del LM35 es de 10 mv / grado C, por lo que 2 grados C serían 20 mv, 100 grados C serían 1 voltio y la temperatura ambiente (22 grados C) sería 0.22 voltios. Suponiendo que un ADC de 10 bits con un voltaje de referencia de 3.3 voltios, 0.22 v se representaría como 0.22 / 3.3 * 1024 o un conteo de 68.

Tenga en cuenta que no está utilizando gran parte del rango del ADC, incluso a 100 grados centígrados. Puede aumentar el voltaje del LM35 agregando un amplificador operacional riel a riel con una ganancia de 5, lo que Le permite medir de 0 a 65 grados C y usar todo el rango del ADC. 0 grados aún serían 0, 65 grados C serían 0.65 * 5 / 3.3 * 1024 o un conteo de 1008, y 22 grados C serían 0.22 * 5 / 3.3 * 1024 o un conteo de 341.

Para medir temperaturas por debajo de 0 grados C con el LM35, sería necesario proporcionar un sesgo negativo a la salida (consulte la hoja de datos del LM35 para obtener más información).

    
respondido por el tcrosley
4

Para que un microcontrolador actúe sobre una señal, tiene que convertirse en una secuencia de números que representan la señal. Más comúnmente, la señal es un voltaje y se muestrea periódicamente con un A / D (convertidor analógico a digital). Eso produce un número proporcional al voltaje cada vez que hace una conversión. La mayoría de los microcontroladores tienen A / D incorporado.

Los micros pequeños y baratos pueden tener 8 bits A / D, 10 bits es bastante común, pero 12 bits tampoco es demasiado inusual. Después de eso, se vuelve difícil construir el A / D con suficiente precisión con el mismo proceso utilizado para hacer el microcontrolador digital. Por lo tanto, los últimos 12 bits generalmente requieren A / D externos que se conectan digitalmente a la micro, como a través de SPI o IIC, o menos comúnmente hoy en día un montón de bits paralelos.

Una vez que tenga la señal analógica representada como una secuencia de números, puede aplicarle todo tipo de técnicas. De hecho, esto es específicamente lo que los DSP (procesadores de señales digitales) están optimizados para hacer. Los micros comunes también pueden hacer esto, pero son más lentos para realizar algunas de las operaciones de filtrado sofisticadas. Por lo general, se utilizan en aplicaciones de control como se aplican a aplicaciones de procesamiento de señales. Por ejemplo, un micro puede convertir el voltaje de un sensor de temperatura a un número en su A / D, y luego usar ese número para decidir qué tan difícil es hacer funcionar un ventilador.

    
respondido por el Olin Lathrop
1

Algunos sensores de temperatura emiten un voltaje que puede alimentar un ADC (por mucho que tcrosley ha sugerido ) pero también hay dispositivos con interfaces digitales (por ejemplo, DS18S20 que cuenta con una interfaz digital de 1 cable) que devuelve la temperatura en grados Celsius.

Una búsqueda en Google puede proporcionar múltiples tutoriales sobre cómo conectar el DS18S20 con un Arduino.

    
respondido por el Nate

Lea otras preguntas en las etiquetas