Blog posts How an Arduino or Raspberry Pi Communicates with our Hall effect actuator: the PA-04-HS

Cómo se comunica un Arduino o Raspberry Pi con nuestro actuador de efecto Hall: el PA-04-HS

Guest Writer
Guest Writer
PA Engineer

¡Bienvenido a otro blog técnico de Progressive Automations! Hoy describiremos cómo un Arduino puede comunicarse con nuestro PA-04-HS.

Un sensor de efecto Hall es un componente electrónico que permite un control preciso de un actuador lineal . Por lo general, se coloca dentro de la caja de cambios junto a un disco magnético. A medida que el actuador lineal se mueve, el disco magnético gira, lo que crea un campo magnético que pasa a través del sensor de efecto Hall. Esto crea un pulso de voltaje, que se puede contar para determinar la posición, velocidad o dirección del actuador lineal. Sin embargo, para utilizar estas señales, es necesario utilizar un microcontrolador como Arduino o Raspberry Pi. En este artículo, profundizaremos en el uso de un actuador para Raspberry Pi y cómo controlar un actuador lineal con Arduino. Como se mencionó, ambos microcontroladores se demostrarán con un actuador lineal de efecto Hall PA-04-HS de Progressive Automations.

[cta-contenido]

¡El PA-04-HS viene con retroalimentación de efecto Hall incorporada!

Aprende más

Cálculos de posición, velocidad y dirección

Antes de profundizar en detalles, lo primero que debemos entender es cómo se utilizan las señales que provienen del sensor de efecto Hall para calcular la posición, velocidad y dirección del actuador lineal. En el PA-04-HS , el sensor de efecto Hall está diseñado para producir dos señales en cualquiera de dos estados binarios: encendido o apagado. Estas dos señales subirán y bajarán a medida que el motor eléctrico gire con una diferencia de fase de 90 grados entre ellas. No se preocupe si no sabe cómo implementar algo de esto dentro de un código que pueda ser leído por un microcontrolador; se lo explicaremos más adelante en este artículo.

Posición

La posición del actuador lineal requiere algunos cálculos utilizando las señales de efecto Hall y algunas mediciones del propio actuador. La ecuación para la posición de la varilla del actuador requiere la longitud de carrera del actuador y el número total de bordes detectados desde completamente retraídos hasta extendidos. Usando estas medidas, se puede utilizar la siguiente ecuación:

Ecuación 1

Los bordes detectados desde que están completamente retraídos en la ecuación anterior comenzarán en cero y aumentarán en uno cuando se detecte un borde en la dirección hacia adelante y disminuirán en uno cuando se detecte un borde en la dirección hacia atrás.

Velocidad

La velocidad de un actuador se puede medir utilizando las señales de efecto Hall implementando un temporizador en el programa. Este temporizador se utilizará para medir el tiempo entre los bordes detectados. Además, se requiere el valor calculado del cambio de carrera por borde detectado. Usando estos valores, se puede utilizar la siguiente ecuación:

Ecuación 2

Dirección

La dirección del movimiento de un actuador se puede determinar observando el estado actual de las dos señales (señal A y B) y comparándolo con el último estado de las dos señales. Esto se debe a que las dos señales cambiarán cuál está adelantada y cuál retrasada dependiendo de la dirección del movimiento del actuador.

Esquema del estado de las dos señales (señal A y B)

Tabla del estado de las dos señales (señal A y B)

¿Qué es mejor, un microcontrolador Arduino o Raspberry Pi?

No se trata de cuál es mejor en general, sino más bien de cuál es mejor para la aplicación prevista. Sería mejor elegir un Arduino si la tarea principal de su aplicación es leer los datos del sensor de efecto Hall y devolver un conjunto particular de instrucciones.

Por otro lado, la Raspberry Pi sería más práctica a la hora de resolver tareas que se realizarían en un ordenador personal. Además, Raspberry Pi simplifica la gestión del flujo de trabajo en diversos escenarios, como conectarse a Internet o controlar un actuador lineal a través de un dispositivo móvil.

Puede resultar conveniente utilizar ambos microcontroladores para resolver diferentes tareas. La Raspberry Pi podría obtener acceso al código y ajustar varios parámetros que luego pueden enviarse a un Arduino para controlar el actuador lineal en función de la información que recopila.

Profundicemos en los detalles y le mostremos cómo controlar un actuador lineal con Arduino .

Arduino con actuadores lineales

Arduino Uno Rev3

Nuevamente, dependiendo de su aplicación, puede elegir entre utilizar un método de sondeo o una interrupción con un microcontrolador cuando se trata de señales digitales. El sondeo es un método programado en el que un microcontrolador verifica periódicamente el estado de una entrada para ver si ha habido un cambio. Las interrupciones son un mecanismo de hardware que cambia inmediatamente el enfoque del programa del microcontrolador cuando cambia el estado de una entrada.

A modo de demostración, optaremos por el método de interrupción para saber el momento exacto en el que una señal cambia de estado. En un microcontrolador Arduino, se utiliza una interrupción mediante la creación de una rutina de servicio de interrupción (ISP).

