Manufactura industrial
Internet industrial de las cosas | Materiales industriales | Mantenimiento y reparación de equipos | Programación industrial |
home  MfgRobots >> Manufactura industrial >  >> Manufacturing Technology >> Proceso de manufactura

Sensor de agua de alta sensibilidad en MCP3008

Use el Phantom YoYo High Sensitivity Sensor de agua en el ADC de 10 bits y 8 canales MCP3008 con interfaz SPI.

Introducción

Antecedentes

En un próximo proyecto, estoy usando el MCP3008 para monitorear varios sensores. En este proyecto, quiero cubrir los detalles del uso del sensor de agua de alta sensibilidad Phantom YoYo en el ADC de 10 bits de 8 canales MCP3008 con interfaz SPI con Raspberry Pi 2, Windows 10 IoT Core y C #.

Usando el MCP3008

Un ADC es un convertidor de analógico a digital. Una señal analógica se convierte en un número y se lee en su aplicación. El MCP3008 es un ADC de 10 bits, lo que significa que utiliza 10 bits para representar el valor en el canal. El valor se representará como un número de 0 a 1023 (para un total de 1024 valores posibles). Luego, este número se convierte en un valor significativo. Por ejemplo, digamos que quiero medir un voltaje en uno de los canales y el valor leído del canal es 523. Sé que el voltaje máximo es 3.3V. El voltaje en el canal se calcula usando la fórmula

Valor / Valor máximo * Vref

resolviendo mi voltaje obtengo

523/1023 * 3.3

que da un valor de 1.687V . Calculé este valor normalizando primero la lectura y luego multiplicando el valor de lectura normalizado por el valor máximo conocido de 3.3V.

Cuando es importante obtener una medición de voltaje precisa, recomiendo encarecidamente medir el voltaje real de la Raspberry Pi y usar este valor en sus cálculos para obtener una conversión más precisa del ADC. Cuando medí el mío, descubrí que la salida era 3.301V (el valor que se encuentra en el código fuente). Sin embargo, no muy lejos de lo real, otros tipos de placas pueden variar más.

Por supuesto, esto tiene sentido cuando quiero calcular el voltaje, pero cada sensor tiene un significado diferente. Para cada sensor conectado a un canal en el MCP3008, necesito conocer los detalles específicos e interpretar la lectura de manera apropiada.

El cableado del MCP3008 es sencillo. El chip en sí está marcado con una muesca en un extremo que representa los pines 1 y 16 (consulte la hoja de datos aquí).

Los pines 1 a 8 son los ocho pines de entrada y se denominan canales 0 a 7. El canal 0 es el pin 1. El pin 16 es Vdd y se conecta a la fuente de voltaje (3.3V o 5V en la Raspberry Pi). El pin 9 se conecta al pin de tierra en la Raspberry Pi. Los pines 15 y 14 se utilizan para hacer referencia al circuito analógico. El pin 15 es Vref y lo usa el MCP3008 para determinar cuál sería el voltaje máximo en uno de los canales. En mi ejemplo, conecté este pin a la fuente de 3.3V en la Raspberry Pi. Cuando se aplica voltaje a uno de los canales, el MCP ajusta la lectura para que 1023 represente 3.3V y 0 represente 0V. Esto permite que funcione el cálculo que utilicé anteriormente. El pin 14 es el pin de tierra analógico. En mi ejemplo, lo conecté al pin de tierra de la Raspberry Pi. Si es necesario mantener el circuito analógico aislado del circuito digital, este pin se conectará a tierra en el circuito analógico. Los cuatro pines restantes, del 10 al 13, son los pines de la interfaz serial SPI que se utilizan para comunicarse con la Raspberry Pi. El diagrama de cableado que he incluido con estos proyectos muestra cómo conectar estos pines a la Raspberry Pi.

En este proyecto, he incluido una medición de voltaje simple para demostrar este concepto. La lectura del sensor de agua demostrará una interpretación alternativa del valor leído del canal.

Descripción general del proyecto

El sensor

En este proyecto he conectado dos circuitos en uno. El primero es un potenciómetro simple que permitirá variar el voltaje en uno de los pines del MCP3008 (canal 0). Esto es simplemente para demostrar cómo funciona el MCP3008. El segundo circuito es el sensor de agua conectado a un segundo canal (canal 1) en el MCP3008.

