Tabla de contenido:
- Paso 1: elija un cable Sigal
- Paso 2: extienda el cable a la placa Arduino
- Paso 3: análisis de señales
- Paso 4: codifique su análisis de señal
- Paso 5: identificar un filtro
- Paso 6: filtrado: parte 1
- Paso 7: filtrado: parte 2
- Paso 8: filtrado: parte 3
- Paso 9: filtrado: parte 4
Video: Use Arduino para mostrar las RPM del motor: 10 pasos (con imágenes)
2024 Autor: John Day | [email protected]. Última modificación: 2024-01-30 08:42
Esta guía describirá cómo usé un Arduino UNO R3, una pantalla LCD de 16x2 con I2C y una tira de LED para usar como indicador de velocidad del motor y luz de cambio en mi auto de pista Acura Integra. Está escrito en términos de alguien con alguna experiencia o exposición al software Arduino o codificación en general, el software matemático MATLAB y la creación o modificación de circuitos eléctricos. En el futuro, esto puede revisarse para que sea más fácil de entender para alguien con poca o ninguna experiencia con estos temas.
Paso 1: elija un cable Sigal
Necesitará obtener una señal que se correlacione con la velocidad del motor. Es posible agregar un sistema que mida la velocidad del motor, pero es mucho más práctico conectarse a un cable existente que lleva información sobre la velocidad del motor. Un solo automóvil puede tener múltiples fuentes para esto, y puede variar enormemente incluso de un año a otro en un solo modelo de vehículo. Por el bien de este tutorial, usaré el ejemplo de mi automóvil, un Acura Integra LS 2000 modificado en pista. Encontré en mi motor (B18B1 con OBD2) que hay una salida de voltaje sin usar que es de 12 V de alto y cae a 0 V al completar una revolución completa.
Cosas que ayudarán a identificar una posible señal de velocidad del motor:
- Diagrama de cableado de su vehículo
- Búsqueda de foros para su vehículo que involucran señales de motor / ECU
- Un mecánico amigable o un entusiasta de los automóviles.
Paso 2: extienda el cable a la placa Arduino
Una vez que haya elegido una señal adecuada, deberá extenderla a donde sea que esté colocando su placa Arduino. Decidí colocar el mío dentro del vehículo donde solía estar la radio, así que pasé el nuevo cable del motor, a través de una arandela de goma en la pared contra incendios, y directamente al área de la radio. Dado que ya hay una gran cantidad de guías prácticas sobre cómo pelar, soldar y proteger el cableado, no explicaré este proceso.
Paso 3: análisis de señales
Aquí es donde las cosas pueden complicarse. Tener una comprensión general del análisis y los controles de señales le ayudará mucho, pero es factible con pocos conocimientos.
Lo más probable es que el cable de señal elegido no arroje el valor exacto de la velocidad del motor. Será necesario darle forma y modificarlo para que proporcione el número exacto de RPM del motor que desea. Debido al hecho de que cada automóvil y cable de señal diferente elegido puede ser diferente, a partir de este punto explicaré cómo usé la señal de posición del distribuidor en mi Integra.
Mi señal es normalmente de 12 V y cae a 0 V al completar una rotación completa. Si conoce el tiempo para completar una rotación completa o un ciclo completo, esto se puede traducir fácilmente en revoluciones / min utilizando algunos conceptos básicos.
1 / (segundos por ciclo) = ciclos por segundo o Hz
Revoluciones por minuto = Hz * 60
Paso 4: codifique su análisis de señal
Este método requiere obtener el tiempo que tarda la señal de entrada en completar un ciclo completo. Afortunadamente, el software Arduino IDE tiene un comando que hace exactamente eso, PulseIn.
Este comando esperará una señal para cruzar un umbral, comenzará a contar y dejará de contar cuando se vuelva a cruzar el umbral. Hay algunos detalles que deben tenerse en cuenta al usar el comando, por lo que incluiré un enlace a la información de PulseIn aquí:
PulseIn devolverá un valor en microsegundos, y para mantener las matemáticas simples, esto debería convertirse inmediatamente en segundos normales. Siguiendo las matemáticas del paso anterior, esta duración de tiempo se puede equiparar directamente a RPM.
Nota: después de prueba y error, descubrí que el distribuidor completa dos rotaciones por cada rotación del cigüeñal del motor, así que simplemente dividí mi respuesta por 2 para dar cuenta de eso.
Paso 5: identificar un filtro
Si tiene suerte, su señal no tendrá "ruido" (fluctuaciones) y la velocidad del motor será exacta. En mi caso, había mucho ruido proveniente del distribuidor que a menudo daba voltajes lejos de lo esperado. Esto se convierte en lecturas muy falsas de la velocidad real del motor. Este ruido deberá filtrarse.
Después de un análisis de la señal, casi todo el ruido llegó a frecuencias (Hz) mucho más altas que las que emitía el motor en sí (lo que es cierto para la mayoría de los sistemas dinámicos reales). Esto significa que un filtro de paso bajo es un candidato ideal para encargarse de esto.
Un filtro de paso bajo permite que pasen las frecuencias bajas (deseadas) y atenúa las frecuencias altas (no deseadas).
Paso 6: filtrado: parte 1
El diseño del filtro se puede hacer a mano, sin embargo, utilizar MATLAB acelerará esto significativamente si tiene acceso al software.
Un filtro de paso bajo puede equipararse a una función de transferencia (o fracción) en el dominio de Laplace (dominio de frecuencia). La frecuencia de entrada se multiplicará por esta fracción y la salida es una señal filtrada que solo tiene la información que desea utilizar.
La única variable de la función es tau. Tau es igual a 1 / Omega, donde Omega es la frecuencia de corte que desea (debe estar en radianes por segundo). La frecuencia de corte es el límite donde se eliminarán las frecuencias más altas y se mantendrán las frecuencias más bajas.
Establezco la frecuencia de corte igual a una RPM que mi motor nunca alcanzará (990 RPM o 165 Hz). Los gráficos FFT muestran aproximadamente qué frecuencias transportaba mi señal sin procesar y las frecuencias que salieron del filtro.
Paso 7: filtrado: parte 2
Aquí se volvió a utilizar MATLAB por cuestión de tiempo. Se define la frecuencia de corte y, a partir de ella, se muestra la función de transferencia resultante. Tenga en cuenta que esta fracción solo se aplica al dominio de Laplace y no se puede usar directamente en un microcontrolador basado en el tiempo como Arduino UNO R3.
Paso 8: filtrado: parte 3
MATLAB tiene un comando que convertirá una función continua (dominio de frecuencia) en una función discreta (dominio de tiempo). La salida de este comando proporcionará una ecuación que se puede incorporar fácilmente al código IDE de Arduino.
Paso 9: filtrado: parte 4
En el boceto de Arduino, incluya las variables uey antes de la configuración. El comando float simplemente define cómo la variable almacenará los datos (cosas como valor máximo, decimales, etc.) y aquí se proporcionará un enlace para obtener más información sobre esto: https://www.arduino.cc/reference/en/language / varia…
En el bucle donde se lleva a cabo la conversión de la señal sin procesar a la velocidad del motor, incluya la variable uy la ecuación múltiple y. Hay varias formas de emplear esto, pero la variable u debe establecerse igual a la señal de entrada sin procesar que se está midiendo, y la variable y será el valor filtrado.
Recomendado:
¡Use Cortana y un Arduino para controlar los LED RGB o las tiras de LED con su voz !: 4 pasos (con imágenes)
¡Use Cortana y un Arduino para controlar los LED RGB o las tiras de LED con su voz !: En este instructivo, le mostraré cómo puede controlar su tira de LED o LED RGB con su voz. Esto lo hace la aplicación CoRGB, que está disponible de forma gratuita en la tienda de aplicaciones de Windows. Esta aplicación es parte de mi proyecto CortanaRoom. Cuando hayas terminado con
Control autónomo de las RPM del motor mediante el sistema de retroalimentación de un tacómetro basado en infrarrojos: 5 pasos (con imágenes)
Control autónomo de las RPM del motor mediante el sistema de retroalimentación de un tacómetro basado en infrarrojos: siempre existe la necesidad de automatizar un proceso, ya sea simple / monstruoso Tuve la idea de hacer este proyecto a partir de un simple desafío que enfrenté al encontrar métodos para regar / regar nuestra pequeña parcela de tierra. El problema de no tener una línea de suministro actual
Mostrar texto en la pantalla LED P10 con Arduino: 5 pasos (con imágenes)
Mostrar texto en la pantalla LED P10 usando Arduino: Dotmatrix Display o más comúnmente denominado Running Text se encuentra a menudo en las tiendas como un medio para publicitar sus productos, es práctico y flexible en su uso que alienta a los actores comerciales a usarlo como consejo publicitario. Ahora el uso de Dot
El hielo congelado dentro de las latas Altoids las hace más rígidas para cortar agujeros, etc.: 3 pasos
El hielo congelado en el interior de las latas Altoid las hace más rígidas para cortar agujeros, etc. Las latas Altoid son estuches y chasis excelentes para proyectos de electrónica y radioaficionados, pero son difíciles de cortar ya que el metal tiende a doblarse y romperse fácilmente. En este instructable se muestra una forma sencilla de sostener el metal de estas latas altoid. El acercamiento
Use SSH y XMing para mostrar programas X desde una computadora con Linux en una computadora con Windows: 6 pasos
Use SSH y XMing para mostrar programas X desde una computadora con Linux en una computadora con Windows: si usa Linux en el trabajo y Windows en casa, o viceversa, es posible que a veces necesite iniciar sesión en la computadora en su otra ubicación y ejecutar programas. Bueno, puede instalar un servidor X y habilitar el túnel SSH con su cliente SSH, y uno