VELOCÍMETRO USANDO ARDUINO Y PROTOCOLO CAN

Resumen:

Este artículo tiene como objetivo que los lectores exploren cómo funciona el velocímetro en los automóviles modernos. Aquí os podéis hacer una idea del Bus CAN que se utiliza en la Comunicación de Sensores, Actuadores y Controladores en un coche.

Controller Area Network o protocolo CAN es una metodología de comunicación entre diversos dispositivos electrónicos como sistemas de gestión del motor, control de marchas, suspensión activa, ABS, airbags, control de iluminación, aire acondicionado, cierre centralizado, etc. Para obtener más aprendizajes, consulte este artículo.

Protótipo de velocímetro baseado em Arduino usando interface CAN

Fig. 1: Prototipo de velocímetro basado en Arduino usando interfaz CAN

Descripción:

Requisitos previos y equipo:

Necesitará lo siguiente:

  1. Dos placas Arduino o un clon de Arduino (aquí tienes una guía si la necesitas)

  2. Un módulo Bluetooth TTL-UART de 5v.

  3. LCD, Sensor de Proximidad, Motor DC y Servomotor.

  4. Arduino IDE para programación.

  5. Dos CAN Tranciever.

Aquí, para simular la medición de RPM del motor, utilizamos un sensor de proximidad industrial utilizado para medir la velocidad de objetos giratorios y un motor de CC cuya velocidad está controlada por el Preset.

Sensor de proximidad inductiva:

Para la detección sin contacto de objetivos metálicos a distancias inferiores a 50 mm (2 pulgadas) se utilizan principalmente sensores de proximidad inductivos. Estos sensores tienen un área de detección donde se emite un campo electromagnético alterno. Cuando un objetivo metálico ingresa al área de detección, se inducen corrientes parásitas en el objetivo, lo que resulta en un cambio de estado en la salida del sensor.

Aquí la salida del sensor será alta cuando se coloque un metal cerca del área de detección y viceversa. Usando esto podemos hacer un arreglo que proporcione solo un pulso alto por cada revolución del motor. Contar las pulsaciones durante un minuto puede darte las revoluciones por minuto.

Medición de velocidad:

Este proyecto utiliza un sensor de proximidad inductivo para detectar la presencia de un metal. Cada vez que un metal se acerca al sensor, este puede detectarlo. En consecuencia, este tipo de sensor se puede utilizar para hacer muchas cosas. Por ejemplo, si necesitamos detectar cuando una puerta está cerrada, podemos colocar metal en la puerta y el sensor en el marco de la puerta. Siempre que la puerta se cierra, el metal está cerca del sensor y podemos detectar que la puerta está cerrada.

Este mismo principio se puede utilizar para hacer un velocímetro para una bicicleta o cualquier otro vehículo sin contacto fijando un metal en la rueda y colocando un sensor en algún lugar del cuadro de la bicicleta, el tiempo necesario para una revolución se puede medir mediante contando el intervalo de tiempo entre las dos detecciones.

La configuración se realiza de la siguiente manera, se conecta un tornillo a la parte giratoria del motor y se proyecta una pequeña distancia. El motor funciona con una fuente de alimentación de 12V.

La señal se vuelve alta cuando el tornillo está cerca del sensor colocado cerca del motor.

Los numeros…

RPM = 60000000/timerrevCalc;

Dónde:

60 = segundos en un minuto.

Duración = cantidad de tiempo en el área de detección expuesta al metal en los EE. UU.

1,4574 = la muesca de metal es 1,4574 veces más pequeña que el resto de la rueda; este número debe calcularse y ajustarse según la aplicación.

60000000 es una conversión de nodos a segundos simples.

Esto parece ser MUY rápido en la lectura de RPM. Las RPM se calculan con CADA pulso. Entonces, en lugar de utilizar una interrupción y tener que esperar el intervalo de interrupción para actualizar los datos, los datos llegan después de que se cronometra cada pulso. Además, cuando utilizas interrupciones tienes una resolución limitada. Ejemplo, 1 pulso contado en 250 ms, entonces 4 pulsos por segundo o 240 RPM y 2 pulsos por 250 ms, entonces 8 pulsos por segundo o 480 RPM. 1 aumento en el pulso conducirá a un aumento de 240 RPM. Para obtener una mejor resolución, necesita un intervalo de interrupción más largo. Pero al mismo tiempo, intervalos de interrupción más largos conducirán a una respuesta más lenta.

Imagem mostrando conexões CAN Bus com velocímetro baseado em Arduino

Fig. 2: Imagen que muestra las conexiones del bus CAN con el velocímetro basado en Arduino

Conexiones para Arduino y Sensor del lado TX:

El sensor utilizado aquí tiene tres cables donde el rojo y el negro son VCC y GND y el cable verde es la salida digital del sensor. Como se indicó anteriormente, la salida aumentará cuando el metal esté cerca del área de detección.

El VCC del sensor está conectado a 5V. El GND del sensor está conectado al pin GND del Arduino. Y la salida Vout o Digital del sensor está conectada al pin de interrupción de Arduino (pin 2).

Ejecutando el programa:

Cargue el programa TX.ino después de guardarlo en su computadora y ábralo en el IDE de Arduino.

  • Compile el programa en el IDE de Arduino.

La siguiente función se utiliza para enviar los valores al bus CAN. Las instrucciones detalladas se pueden encontrar aquí.

CAN.sendMsgBuf(0x70,0, 2, stmp);

Recibir datos CAN y mostrarlos en una pantalla LCD en el lado RX:

Cargue el programa RX.ino después de guardarlo en su computadora y ábralo en el IDE de Arduino.

  • Compile el programa en el IDE de Arduino.

La siguiente función se utiliza para recibir valores del bus CAN y mostrarlos en una pantalla LCD. Las instrucciones detalladas se pueden encontrar aquí.

CAN.readMsgBuf(&len, buf);

Cargando software a Arduino:

Si eres nuevo en Arduino, puedes comenzar aquí. Deberías comenzar con el IDE de Arduino (entorno de desarrollo integrado). Descargue el código del enlace siguiente y cárguelo en la placa Arduino.

El sistema funciona de la siguiente manera:

  • El procesador DISPLAY que espera el mensaje RPM actual enviado por el procesador COLLECTOR a través del bus CAN.

  • El procesador COLLECTOR mide las RPM, las formatea y las envía al procesador DISPLAY a través del bus CAN.

  • El procesador DISPLAY lee el mensaje del bus CAN y lo muestra en la pantalla LCD que se repite.

    Montaje de herrajes:

Imagem mostrando o conjunto do sensor no motor DC para detectar sua velocidade de rotação

Fig. 3: Imagen que muestra el conjunto del sensor en el motor de CC para detectar su velocidad de rotación

Imagem mostrando a fiação do sensor de proximidade indutivo

Fig. 4: Imagen que muestra el sensor de proximidad inductivo conectado cerca del conjunto del motor

Imagem mostrando a fiação do sensor de proximidade indutivo

Fig. 5: Imagen que muestra el cableado del sensor de proximidad inductivo

Imagem típica de sensor de proximidade indutivo

Fig. 6: Imagen típica de un sensor de proximidad inductivo

Haga el circuito como se muestra en el diagrama del circuito. Realiza el circuito con las piezas seleccionadas y conecta los motores al circuito.

Diagramas de circuito

Diagrama de circuito-Velocímetro basado en Arduino usando interfaz CAN

Vídeo del proyecto

contenido relacionado

Regresar al blog

Deja un comentario

Ten en cuenta que los comentarios deben aprobarse antes de que se publiquen.