Hola, estoy tratando de robar señal a un sensor de árbol de levas (ya trabajando con su ecu), con la función de detectar giro en motor, me dan igual rpms y demás, simplemente observo el cambio de estado de la señal y digo, gira o no gira. El problema viene, de que estoy perturbando la señal original de algún modo, pues funciona un par de arranques y luego empieza a sacar fallos de sincronización de levas en ecu, el sensor es un hall, alimentado por 5v de la propia ecu, es capaz de suministrarme 10-20ma en los dos flancos de tensión sin problema en pruebas en banco, desconectado el sistema se recompone en un par de arranques, le cuesta, es como si memorizara algún ajuste de tiempos en ecu.
Probé con un pc123 para aislar la señal, pero me di cuenta de lo que pasaba y acabé alimentando directamente a la entrada de Arduino a través de una resistencia de 500ohms, pero es que el resultado es similar. La señal viaja un metro por un cable de 0.35mm2, las alimentaciones a Arduino y demás sensores están en 0.5mm2, yo no creo que sea ruido, pero lo comento, no he metido osciloscopio aún, será el siguiente paso.
Yo pensaba que el auto sería bastante robusto como para robarle unos pocos julios para mí, pero se está comportando como delicadito o no caigo yo en algún problema.
Así estoy usando interrupciones, lo he extraído del código por qué hay más cosas y por no volverse loco, pero diría que aquí no hay problema no?
const int sensorlevas = 2;
volatile unsigned long ultimaDeteccion = 0;
void detectarLevas() {
ultimaDeteccion = millis();
}
void setup() {
attachInterrupt(digitalPinToInterrupt(sensorlevas), detectarLevas, RISING);
pinMode(sensorlevas, INPUT);
}
void loop()
{
if ( millis() - ultimaDeteccion < 500)
Probé con un pc123 para aislar la señal, pero me di cuenta de lo que pasaba y acabé alimentando directamente a la entrada de Arduino a través de una resistencia de 500ohms, pero es que el resultado es similar. La señal viaja un metro por un cable de 0.35mm2, las alimentaciones a Arduino y demás sensores están en 0.5mm2, yo no creo que sea ruido, pero lo comento, no he metido osciloscopio aún, será el siguiente paso.
Yo pensaba que el auto sería bastante robusto como para robarle unos pocos julios para mí, pero se está comportando como delicadito o no caigo yo en algún problema.
Así estoy usando interrupciones, lo he extraído del código por qué hay más cosas y por no volverse loco, pero diría que aquí no hay problema no?
const int sensorlevas = 2;
volatile unsigned long ultimaDeteccion = 0;
void detectarLevas() {
ultimaDeteccion = millis();
}
void setup() {
attachInterrupt(digitalPinToInterrupt(sensorlevas), detectarLevas, RISING);
pinMode(sensorlevas, INPUT);
}
void loop()
{
if ( millis() - ultimaDeteccion < 500)