Categorías: Circuitos microcontroladores
Cantidad de vistas: 18998
Comentarios sobre el artículo: 0

Conexión de sensores analógicos a Arduino, lectura de sensores

 

Los sensores se utilizan para medir cantidades, condiciones ambientales y reacciones a cambios en estados y posiciones. En su salida, puede haber señales digitales que consisten en unos y ceros, y analógicas que consisten en un número infinito de voltajes en un cierto intervalo.


Sobre sensores

En consecuencia, los sensores se dividen en dos grupos:

1. Digital.

2. Analógico.

Para leer valores digitales, se pueden utilizar las entradas digitales y analógicas del microcontrolador, en nuestro caso Avr en el tablero Arduino. Los sensores analógicos deben conectarse a través de un convertidor analógico a digital (ADC). ATMEGA328, es lo que está instalado en la mayoría de las placas ARDUINO (más sobre esto hay un artículo en el sitio), contiene en su circuito ADC incorporado. Hay hasta 6 entradas analógicas disponibles para elegir.

Si esto no es suficiente para usted, puede usar un ADC externo adicional para conectarse a las entradas digitales, pero esto complicará el código y aumentará su volumen, debido a la adición de algoritmos de procesamiento y control de ADC. El tema de los convertidores analógico a digital es lo suficientemente amplio como para que pueda hacer un artículo separado o un ciclo sobre ellos. Es más fácil usar una placa con una gran cantidad de ellos o multiplexores. Veamos cómo conectar sensores analógicos al Arduino.

Conexión de sensores analógicos a Arduino, lectura de lecturas de sensores

Esquema general de sensores analógicos y su conexión.

El sensor puede ser incluso un potenciómetro convencional. De hecho, este es un sensor de posición resistivo, en este principio implementan el control del nivel de líquidos, el ángulo de inclinación, la apertura de algo. Se puede conectar a arduino de dos maneras.

Esquema general de sensores analógicos y su conexión.

El circuito anterior le permite leer valores de 0 a 1023, debido al hecho de que toda la tensión cae en el potenciómetro. Aquí el principio del divisor de voltaje funciona, en cualquier posición del motor, el voltaje se distribuye linealmente en la superficie de la capa resistiva o en una escala logarítmica (depende del potenciómetro) que parte del voltaje que queda entre la salida del control deslizante (contacto deslizante) y tierra (gnd) llega a la entrada. En el tablero, esta conexión se ve así:

Diagrama de cableado para sensores analógicos

La segunda opción está conectada de acuerdo con el circuito divisor resistivo clásico, aquí el voltaje en el punto de máxima resistencia del potenciómetro depende de la resistencia de la resistencia superior (en la Figura R2).

Divisor resistivo clásico

En general, el divisor resistivo es muy importante no solo en el campo de trabajo con microcontroladores, sino también en electrónica en general. A continuación puede ver el esquema general, así como las relaciones calculadas para determinar el valor de voltaje en el brazo inferior.

Esquema y relaciones de diseño para determinar el valor de voltaje en el brazo inferior

Dicha conexión es característica no solo para un potenciómetro, sino para todos los sensores analógicos, porque la mayoría de ellos funcionan según el principio de cambio de resistencia (conductividad) bajo la influencia de fuentes externas: temperatura, luz, radiación de diversos tipos, etc.

El siguiente es el diagrama de conexión más simple. termistor, en principio, un termómetro se puede hacer sobre la base. Pero la precisión de sus lecturas dependerá de la precisión de la tabla de conversión de resistencia a la temperatura, la estabilidad de la fuente de energía y los coeficientes de cambio de resistencia (incluida la resistencia del brazo superior) bajo la misma temperatura. Esto puede minimizarse seleccionando las resistencias óptimas, su potencia y corrientes de funcionamiento.

El diagrama de conexión más simple para un termistor

Del mismo modo, puede conectar fotodiodos, fototransistores como sensor de luz. La fotoelectrónica ha encontrado aplicación en sensores que determinan la distancia y la presencia de un objeto, uno de los cuales consideraremos más adelante.

Fotorresistor

La figura muestra la conexión de la fotorresistencia al arduino.

Esquema de conexión del fotorresistor a arduino

Parte de software

Antes de hablar sobre la conexión de sensores específicos, decidí considerar el software para procesarlos. Todas las señales analógicas se leen desde los mismos puertos utilizando el comando analogRead ().Vale la pena señalar que Arduino UNO y otros modelos con 168 y 328 atmega tienen ADC de 10 bits. Esto significa que el microcontrolador ve la señal de entrada como un número del 0 al 1023, un total de 1024 valores. Si considera que el voltaje de alimentación es de 5 voltios, entonces la sensibilidad de entrada:

5/1024 = 0.0048 V o 4.8 mV

Es decir, con un valor de 0 en la entrada, el voltaje es 0 y con un valor de 10 en la entrada - 48 mV.

En algunos casos, para convertir los valores al nivel deseado (por ejemplo, para transferir a la salida PWM), 1024 se divide por un número y, como resultado de la división, se debe obtener el máximo requerido. La función de mapa (fuente, bajo, alto, alto, alto, bajo) funciona más claramente, donde:

  • bajo - número más bajo antes de la conversión por función;

  • vch - superior;

  • VCh: el número más bajo después del procesamiento por la función (en la salida);

  • VHV - arriba.

Aplicación práctica para convertir una función de un valor de entrada para la transmisión a un PWM (valor máximo 255, para convertir datos de un ADC a una salida PWM 1024 dividido por 4):

Opción 1 - división.

int x;

x = analogRead (pot) / 4;

// se recibirá un número del 0 al 1023

