+57 318 518 2262 WhatsApp Envío gratis desde $300.000

Generador de señales CKP/CMP con Arduino: armado y uso en el banco de pruebas

Este equipo de banco entrega la señal de CKP y CMP sin necesidad de crancar: sirve para probar módulos de inyección, arneses y tableros con un patrón 60-2, 36-1 o 24-1 conocido. Se arma con un Arduino UNO, un Keypad Shield LCD 16x2 y un potenciómetro de 5K, y trae una función para crear señales propias como 20-1, 20-2, 58+2 y 58-2.

Generador de señales CKP/CMP con Arduino: armado y uso en el banco de pruebas

El generador de señales CKP/CMP con Arduino es un equipo de banco que reemplaza al motor: entrega la señal del sensor de cigüeñal y de levas sin crancar, para probar módulos de inyección, bobinas y arneses sobre el mesón. Resuelve un problema concreto: cuando llega una ECU sospechosa y no hay vehículo disponible, no se sabe si la falla está en el módulo o en el sensor que lo alimenta. Con este equipo se inyecta un patrón 60-2, 36-1 o 24-1 y se observa si la ECU sincroniza.

Para qué sirve en el banco de pruebas

En el vehículo la señal solo existe con el motor girando, y girando aparecen ruidos y fallas térmicas que confunden el diagnóstico. En el banco esas variables se eliminan: el patrón sale continuo, con el motor detenido.

  • Verificar que la ECU sincroniza antes de instalar el módulo en el vehículo.
  • Comprobar el arnés completo desde el conector del sensor hasta la ECU.
  • Probar tableros y cuentarrevoluciones que toman las rpm de la señal de cigüeñal.
  • Reproducir fallas intermitentes hasta hallar el patrón que hace fallar al módulo.

Es la contraparte del diagnóstico con osciloscopio: allá se mide la señal del sensor, aquí se genera la que el vehículo debería producir. El proyecto se vendía como referencia por 15 USD y se arma con un Arduino UNO, un Keypad Shield LCD 16x2 y un potenciómetro de 5K.

Señales que genera

El equipo trae las señales sincrónicas más usadas y una función para crear patrones propios. Las predefinidas son 60-2, 36-1 y 24-1: se eligen en el menú y se emiten de inmediato.

SeñalComposiciónOrigen
60-260 dientes con 2 faltantesPredefinida
36-136 dientes con 1 faltantePredefinida
24-124 dientes con 1 faltantePredefinida
20-120 dientes con 1 faltanteCrear Señal
20-220 dientes con 2 faltantesCrear Señal
58+258 dientes más 2 de referenciaCrear Señal
58-258 dientes con 2 faltantesCrear Señal

La función "Crear Señal"

El menú incluye Crear Señal, que permite definir un patrón indicando el total de dientes, cuántos faltan y en qué orden aparecen; con ella se construyen los 20-1, 20-2, 58+2 y 58-2. El potenciómetro de 5K ajusta la velocidad, es decir, las rpm equivalentes.

Lista de materiales

  • Arduino UNO, la placa que se selecciona en el IDE.
  • Keypad Shield LCD 16x2 con botones UP, DOWN, LEFT, RIGHT y SELECT.
  • Potenciómetro de 5K para ajustar la velocidad.
  • Librería TimerOne de Paul Stoffregen, del gestor de librerías del IDE.
  • Cable USB para alimentar y cargar el sketch.
  • Cables y bornera de salida hacia el módulo o el arnés.
  • Fuente de 12 V para el módulo, aparte de la del Arduino.
  • Osciloscopio para verificar la señal antes de conectarla.

Armado paso a paso

  1. Revisa el Keypad Shield. Pines rectos y LCD 16x2 bien soldado: un pin torcido es la causa más común de que la pantalla no muestre nada.
  2. Monta el shield sobre el Arduino UNO, alineando los pines y presionando parejo.
  3. Identifica los pines ocupados. El shield reserva el pin A0 para las teclas; de los pines libres sale la señal.
  4. Conecta el potenciómetro de 5K a alimentación, masa y una entrada analógica distinta de A0.
  5. Arma la salida hacia la bornera, con masa común con el módulo.
  6. Verifica continuidad y polaridad antes de energizar.
  7. Conecta el Arduino por USB y prueba los cinco botones. El LCD debe mostrar el menú; si enciende sin texto, ajusta el contraste.
  8. Verifica la señal con el osciloscopio seleccionando 60-2, y confirma que el hueco de dos dientes se repite en cada vuelta.
  9. Conecta el módulo bajo prueba y repite la verificación en su entrada.