El sensor de agua Phantom YoYo tiene tres pines. El primer pin es tierra (etiquetado "-" en el dispositivo) que se conectará al pin de tierra en la Raspberry Pi. El siguiente pin es el de alimentación (etiquetado con "+" en el dispositivo) y se conectará al pin de 3.3V en la Raspberry Pi (el dispositivo también se puede conectar a 5V). El tercer y último pin es la señal (etiquetada como 's' en el dispositivo. Este pin tiene la señal de voltaje que variará según la cantidad de agua en el dispositivo. Tenga en cuenta que este dispositivo NO es un sensor de nivel de agua. Simplemente detecta variaciones cantidades de agua que entran en contacto con el dispositivo. El pin de la fuente se conectará a una de las entradas del MCP3008.

El circuito

El circuito para soportar el sensor es realmente simple. El dispositivo se conecta directamente a la placa Raspberry Pi sin la necesidad de ningún componente adicional.


Software de proyecto

La aplicación

La aplicación que creé para este proyecto es una Aplicación universal de Windows y muestra dos metros en la vista principal. El primer medidor muestra el voltaje actual que se mide en el circuito del potenciómetro. El segundo muestra una lectura del sensor de agua que se normaliza a un valor de 0 a 100. El software también permite una calibración del sensor de agua. El enlace al código fuente se puede encontrar cerca de la parte inferior de la página.

La biblioteca MCP3008

El proyecto de software también contiene un proyecto separado para interactuar con el MCP3008. Este código se puede utilizar en su aplicación para integrar fácilmente el chip MCP3008 en sus proyectos.

Para usarlo, primero declare un objeto de clase de la siguiente manera:

privado Mcp3008 _mcp3008 =null;

En OnNavigatedTo evento agregue el siguiente código:

_ mcp3008 =new Mcp3008 (0);

await_mcp3008.Initialize ();

Para leer el voltaje del canal 0, use la siguiente línea de código:

voltaje de flotación =_mcp3008.Read (Mcp3008.Channels.Single0) .AsScaledValue (3.3f);

Tenga en cuenta el uso de Channel.Single0 que indica que el valor se lee desde un canal. Es posible especificar que el dispositivo lea la diferencia entre dos pines. Esto podría especificarse como Mcp3008.Channels.Differential0, lo que indicaría que la medición debe tomarse como diferente entre el canal 0 y el canal 1, donde el canal 0 es positivo y el canal 1 es negativo. El código fuente es un documento y proporcionará información sobre herramientas que explica cada valor.

Cuando haya terminado de usar el objeto, normalmente en su OnNavigatedFrom evento deshacerse del objeto.

_ mcp3008.Dispose ();

_ mcp3008 =null;

Comenzando

Ensamble el circuito

Use esta guía para ensamblar el circuito mientras usa el diagrama ubicado cerca de la parte inferior de la página como guía (tenga en cuenta que el color de los cables es opcional y ha sido seleccionado para ayudar a que el circuito sea fácil de seguir cuando está construido).

Nota: este proyecto utiliza un multímetro opcional para medir el voltaje a través del potenciómetro. Esto se hace para comparar el valor con el valor leído por el MCP3008. Tenga en cuenta que esto es opcional. Si no tiene un multímetro, no podrá comparar este voltaje. Esto se hace para mostrar que el valor leído por el MCP3008 es el mismo que el valor leído por el multímetro. Configure el multímetro para medir el voltaje de CC como se muestra en la imagen a continuación (su multímetro puede verse diferente).

Multímetro Fluke 87


Inicio de la aplicación

Elija Depurar , BRAZO configuración y Máquina remota . Ahora haga clic derecho en el proyecto, seleccione Propiedad y luego haga clic en Depurar etiqueta. Luego, ingrese la dirección IP de Raspberry Pi 2 en el campo Máquina remota y desmarque Usar autenticación .

Presiona F5 . La aplicación se implementará en el dispositivo, lo que puede tardar unos minutos la primera vez.

El siguiente video es una demostración de la aplicación:

Nota: La aplicación utiliza un medidor lineal de 360 ​​° para mostrar la cantidad de agua. Debo señalar que este sensor no tiene ninguna correlación lineal o cualquier otra correlación que yo sepa entre la cantidad de agua y la lectura del sensor. Produce valores más pequeños cuando hay algunas gotas frente a valores más altos cuando hay más agua presente. Utilizo más el medidor lineal para ayudar a comprender el concepto de ADC. Es posible conectar el sensor de agua de manera similar a cómo conecté mi sensor de voltaje de CA optoaislado para producir una señal alta o baja que podría ser captada por un pin GPIO. Este dispositivo se puede conectar para proporcionar una señal húmeda o seca. Habiendo dicho eso, estoy conectando este sensor de agua a un ADC porque quiero detectar la diferencia entre un poco de agua y mucha agua y el enfoque descrito en este proyecto logra este objetivo.

Fuente: Sensor de agua de alta sensibilidad en MCP3008


Proceso de manufactura

  1. Aspersor para césped
  2. Rodillo
  3. Lavavajillas
  4. El sensor de imagen cuenta con baja potencia y alta velocidad de fotogramas
  5. Sensor de termómetro digital de 1 cable Raspberry Pi (DS18B20)
  6. Entrada de sensor analógico raspberry pi usando un MCP3008:cableado / instalación / programa básico
  7. Sensor de agua de alta sensibilidad en MCP3008
  8. El sensor suave aumenta la sensibilidad de la punta de los dedos para los robots
  9. Tubo ToughMet® 3TS TS105 (C72900)
  10. Bombas de alta presión de agua para riego
  11. ¿Qué es una bomba de agua automática?