Sei sulla pagina 1di 2

EMULADOR DE ECUS CKP Y CMP

el emulador quiero que lo realices en arduino uno y con una pantalla lcd 16x2 que tenga dos
salidas por puerto digital uno para CKP y otro para CMP a inicio en la pantalla que prenda e
escriba EMULADOR DE CKP Y CMP luego primero que se coloque Numero de dientes CKP este
dato 34 y eso puede ser cualquiera numero pero no pasa los 60 luego escribimos el numero de
vacios dientes 4 en realidad 2 pero internamente tiene que multiplicarse por 2 estos también
pueden ser cualquier numero,esos lugares donde se se debe llenar y correr el programa esta
abajo marcado con colores amarillo y rojo en función a esos parámetros se genera la onda
cuadrada y con el potenciómetro ir cambiando la frecuencia de 50hz hasta 2khz hasta ahí seria
cpk ahoraaa para cmp lo mismo pero en otro pin que haga lo mismo

/*

*****************************************************************************
***************

* Proyecto: Generador de señal CKP de 60-2 dientes *

* Autor : Jorge Vázquez *

* Fecha : 18/04/2014 *

* Versión : 1.0 Arduino UNO *

* Notas : Conecte un pin 10k del potenciómetro el pin 1 a VCC, pin 2 a A0, pin 3 a GND. *

* Salida de señal TTL CKP es en el pin 12. *

*****************************************************************************
***************

*/

int PotValue = 0; // Variable para almacenar el valor procedente del sensor

int RPMdelay=0; // Variable para la RPM

int CKPpin = 12; // Pin salida CKP


int PotPin = A0; // Pin de entrada para el potenciómetro

void setup() {

pinMode(CKPpin, OUTPUT); // Configuración del pin de salida

} // Fin bucle Setup

void loop() {

PotValue = analogRead(PotPin)+5; // Leer el valor del potenciómetro y le da un valor


mínimo de 5

RPMdelay = 5000 / PotValue; // Variable para las RPM. 50000rpm > 7.000 rpm, que es
lo suficientemente

for (int j = 0; j < 5; j++) { // Actualización de la RPM cada 5 ciclos

for (int i = 0; i < 34; i++) { // 58 de los 60 dientes de pausa del ciclo alta/pausa/bajo/pausa

digitalWrite(CKPpin, HIGH); // Pin CKP en High

delayMicroseconds(RPMdelay); // Pausa según el valor de la variable

digitalWrite(CKPpin, LOW); // Pin CKP LOW

delayMicroseconds(RPMdelay); // Pausa según el valor de la variable

} // Fin bucle For

for (int i = 0; i < 4; i++) { // Indicamos el número de huecos multiplicado por 2

delayMicroseconds(RPMdelay); // Pausa según el valor de la variable

} // Fin bucle For

} // Fin bucle For

} // Fin bucle Loop

Potrebbero piacerti anche