Esto es lo que necesitará:

 

Cableado de componentes Arduino y Shield

Los sensores de efecto Hall tienen 4 cables: 5V, GND y 2 cables de señal. Cada cable de señal emite pulsos a medida que gira el motor. También hay dos cables del actuador para conectar al MegaMoto. Sólo utilizaremos una de las señales de efecto hall.

Conecte el actuador lineal al Arduino y MegaMoto de la siguiente manera:

  • Cable rojo del sensor al pin Arduino 5V.
  • Cable del sensor negro al pin Arduino GND.
  • Cable amarillo/naranja al pin 2 o 3 de Arduino (si está utilizando un Arduino diferente, asegúrese de que los pines sean interrupciones).
  • Cable rojo del actuador al MOTA del MegaMoto.
  • Cable negro del actuador al MOTB del MegaMoto.

Una vez que los motores estén conectados correctamente a las placas, cablee la fuente de alimentación de la siguiente manera:

  • Conecte 12V a BAT+.
  • Conecte GND a BAT-.
  • Conecte 12V a Vin en el Arduino.
  • Conecte dos botones entre los pines 7 y 8 del Arduino y conéctelos a GND.

Hay 4 tipos de desencadenantes de la interrupción: ascendente, descendente, alto y bajo. Al cambiar el disparador, puede ajustar cuándo ocurre la interrupción. Subir es cuando el pin ve una transición de bajo a alto, caer es cuando ve de alto a bajo, bajo es cuando el pin está bajo y alto es cuando el pin está alto.

Para obtener el código Arduino completo, visite nuestra guía aquí: Código Arduino del actuador lineal de efecto Hall

El código moverá el actuador hacia adelante o hacia atrás en una cantidad determinada cuando presione los botones en el pin 7 u 8 (activo BAJO). También incluye una rutina de búsqueda. Esto es importante ya que si hace funcionar el motor durante mucho tiempo de un lado a otro puede perder la cuenta aquí y allá y poco a poco perder la noción de dónde se encuentra. La rutina de referencia mueve el actuador lineal de regreso a una posición conocida, para que el contador pueda restablecerse.

 

Actuador Raspberry Pi

Entonces, ¿cómo se conecta un actuador a una Raspberry Pi 2, 4 o un modelo más nuevo? Controlar un actuador lineal con una Raspberry Pi es simple y se puede hacer a través de Internet, lo que permite el control inalámbrico. Siga los pasos de la siguiente guía para ver exactamente cómo: Control del actuador lineal Raspberry Pi .

La Raspberry Pi 4 se utiliza para ejecutar el software del servidor y recibir comandos para el control del actuador lineal. Sin embargo, esta guía no utiliza un sensor de efecto Hall. Para hacerlo, se puede conectar una placa Arduino al actuador lineal y a la Raspberry Pi para enviar/recibir datos de forma inalámbrica. Aunque la Raspberry Pi también se puede usar directamente para leer datos de sensores, al igual que el Arduino, puede resultar excesivo si solo controlas unos pocos actuadores lineales.

Control de múltiples actuadores lineales

Actuador con sensor de efecto Hall IP66 Modelo: PA-04-HS

Si necesita controlar varios actuadores lineales con una Raspberry Pi o Arduino, necesitará algunos componentes adicionales y será necesario ajustar el código. Se pueden sincronizar dos o más actuadores lineales mediante el seguimiento de los recuentos de los sensores del efecto Hall, y si los recuentos de los actuadores lineales se separan demasiado, cada actuador lineal se ralentizará para igualar las posiciones.

Vea el conjunto completo de instrucciones aquí: Controle múltiples actuadores lineales con un microcontrolador

Alternativamente, si la sincronización no es parte de su aplicación prevista, simplemente use un Arduino para uno o dos actuadores, dependiendo de la cantidad de pines de interrupción disponibles. Para controlar más actuadores, puedes usar más placas Arduino u obtener un escudo Arduino con más pines de interrupción.

[cta-contenido]

¡Explore nuestra gama de microcontroladores para obtener el máximo control de actuadores!

Explorar microcontroladores

Conclusión

Si está preparado para el desafío, existen métodos adicionales que puede probar usando un Arduino con actuadores lineales para controlar el movimiento, como usar algún código PID ingenioso, que puede ver aquí: Control PID del actuador lineal . Un sensor de efecto Hall dentro de un actuador lineal, como el PA-04-HS , proporciona un nivel adicional de control que se puede configurar fácilmente con la ayuda de un Arduino o Raspberry Pi. Ya sea que su aplicación solo requiera leer datos del sensor o desee llevar su actuador lineal al siguiente nivel poniéndolo en línea, un sensor de efecto Hall, combinado con un microcontrolador de su elección, es el camino a seguir.

Si tiene alguna consulta sobre el contenido de este artículo o simplemente desea analizar posibles soluciones de productos, contáctenos y estaremos encantados de ayudarle.