// dividirlo por 4, obtenemos un número entero de 0 a 255 analogWrite (led, x);

La opción 2, la función MAP, abre más oportunidades, pero más sobre eso más adelante.

bucle vacío ()

{int val = analogRead (0);

val = mapa (val, 0, 1023, 0, 255);

analogWrite (led, val); }

O incluso más corto:

analogWrite (led, mapa (val, 0, 1023, 0, 255))

No todos los sensores tienen 5 voltios en la salida, es decir No siempre es conveniente dividir el número 1024 para obtener el mismo 256 para el PWM (o cualquier otro). Esto puede ser de 2 y 2.5 voltios y otros valores, cuando la señal máxima será, por ejemplo, 500.


Sensores analógicos populares

A continuación se muestra una vista general del sensor para arduino y su conexión:

Cómo conectar un sensor analógico

Por lo general, hay tres salidas, puede haber una cuarta, digital, pero estas son características.

Explicación de la designación de las salidas del sensor analógico:

  • G - menos potencia, bus común, tierra. Puede ser designado como GND, “-";

  • V - más potencia. Puede denotarse como Vcc, Vtg, "+";

  • S - señal de salida, posible notación - Out, SGN, Vout, sign.

Los principiantes para aprender a leer los valores de los sensores eligen proyectos de todo tipo de termómetros. Dichos sensores están en diseño digital, por ejemplo DS18B20, y en analógico: estos son todo tipo de microcircuitos como LM35, TMP35, TMP36 y otros. Aquí hay un ejemplo del diseño modular de dicho sensor en el tablero.

Sensor analógico en TMP36

La precisión del sensor es de 0.5 a 2 grados. Construido en un chip TMP36, como muchos de sus análogos, sus valores de salida son 10 mV / ° C. A 0 °, la señal de salida es 0 V, y luego se agregan 10 mV por 1 grado. Es decir, a 25.5 grados el voltaje es 0.255 V, es posible una desviación dentro del error y el autocalentamiento del cristal IC (hasta 0.1 ° C).


Dependiendo del microcircuito utilizado, los rangos de medición y los voltajes de salida pueden diferir, consulte la tabla.

Rangos de temperatura y voltajes de salida del sensor

Sin embargo, para un termómetro de alta calidad, no puede simplemente leer los valores y mostrarlos en el indicador LCD o el puerto serie para la comunicación con una PC, para la estabilidad de la señal de salida de todo el sistema en su conjunto, necesita promediar los valores de los sensores, tanto analógicos como digitales, dentro de ciertos límites, mientras que sin perjudicar su velocidad y precisión (hay un límite para todo). Esto se debe a la presencia de ruido, interferencia, contactos inestables (para sensores resistivos basados ​​en un potenciómetro, vea el mal funcionamiento del sensor de nivel de agua o combustible en el tanque del automóvil).

Los códigos para trabajar con la mayoría de los sensores son bastante voluminosos, por lo que no los daré todos, se pueden encontrar fácilmente en la red mediante la solicitud "sensor + nombre Arduino".

El siguiente sensor que los ingenieros de robótica arduino suelen utilizar es el sensor de línea. Se basa en dispositivos fotoelectrónicos, tipo de fototransistores.

Sensor de línea

Con su ayuda, un robot que se mueve a lo largo de la línea (utilizado en la producción automatizada para entregar piezas) determina la presencia de una franja blanca o negra. En el lado derecho de la figura, son visibles dos dispositivos similares a los LED. Uno de ellos es el LED, puede emitir en el espectro invisible, y el segundo es un fototransistor.

La luz se refleja desde la superficie si está oscura: el fototransistor no recibe una corriente reflejada, pero si la luz recibe y se abre. Los algoritmos que coloca en el microcontrolador procesan la señal y determinan la corrección y dirección del movimiento y los corrigen. El mouse óptico, que probablemente sostenga en su mano mientras lee estas líneas, está organizado de manera similar.

Complementaré con un sensor adyacente: un sensor de distancia de Sharp, también se usa en robótica, así como en condiciones de monitoreo de la posición de los objetos en el espacio (con el correspondiente error TX).

Sensor de distancia aguda

Funciona con el mismo principio. Las bibliotecas y ejemplos de bocetos y proyectos con ellos están disponibles en grandes cantidades en los sitios de Arduino.


Conclusión

El uso de sensores analógicos es muy simple, y con el lenguaje de programación Arduino fácil de aprender, aprende rápidamente dispositivos simples. Este enfoque tiene inconvenientes significativos en comparación con sus homólogos digitales. Esto se debe a la amplia variación en los parámetros; esto causa problemas al reemplazar el sensor. Puede que tenga que editar el código fuente del programa.

Es cierto que los dispositivos analógicos individuales incorporan fuentes de voltaje de referencia y estabilizadores de corriente, lo que tiene un efecto positivo en el producto final y la repetibilidad del dispositivo en la producción en masa. Todos los problemas se pueden evitar mediante el uso de dispositivos digitales.

El circuito digital como tal reduce la necesidad de sintonizar y ajustar el circuito después del ensamblaje. Esto le brinda la oportunidad de ensamblar varios dispositivos idénticos en el mismo código fuente, cuyos detalles darán las mismas señales, con sensores resistivos esto es raro.

Vea también en nuestro sitio web:Conexión de dispositivos externos a Arduino

Ver también en i.electricianexp.com:

  • ¿Cuál es la diferencia entre sensores analógicos y digitales?
  • Medición de temperatura y humedad en Arduino: una selección de formas
  • ¿Cómo funciona la conversión de la señal analógica a digital?
  • Sensores más populares para Arduino
  • Cómo se organiza y funciona el sensor de línea

  •