Cómo se leen los botones del shield por el pin A0

Este es el detalle que más confunde al armar el equipo. Los cinco botones del Keypad Shield no usan un pin digital cada uno: todos entran por el pin A0. Cada botón cierra un divisor de tensión distinto, así que entrega un nivel de tensión diferente que el código interpreta con analogRead(A0). Si dos botones parecen hacer lo mismo, los umbrales quedaron mal calibrados.

int tecla = analogRead(A0);   // los cinco botones entran por A0

if (tecla < 50)        { /* RIGHT  */ }
else if (tecla < 200)  { /* UP     */ }
else if (tecla < 400)  { /* DOWN   */ }
else if (tecla < 600)  { /* LEFT   */ }

Esos umbrales son ilustrativos: los reales se confirman leyendo por el puerto serie el valor que entrega analogRead(A0) con cada botón presionado.

Por qué se usa la librería TimerOne

La señal de la rueda fónica debe salir con separación constante entre pulsos. Si se generan dentro del bucle principal, cualquier otra tarea (refrescar la pantalla o leer los botones) retrasa la siguiente transición y el patrón sale irregular: la ECU pierde el sincronismo. Por eso los pulsos se emiten por interrupción con TimerOne.

#include <TimerOne.h>

void setup() {
  pinMode(PIN_SALIDA, OUTPUT);
  Timer1.initialize(10000);        // base de tiempo, en microsegundos
  Timer1.attachInterrupt(pulso);   // el pulso se emite por interrupcion
}

La base de tiempo define la separación entre dientes y las rpm equivalentes. Para 60-2, la frecuencia de referencia del régimen de arranque es de [valor de referencia: completar] Hz.

Instalación del sketch desde el IDE de Arduino

  1. Instala el IDE de Arduino y conecta el Arduino UNO por USB.
  2. Instala la librería TimerOne desde el gestor de librerías; sin ella el sketch no compila.
  3. Abre el sketch del generador y revisa que los pines coincidan con tu montaje.
  4. Selecciona la placa: en Herramientas, Placa, elige Arduino UNO.
  5. Selecciona el puerto: en Herramientas, Puerto, elige el puerto COM correspondiente.
  6. Sube el sketch con el botón Subir.
  7. Confirma en la pantalla: el LCD 16x2 debe mostrar el menú principal.

Cómo se usa

El manejo es por menú en la pantalla LCD, sin computador:

  1. Pantalla principal. Al encender muestra las señales predefinidas y la creación de señal.
  2. Elige con UP y DOWN la señal que necesitas y confirma con SELECT; el equipo emite de inmediato.
  3. Ajusta la velocidad con el potenciómetro de 5K hasta el régimen que quieras probar.
  4. Para un patrón propio, baja con DOWN hasta Crear Señal y confirma con SELECT.
  5. Dentro de Crear Señal, usa UP y DOWN para el número de dientes y LEFT y RIGHT para moverte entre los campos.
  6. Guarda y emite con SELECT. Verifica el resultado en el osciloscopio antes de conectarlo al módulo.
  7. Para volver al menú principal, usa la combinación de retorno del sketch o reinicia la placa.

Errores comunes

  • Confundir los umbrales de los botones por A0. Si la comparación no se calibró para ese shield, un botón dispara la acción de otro.
  • Generar los pulsos en el bucle principal. El patrón sale irregular y se culpa al módulo.
  • Omitir la masa común. Sin masa compartida la señal no tiene referencia.
  • No verificar la señal antes de conectarla. Un pulso mal configurado puede dañar un módulo.
  • Alimentar el módulo desde el USB del Arduino. El consumo produce reinicios constantes.
  • Usar el pin A0 para otra cosa. Ese pin ya está ocupado por los botones.
  • Elegir la placa o el puerto equivocados en el IDE. El error parece del código y es de configuración.

Artículos relacionados

El código completo del generador, con el menú del LCD, la lectura de los botones por A0, la función Crear Señal y los patrones con TimerOne, está en la tienda: Generador de señales CKP/CMP con Arduino (código + guía).

¿Necesitas ayuda?