Professional Documents
Culture Documents
Proyectante:
Director/es:
Fdo.: Fdo.:
Lugar y fecha:
Lugar y fecha:
3
4
ÍNDICE
Introducción…………………………………………………………………..7
1-Introducción a la gestión del motor………………………...9
1.1-Sistemas de inyección electrónica.………………………………...9
1.1.0-Motores de inyección en el tubo de admisión (Indirecta)………...13
1.1.1-Motores de inyección directa de gasolina.………………………...16
1.1.2-Motores de inyección directa diesel……………………………….17
1.1.3 -El sistema de encendido……………………………………………21
1.2-La gestión del motor de gasolina……………………………..…..24
1.2.0-La señal base.……………………………………………………..…24
1.2.1- Factores correctivos………………………………………………..25
1.3-La gestión del motor diesel………………………………………...27
1.3.0-Introducción………………………………………………………...27
1.3.1-Estados de servicio……………………………………………….…27
1.3.2-Válvulas de inyección mecánica…………………………………...29
1.3.3-Activación de las electroválvulas…………………………………..30
1.3.4-Regulación Lambda para turismos diesel………………………...31
1.4-Sistemas de reducción de emisiones…………………………......32
1.4.0-Sistema de recirculación de gases de escape……………………....33
1.4.1-Sistema de insuflación de aire secundario.……………………......33
1.4.2-Sistema de retención de evaporación de combustible…………....33
1.4.3-Sistema de purga del cárter del cigüeñal……………...………..…33
1.5-Sensores………………………………………………………………...34
1.5.0 Sensores de temperatura……………………………………………34
1.5.1 Sensores de presión micromecánicos………………………………35
1.5.2 Sensores de revoluciones inductivos……………………………….36
1.5.3 Sensores de anillos de cortocircuito semidiferencial……………...39
1.5.4 Sensor de movimiento de aguja…………………………………….40
1.5.5 Medidor de masa de aire de película caliente……………………..42
1.5.6 Sonda Lambda…….…………………………………………………43
1.5.7 Sensores potenciométricos….……………………………………….44
1.6-Actuadores…………………………………………………………….45
1.6.0 Actuador de la presión de sobrealimentación.....…………………45
1.6.1 Válvula de realimentación de gases de escape…………………….46
1.6.2 Electrobomba de combustible……………………………………..46
1.6.3 Actuador de vórtice…………………………………………………48
1.6.4 Chapaleta en el tubo de admisión………………………………….48
1.6.5 Válvula de mariposa…………………………………………….…..48
1.6.6 Actuadores en sistemas Common Rail…………………………….48
1.6.7 Actuadores en bombas rotativas de inyección de embolo……….. 50
axial, de mando por aristas .
1.6.8 Actuadores en un sistema de inyección de gasolina………………52
5
1.7-La Unidad electrónica de control………………………………...53
1.7.0 Introducción………………………………………………………...53
1.7.1 Funciones del OBDII…………………………………….……58
1.7.2 Funciones del diagnostico de a bordo y de emergencia....…59
1.7.3 Interfaz de diagnostico…………………………………….….62
1.7.4 Estudio técnico sobre códigos de averías....…………….……63
2–Realización del programa OBDII………………….…..65
2.0-Introducción………………………………………………….....65
2.1-Software de diagnostico OBD……………………………....69
2.1.0 Datos de inicio y monitorización…………………………….70
2.1.1 Leer datos de sensores…………………………………….....74
2.1.2 Leer y borrar DTC…………………………………………...82
2.1.3 Datos Congelados………………………………………….....86
2.1.4 Analisis de Sensores O2……………………………………...88
2.1.5 Opciones de configuración……………………………….….90
3 –Realización del comprobador de
electroválvulas…………………………………………………...91
3.0-Introducción……………………………………………………91
3.1-Electrónica aplicada al circuito……………………………92
3.2-Software aplicado al microcontrolador PIC……………95
3.3-Vistas del PCB……………………………………………….…99
4- Conclusiones y trabajos futuros…………………….….101
5- Bibliografía……..………………………………………………....105
6
Introducción
La implantación de sistemas electrónicos en los automóviles hace necesario un sistema
de autodiagnóstico capaz de autosupervisarse, detectar, almacenar y evaluar fallos para
el diagnostico. Hasta hace pocos años el sistema funcionaba en la forma específica del
fabricante, pero con el aumento de la severidad para los valores de los gases de escape,
los legisladores vieron en el autodiagnóstico un medio auxiliar de supervisión de estos
gases e introdujeron la estandarización independientemente del fabricante. Este
sistema adicional se denomina sistema OBD (On-Board Diagnostics System).
7
forma gráfica las averías de los sensores y actuadores. La otra parte del proyecto es un
comprobador de actuadores que funcionen con señales PWM, con el objeto de
comprobar físicamente el funcionamiento de éstos. Este comprobador contiene un
generador de señal PWM regulable, un frecuenciómetro y un medidor del duty-cycle de
la señal.
8
Capítulo 1
Introducción a la gestión electrónica del motor.
9
Figura 1: Emisiones en función de la proporción aire/gasolina.
10
Figura 3: Mapa numérico de inyección MoTeC M800 para Audi A4
Los tipos de inyección se pueden clasificar según la ubicación del inyector, el modo de
inyección y el número de inyectores.
Según la ubicación del inyector, la formación de la mezcla se puede producir en el
interior o en el exterior de los cilindros.
Con la formación externa de la mezcla existe la inyección monopunto (un solo
inyector suministra el combustible a los cilindros) y la inyección individual. Con la
formación interna de la mezcla, se obtiene la tan extendida inyección directa en
motores diesel que requiere un tipo especial de inyector que resista las altas presiones de
la cámara de combustión.
Con la inyección indirecta el modo con que se produce la inyección en los cilindros
puede ser: intermitente simultáneo, continuo simultáneo, secuencial o inyección
individual para cada cilindro.
1.- Inyección intermitente simultánea: Los inyectores de todos los cilindros se abren y
cierran a la vez sin importar la fase del ciclo de cada cilindro. De esta forma, el
combustible se acumula detrás de la válvula de admisión hasta la apertura de ésta en la
fase correspondiente.
2.- Inyección intermitente por bancada o continua simultanea: En este caso, la central
de control, identifica los cilindros de la misma bancada (típico de motores en V para
11
evitar pulsaciones en la rampa de inyección) o bien aquéllos que suben y bajan
simultáneamente, como en el caso de un 4 cilindros, inyectar al mismo tiempo al 1-4 y
2-3.
3.- Inyección secuencial: En esta inyección se permite que cada cilindro sea alimentado
en la fase de admisión y en el momento más apropiado de ésta, definiendo momento de
apertura y cierre en grados de cigüeñal. Estas ventajas reducen considerablemente la
adhesión de combustible a las paredes de colector, mejoran la mezcla y por consiguiente
las emisiones contaminantes.
4.- Inyección individual para cada cilindro: Este tipo de inyección ofrece los mayores
grados de libertad. Comparado con la inyección secuencial ofrece la ventaja de poderse
influir aquí de modo individual en el tiempo de inyección para cada cilindro. De este
modo pueden compensarse desigualdades, por ejemplo en el llenado de los cilindros.
12
1.1.0 Motores de inyección en el tubo de admisión (indirecta).
Figura 7
El depósito de carbón activo retiene el vapor de combustible y sólo deja salir aire a la
atmósfera. Para regenerar el carbón activo, los gases del depósito se conducen a la
admisión a través de la válvula regeneradora, la cual se abre y cierra en forma de rampa
de tal forma que las divergencias que surjan con el regulador Lamda las aprenda la
unidad de control como corrección de mezcla. Con ayuda del sensor de presión
diferencial que mide la presión de gases del depósito y la válvula de cierre que regula la
cantidad de aire que entra al depósito de carbón, la unidad de control regula la mezcla
13
de estos gases para disminuir divergencias en la regulación lambda.
Cuando se produce un corte por deceleración en régimen de retención, se cierra la
válvula regeneradora para que no lleguen al catalizador vapores de gasolina sin quemar.
El sistema de alimentación de combustible está formado por la electrobomba de
combustible (25), el filtro de combustible (17), el regulador de la presión combustible
(4), y el inyector (5). La electrobomba de combustible bombea la gasolina hasta una
rampa de combustible donde está situado el regulador de presión y la entrada de
combustible a los inyectores. La presión de trabajo está situada entre 2’5 y 3’5 bares. El
caudal de combustible inyectado por la válvula depende del tiempo de inyección y de la
diferencia entre la presión del combustible en la rampa de combustible y la
contrapresión en el tubo de admisión. El regulador de presión deja refluir al depósito
exactamente la cantidad de combustible precisa para que permanezca constante la
diferencia de presión en los inyectores.
El actuador de ralentí o válvula de aire adicional (14) introduce aire por detrás de la
mariposa en forma de bypass, con el objeto de que exista un ralentí ajustado a las
necesidades de temperatura y carga del motor.
Existen dos maneras de realizar este ajuste, bien por la válvula de aire adicional antes
mencionada o mediante un control directo sobre la mariposa con un motor paso a paso.
El sistema de recirculación de gases de escape está formado por una electroválvula
neumática (6) que controla por vacío a la válvula de recirculación de gases (16). Este
sistema sirve para introducir los gases de escape por el tubo de admisión, con el objeto
de reducir la temperatura máxima de combustión. Como consecuencia de ello los
niveles de óxido de nitrógeno se reducen, repercutiendo también en la transformación
de energía y con ello el consumo de combustible.
Este sistema se introdujo en el automóvil para evitar la contaminación de gases NOx a
raíz de las restricciones de las legislaciones vigentes en el tema de polución del medio
ambiente.
El sistema de insuflación de aire en el escape está constituido por una bomba de aire
secundario (9) y una válvula de aire secundario. Este sistema tiene la función de
introducir a presión aire al colector de escape con el objeto de que el oxígeno aportado
acelere el calentamiento del catalizador, cuando el motor no tiene aún la temperatura de
servicio y la mezcla es rica. Esta reacción exotérmica origina también la reducción de
hidrocarburos y el monóxido de carbono.
El sensor de revoluciones (19) es un captador inductivo que informa a la unidad de
control de la posición del cigüeñal. Cada hueco entre dientes de la corona dentada
acoplada al volante de inercia, genera una señal rectangular al ordenador, si la
separación entre dientes es más del doble que la anterior y que la siguiente, se reconoce
un hueco entre dientes donde se sitúa una posición definida del cilindro número 1 y el
ordenador sincroniza la posición del cigüeñal. Como en cada diente la posición del
cigüeñal varía 3 grados, el calculador necesita más precisión para realizar el cálculo del
momento del encendido, por eso la duración temporal medida entre dos flancos se
divide por cuatro. De esta forma el ángulo de encendido es posible regularse en pasos de
0’75 grados.
El sensor de fase (8) es normalmente un detector Hall, el cual registra la posición del
árbol de levas. Esta información no puede obtenerse a través del sensor de revoluciones.
Con la información recibida por este sensor se puede saber qué pistón está en
compresión o en escape, pues la unidad de control necesita saber qué bobina debe ser
14
activada. Ya que los sistemas Motronic utilizan un sistema de distribución de chispa en
reposo de tensión (ROV) y bobinas de encendido de chispa simple, esta información es
fundamental.
El medidor de masa de aire (11) y el transmisor de la mariposa (13) son sensores
que determinan la carga del motor, magnitud principal para realizar el cálculo del
ángulo de encendido y el caudal de inyección.
El medidor de caudal registra el flujo volumétrico de aire (m3/h) aspirado por el motor.
El sistema Motronic incorpora un medidor de caudal, en el que el flujo aspirado desvía
una aleta-sonda contra la fuerza de recuperación constante de un muelle. La posición de
la aleta-sonda se registra mediante un potenciómetro. La tensión originada en su divisor
de tensión es una medida para el flujo volumétrico del motor.
Existen otras formas de medir el flujo de aire como el medidor de masa de aire de hilo
caliente o el medidor de masa de aire de película caliente los cuales originan la misma
función que el de aleta-sonda, que se comentarán en el apartado de sensores.
El transmisor de la mariposa registra el ángulo de la mariposa a través de un
potenciómetro con el objeto de determinar una señal de carga secundaria que se emplea
como información adicional para funciones dinámicas, para reconocimiento de margen
(ralentí, carga parcial, plena carga) y de señal de emergencia en caso de fallar el sensor
de carga principal.
El sensor de temperatura de aire (15) es una resistencia de coeficiente negativo
(NTC). Sirve para corregir en el cálculo de la inyección, las variaciones de densidad del
aire ocasionadas por las fluctuaciones de temperatura del aire.
El sistema de encendido está representado en el diagrama con la bobina de encendido
independiente (7) junto con la bujía.
El sensor de detonación (18) detecta los procesos de combustión anormales con
ruidos de “picado” producidos como consecuencia del autoencendido de mezcla fresca
todavía no alcanzada por el frente (llamas en el interior del cilindro). En caso de una
detonación prolongada, las ondas de presión y la temperatura pueden causar daños en el
motor.
La señal producida por el sensor de detonación es conducida al sistema Motronic, donde
se interpreta si el ángulo de encendido debe ser atrasado o no.
La sonda Lambda (21) mide la proporción de aire Lambda (λ), siendo ésta la relación
aire-combustible en la mezcla. Con Lambda=1 trabaja óptimamente el catalizador. La
señal que produce la sonda es parecida a una onda senoidal, transmitiendo al calculador
si la mezcla es pobre o rica según la tensión originada por la sonda. Con esta señal se
realiza una regulación Lambda haciendo que se modifique el tiempo de inyección,
permitiendo un control constante de la riqueza de la mezcla y por tanto, permaneciendo
en el margen optimo de λ=1.
La segunda sonda Lambda situada detrás del catalizador sirve para comparar la señal
con la primera y verificar que el catalizador funciona correctamente. En la figura 8 se
observa el aspecto de la señal de una sonda Lambda, y en la figura 9 se aprecia la
relación existente entre la tensión originada y el coeficiente lambda, junto con las
diferencias que hay en los gases originados en el escape (NOx, HC, CO) con tratamiento
catalítico y sin él.
15
Figura 8 Figura 9
Figura 10
16
1.1.2 Motores de inyección directa diesel
Existen tres sistemas diferentes a la hora de inyectar el gas-oil a los cilindros:
- Mediante una bomba rotativa.
- Sistema Common Rail.
- Unidad inyector-bomba o inyector-tubería-bomba
Figura 11
Figura 12
17
Bomba rotativa de inyección de émbolos radiales de mando por electroválvula.
Una electroválvula de alta presión regulada electrónicamente dosifica el caudal y el
comienzo de inyección (Figura 14). El avance de la inyección también es regulado
electrónicamente a través de un variador de avance. Los dos dispositivos son
controlados por la UCE con señales PWM.
Figura 14
Figura 15
18
1.- Retorno de combustible a deposito
2.-Conexión eléctrica
3.- Electroválvula
4.- Muelle
5.- Bola de válvula
6.-Estrangulador de entrada
7.- Estrangulador de salida
8.- Embolo de control de válvula
9.- Canal de afluencia
10 - Aguja del inyector
11.-Entrada de combustible a presión
12.- cámara de control
Figura 16
Los sensores que intervienen en la gestión electrónica en un sistema Common Rail son
los siguientes:
-Sensor de pedal acelerador con interruptor de ralentí y sobregás.
-Sensor de revoluciones del cigüeñal.
-Sensor de revoluciones y reconocimiento de cilindros (Árbol de levas).
-Sensor de alta presión del acumulador (Rail).
-Sensor de la presión de sobrealimentación.
-Sensor de la temperatura del motor.
-Sensor medidor de la masa de aire (caudalímetro).
Figura 17
19
Sistema inyector-bomba
Este sistema, figura 18, consta de una bomba de inyección (2) y el inyector (4)
formando una unidad. Por cada cilindro hay una unidad montada en la culata, accionada
por el árbol de levas del motor (1).
Como no hay conducto de alta presión se consiguen presiones de inyección de hasta
2050 bares, con lo que se consigue una mayor eficacia y rendimiento del motor.
La unidad de control calcula el tiempo de inyección y la regula mediante la apertura y
cierre de la electroválvula (3).
Esquema unidad Inyector-bomba Componentes de la unidad Inyector-bomba
Figura 18
Sistema Inyector-tubo-bomba
La unidad bomba-tubo-inyector trabaja de la misma forma que la unidad bomba –
inyector, a diferencia que el inyector y la bomba de inyección están separados por una
tubería corta. Con esta disposición es posible un montaje más sencillo adosado al
motor. En la figura (19) podemos apreciar un esquema de este sistema .A través de una
leva de accionamiento (6) empuja el embolo de la bomba (5) originando la presión de
inyección controlada por la electroválvula (4), y conducida por la tubería (3) hasta el
portainyector (2) y finalmente produciendo la inyección por el inyector (1).
En la figura (20) se aprecia una unidad bomba -tubo-inyector real.
20
Figura 19 Figura 20
1- Etapa de potencia.
2-Bobina
3-Diodo
4-Conexión secundario
Figura 21
21
La tensión secundaria máxima depende de la energía acumulada en la bobina de
encendido, de la capacidad del devanado, de la relación de multiplicación de la bobina
de encendido, de la carga secundaria y de la limitación de tensión primaria de la etapa
final de encendido.
Actualmente, el modo en que se distribuye la alta tensión a las bujías es totalmente
electrónica y gobernada por la unidad de control (distribución estática de la tensión),
evitando desgastes mecánicos como los ocasionados en las tapas de distribución
(delcos) en vehículos más antiguos
En la actualidad la unidad de control del motor conecta la etapa final de encendido
durante el tiempo de cierre. Dentro de este tiempo (ángulo de cierre) se genera la
corriente primaria en la bobina. Este tiempo debe ser preciso para no someter la bobina
de encendido a sobrecargas térmicas
El ángulo de cierre, que se refiere al cigüeñal, depende por eso del número de
revoluciones y de la tensión de la batería. Los valores para el ángulo de cierre están
almacenados en un diagrama característico sobre cuyos ejes están esbozados la tensión
de la batería y el número de revoluciones.
22
Figura 23
1. Angulo de encendido correcto Za. Posición del pistón y
2. Angulo de encendido demasiado avanzado Zb. cigüeñal en el momento
3. Angulo de encendido retrasado Zc del encendido Z.
El llenado del cilindro (carga) influye también en el ángulo de encendido hacia avance,
ya que el frente de llamas se extiende más lentamente si el llenado es reducido.
El ángulo de encendido influye en el par motor, las emisiones de gases y el consumo de
combustible. Por eso se prefija mediante diagramas característicos, determinados en los
bancos de ensayo de motores, para que cumpla todas las exigencias lo mejor posible.
Figura 24.Diagrama del ángulo del encendido en función del llenado del cilindro y rpm.
23
Figura 25
24
motor se consigue en la UCE la señal base.
En todas estas mediciones, la temperatura del aire y la presión del entorno, cambia la
densidad del aire realizándose una corrección de la señal base.
El tiempo de inyección básico se calcula mediante la señal base y de las constantes de
válvula de inyección. Esta constante es la relación entre el tiempo de activación de la
válvula y el caudal de paso. La multiplicación del tiempo de inyección con la constante
de válvula da como resultado la masa de combustible inyectado.
Este caudal de combustible será efectivo mientras:
-La presión diferencial entre la presión de combustible y la presión en el tubo de
admisión sea constante.
-Se compense mediante una corrección de la tensión de la batería, para que no influya
en la activación de los inyectores.
Figura 26
25
encendido retardado, aumentando la temperatura de los gases
-Combinación de mezcla rica con insuflación de aire secundario en el tubo de escape
Con las dos estrategias de calentamiento se produce un cambio en el tiempo de
inyección.
Una vez conseguida la disposición del servicio del catalizador se regula la inyección a
un coeficiente de aire λ=1 (relación estequiométrica), adaptándose posteriormente el
ángulo de encendido al requerimiento funcional del motor.
En los motores con inyección en tubo de admisión funcionan a ralentí y carga parcial
exclusivamente con mezcla estequiométrica. En motores de inyección directa con carga
estratificada (el combustible no se inyecta hasta poco antes del momento de encendido,
formando una nube alrededor de la bujía).
En el proceso de aceleración, es decir, al abrir la mariposa, se acumula en el tubo de
admisión una película de combustible que empobrece la mezcla, por lo que debe
inyectar más caudal de combustible. Por lo tanto, en el proceso de deceleración debe
reducirse el tiempo de inyección por valor de esta misma cantidad de combustible.
En el siguiente gráfico (Figura 27) se aprecia cómo la señal base (o de carga) es
modificada para solucionar este problema. En este caso la señal del ángulo de mariposa
es señal de carga.
Figura 27
26
1.3 La gestión del motor diesel
1.3.0 INTRODUCCIÓN
La regulación electrónica de control en los motores diesel (EDC) ha revolucionado la
industria del motor, disminuyendo el consumo de combustible y adaptándose a las
exigencias europeas sobre emisiones gases de escape y ruido.
La evolución conseguida con las bombas rotativas y en línea con respecto a las que se
han regulado electrónicamente ha sido el variador de avance, que era regulado por la
presión ejercida por la bomba de transferencia, se ha sustituido por un solenoide
variador de avance controlada por la UCE., el regulador de velocidad centrífugo o
neumático se ha sustituido por un solenoide que controla una varilla de regulación, este
solenoide es controlado por la UCE y la válvula dosificadora por un mecanismo
magnético de control de giro que regula el caudal de inyección, también controlado por
la unidad de control que utiliza un diagrama característico de control programado.
La principal función de la regulación electrónica diesel es el control del caudal y el
comienzo de inyección. En los sistemas Common Rail también regula la presión de
inyección. En definitiva, las funciones de regulación electrónica se adaptan a cada
vehículo y a cada motor.
Figura 28
27
UCE y tiene en cuenta factores de corrección como la temperatura de combustible, aire
y líquido refrigerante, etc.
-La regulación de ralentí mantiene el número de revoluciones real lo más ajustado al
teórico prefijado. El cual tiene en cuenta cualquier requisito cambiante de carga
(compresor del AA, bomba servodirección, etc.) y la temperatura del motor.
-Regulación de número revoluciones final
-Regulador velocidad de marcha
-Amortiguación activa de sacudidas. En el momento en que se produce un cambio de
carga repentino que ocasiona sacudidas en el motor, se regula el caudal disminuyendo o
aumentándolo, amortiguando las oscilaciones hasta que es posible entregar el par
deseado al conductor.
-Regulación de la suavidad de marcha. Con esta regulación se realiza una
compensación selectiva de caudal a los cilindros, que en base al número de revoluciones
difieren de los demás en velocidad, suavizando la marcha en ralentí.
-Regulación del comienzo de inyección. Esta regulación influye en la potencia, el
consumo de combustible, las emisiones de ruido y el comportamiento de los gases de
escape. Aunque su valor teórico está almacenado en un diagrama característico con
correcciones de temperatura y presión ambiente, el comportamiento de la bomba de
inyección e inyectores cambia a lo largo del tiempo de funcionamiento. Por lo que se
mide el comienzo de inyección de las siguientes formas en los distintos sistemas de
inyección.
Figura 29
28
valor real de tiempo de inyección.
Regulación del comienzo de inyección mediante la señal IWZ. Esta regulación se
efectúa en las bombas rotativas de inyección de mando por electroválvula. Esta señal la
genera el sensor de revoluciones y del ángulo de giro acoplada a la rueda transmisora de
la bomba inyectora.
Regulación BIP. Para evitar sensores adicionales, se puede detectar el comienzo de
inyección, evaluando electrónicamente la corriente de la electroválvula. Unos efectos
inductivos al cerrarse la electroválvula imprimen una característica peculiar, en la que
se reconoce el comienzo de inyección.
En el siguiente gráfico (figura 30) se aprecia en (1) la ventana BIP, en (2) la señal BIP,
en (3) el nivel de corriente de excitación y en (4) el nivel de corriente de retención.
Figura 30
1. Entrada de combustible
2. Tuerca de racor entrada alimentación
3. Conexiones de retorno
4. Arandelas ajuste de presión
5. Canal alimentación
6. Muelle
7. Perno de presión
8. Aguja del inyector
9. Perno de fijación
Figura 31
29
Para motores de inyección directa se utilizan los llamados inyectores de orificios.
Estos inyectores utilizan dos muelles con diferentes intensidades. El primero, cuando la
presión de inyección llega a 180 bares vence la fuerza del muelle y la aguja se eleva un
poco (preinyección), el segundo vence a una presión de 300 bares (inyección principal)
levantándose del todo la aguja.
Figura 32
30
En (a) se encuentra la fase de apertura, la corriente se eleva hasta 20A con una tensión
de 100v, con el objeto de que se abra rápidamente la electroválvula.
-En (b) se encuentra la fase de corriente de excitación manteniéndose la misma corriente
de 20A pero con la tensión de batería.
-En (c) se encuentra la fase de transición de la corriente de retención.
-En (d) la fase de corriente de retención, la cual se rebaja a 12A.
-En (e) la fase de desconexión, se desconecta la corriente para cerrar la electroválvula.
-En (f) se muestra la fase de recarga. Este rizo no es capaz de abrir la electroválvula y
sirve para que la electroválvula almacene energía en caso de no ser activada, y el
acumulador de tensión del convertidor Boost que origina las elevadas tensiones de
activación para que se recargue con esta energía y posibilite la siguiente activación del
inyector.
En la (figura 33) se aprecia el esquema de una Unidad bomba –tubería-inyector (UPS),
la cual está siendo controlada por una señal de activación más moderna. Esta clase de
inyección llamada “en forma de bota” se caracteriza por una inyección previa adicional.
En la señal de activación de la electroválvula aparece en el inicio de la inyección una
fase de excitación, una vez terminada esta fase se origina una apertura inicial, en la pre-
inyección una fase de retención que determina el tiempo de ésta, en la inyección
principal una fase de apertura total de la aguja, una nueva retención que determina el
tiempo de inyección y un final con intensidad nula en la electroválvula.
1-Inyector
2-Conexión entrada inyector
3-Tubo
4-Electroválvula
5-Válvula
6-Pistón de bombeo
7-Bobina
8-Detalle de la válvula
9-Rodillo accionado por arbol
de levas
Figura 33
31
comparada con la masa de aire teórico del diagrama característico de la válvula ARF
(recirculación de gases), su diferencia es compensada por el regulador Lambda.
Finalmente se compara la suma del valor del regulador Lambda y el valor de la masa
teórica del diagrama característico del ARF con el valor del medidor de masa de aire
(caudalímetro). Esta diferencia es la que aportará al conducto de admisión con los gases
de escape, la válvula EGR.
-Adaptación del valor medio del caudal. Con la señal de la sonda Lambda y la señal
de la masa de aire se calcula el valor de la masa de combustible inyectada, ésta se
compara con el valor teórico. La diferencia se guarda en puntos de aprendizaje en un
diagrama característico que luego servirán como factores de corrección del caudal
suministrado en cada punto de funcionamiento del motor. Estos factores de corrección
influirán en los circuitos relevantes a la emisión de gases como la regulación de la
presión de sobrealimentación, el regulador de masa de aire (que controla la válvula de
ARF) o la regulación del comienzo de inyección.
Para este tipo de regulación existen dos tipos de servicio que se emplean según el punto
de funcionamiento del motor. El indirecto que utiliza como el valor el caudal exacto de
inyección sin factores de corrección, y el indirecto que sí utiliza los factores de
corrección para el valor del caudal inyectado.
-Limitación de humos a plena carga.
Con la ayuda de la sonda Lambda, el sensor de revoluciones, el medidor de señal de
masa de aire y los diagramas característicos de limitación de humo se realiza un cálculo
para la obtención del caudal máximo admisible a plena carga.
-Detección de combustión no deseada.
Con la señal de la sonda Lambda se puede detectar una combustión no deseada, cuando
ocurre esto se puede parar mediante el cierre de una válvula de mariposa y la válvula
EGR. Esto representa una función de seguridad del motor.
Los sistemas más importantes para reducir las emisiones de escape son los siguientes:
- Sistema de recirculación de gases de escape
- Sistema de insuflación de aire secundario
- Sistema de retención de evaporación de combustible
- Sistema de purga del cárter del cigüeñal
32
1.4.0 Sistema de recirculación de gases de escape
Figura 34
A través de la recirculación de los gases de escape
Se puede controlar el llenado de los cilindros y
con ello el proceso de combustión. El gas de escape
introducido hace aumentar el porcentaje de gas inerte
en el llenado de gas limpio y provoca una reducción
de la temperatura de combustión, y con ello una
disminución de la emisión de óxidos nitrosos NOx.
El accionamiento y activación de esta válvula es
idéntico al de sobrealimentación, válvulas eléctricas
o electroneumaticas ,con señales PWM de regulación.
33
1.5 Sensores
Los sensores y actuadores forman una interfase entre las magnitudes físicas medidas en
la gestión del motor, ESP, ABS, climatizador, etc. con las diferentes unidades de control
del vehículo.
En este campo, la mecatrónica va ganando cada vez más importancia por estar
estrechamente unidos los componentes mecánicos con los sensores.
Los sensores han ido evolucionando, aumentando el grado de integración y de esta
manera disminuyendo el trabajo de procesamiento a la unidad de control, puesto que la
preparación de la señal hasta que se convierte en un dato legible por el procesador
principal es una tarea que le resta poder de cálculo.
Los sensores según el grado de integración pueden contener:
-Una preparación analógica de la señal
-Un convertidor analógico-digital
-Un microordenador que evalúa la señal y se comunica con el bus CAN a la UCE.
Figura 35
34
-Sensor de temperatura de aceite del motor. (Campo de medición -40 hasta +170 ºC).
-Sensor de temperatura de combustible. Con esta medición se corrige el caudal
inyectado. Normalmente alojado en la parte inferior del filtro de combustible diesel
(campo de medición -40 hasta +120 ºC).
-Sensor de temperatura de los gases de escape. Esta medición corrige el tratamiento
catalítico que se realiza para mejorar la emisión de gases. (campo de medición -40 hasta
+1000 ºC).
Figura 36
La tensión resultante aumenta en sensibilidad gracias a esta disposición. Esta señal será
ampliada y linealizada a una tensión entre 0 y 5v, con la electrónica integrada en un
chip instalado en el mismo sensor.
El sensor puede tener integrado un sensor de temperatura (NTC) con el objeto de poder
35
calcular la densidad de aire. En la figura 37 se aprecia un sensor de presión con vacío de
referencia. En (1) se encuentra el sensor de temperatura, en (7) la célula de medición y
en (5) la conexión eléctrica.
Figura 37
36
Figura 38
Cuando el hueco entre dientes de la rueda transmisora pasa por el sensor inductivo
(posición definida por cilindro1), la UCE sincroniza en este momento la posición del
cigüeñal. Con cada flanco (positivo o negativo) cuenta la UCE 3 grados.
Como en el cálculo de ángulo de encendido se necesita ser más preciso, la medida
temporal entre dos flancos se divide entre 3 ó 4. De esta forma es posible controles de
hasta 0,75 grados.
En la figura 39 se aprecia dónde va situado el captador inductivo y el hueco entre
dientes y en la figura 40 la señal captada por un osciloscopio.
Figura 39 Figura 40
37
La misión que realiza este sensor es la siguiente:
-Medir la posición del regulador de avance, la cual se realiza comparando la señal del
ángulo de giro con la señal del sensor inductivo del cigüeñal, de esta manera se asegura
un control sobre el avance de la inyección correcto.
-Medir las revoluciones de la bomba rotativa, necesaria para determinar el tiempo de
activación de la válvula de alta presión
-Determinar la posición del ángulo entre la bomba rotativa y el árbol de levas, para tener
una referencia del momento de activación de la válvula de alta presión. Con ello se
asegura el comienzo y el caudal de inyección exactos.
En la figura 41 se aprecia dónde va instalado este sensor en la bomba rotativa, en (1) la
lámina conductora, en (2) sensor de revoluciones y ángulo de giro, en (3) hueco entre
dientes, en (4) la rueda dentada (120 dientes), en (5) el anillo de rodamiento móvil y en
(6) el eje de bomba.
Figura 41
38
Sensor Hall Efecto Hall
Figura 42
Figura 43
39
Figura 44
40
escape.
En el cálculo del comienzo de inyección intervienen el volumen de combustible
(cuanto más caudal se inyecte y más aumente el rpm, mayor será el tiempo de
inyección por lo que el comienzo de inyección deberá adelantarse), el sensor de
revoluciones, el sensor de movimiento de aguja y como factor de corrección el
sensor de temperatura
El sensor de movimiento de aguja es un sensor inductivo que consta de una bobina
enrollada alrededor de un núcleo magnético conectado a la aguja del inyector. La
bobina está alimentada por una tensión continua a una intensidad constante (30
mA). Cuando comienza la inyección, el núcleo magnético se mueve variando el
flujo magnético, produciendo una variación en la tensión de alimentación.
Figura 45
Figura 46
41
Figura 47
42
En este medidor de masa de aire puede haber integrado un sensor de temperatura
para evaluaciones adicionales, no siendo necesario para determinar la masa de aire.
Figura 49
43
siguientes.
Figura 50
Oxido de Titanio
Figura 51
La sonda Lambda planar de banda ancha (con una célula de medición de dióxido de
circonio (ZrO2)) puede medir el punto estequiométrico Lambda =1 y además el
margen pobre y rico de combustible, proporcionando una señal unívoca y constante.
Con el objeto de aplicarse a motores con regulación de mezclas de aire y
combustible pobres y ricas, motores de gas, termosifones calentados por gas,
motores diesel y regulación Lambda de conceptos de motor de gasolina pobres.
44
Figura 52
1.6 Actuadores
Los elementos actuadores constituyen la interfaz entre el procesamiento de la señal y el
proceso mecánico. La mayoría de electroválvulas actuales son activadas por señales en
PWM, exceptuando las electroválvulas de los inyectores que se activan con señales
analógicas. Los actuadores más importantes que intervienen en la gestión del motor son
los siguientes.
Figura 53
Para las turbos de geometría variable, la regulación del ángulo de los alabes directores
45
es controlada por una válvula eléctrica o como en la vista anterior electroneumática.
Con los VTG ya no hace falta una válvula by-pass para su control de seguridad.
Figura 54
Figura 55
46
captador de revoluciones. La alimentación de la bomba es interrumpida cuando el
interruptor de corte de combustible por inercia es accionado.
Figura 56
Figura 57
47
1.6.3 Actuador de vórtice
48
Figura 58
Figura 59
49
válvula reguladora de presión.
Desconectando un elemento disminuye la potencia de suministro, disminuyendo el par
necesario para hacer girar la bomba y reduce el consumo de combustible. La señal de
activación es una tensión continua de 12v.
En la figura 60 se aprecia que manteniendo la válvula de aspiración (5) abierta
mediante la activación de una electroválvula se desconecta el elemento de bombeo (3)
Figura 60
50
Figura 61
Figura.62
51
Figura 63
1- Pedal acelerador
2- Varillaje mariposa
3- Mariposa
4- Conducto de admisión
5- Flujo de aire aspirado
6- Flujo de aire de derivación
7- Actuador de ralentí
8- Unidad de control
9- Magnitudes de entrada
Figura 64
52
Sistema EGAS
Este sistema de acelerador electrónico es el que reutiliza actualmente en la mayoría de
motores de gasolina. Este sistema consta de un módulo potenciométrico en el
acelerador, la ECU, y un dispositivo de estrangulación. Este dispositivo tiene incluido
una válvula de mariposa, el accionamiento eléctrico mediante un motor de CC y un
sensor de ángulo de mariposa (Figura 66).
Cuando se detecta la posición del acelerador, la ECU calcula la posición que debe
adquirir la mariposa teniendo en cuenta el estado actual de funcionamiento del motor
(temperatura, rpm, carga, etc). El sensor de ángulo de mariposa informa a la ECU de su
posición, creando un lazo cerrado y haciendo posible el cumplimiento exacto del ángulo
requerido
Figura 66
1.7.0 Introducción
La unidad electrónica de control recibe las señales de los diferentes sensores, gestiona
estos datos y mediante una cartografía previamente grabada en memoria, aplica a los
actuadores las señales registradas para que el motor funcione dentro de los márgenes de
potencia y consumo que el fabricante ha estipulado.
En el siguiente diagrama (Figura 67) se analizan los diferentes bloques de que consta la
gestión electrónica del sistema de control de un motor.
53
SENSORES Preparación Señales ORDENADOR Etapas finales ACTUADORES
Finales
E. analógicas Diagnostico
R
A SALIDAS ANALOG
Caudal del aire
M .
Ang. de la mariposa A A Inyector 1
Sonda Lambda N N ...
......... A A ...
Temperatura aire L A/D L ...
Temperatura agua O O ...
Tensión Batería G G ...
....
E. mando SALIDAS DIGITAL.
RAM EPROM
Figura 67
En la siguiente foto (figura 68) se muestra una ECU del sistema Motronic 1.3 de un
BMW 320i, en el que se puede apreciar las diferentes partes de que consta la unidad de
control. Seguidamente haremos un estudio de cada una de sus partes de forma
generalizada.
Figura 68
54
Entrada de señales
Las señales de entrada son preparadas por circuitos electrónicos que adaptan la señal
para poder ser leídas por el microcontrolador. La señales de entrada de mando son
normalmente interruptores con tensiones de 12v ó 5v que antes de ser leído por el
microcontrolador pasan por un buffer para convertir a señales de tensión (5v), con la
intención de protegerlo. En la figura 69 se muestra una parte del esquema electrónico
de la ECU de la figura 68, en la que una serie de señales de mando son previamente
intercaladas por un buffer antes de ser leídas por el micro.
Figura 69
Figura 70
Para señal del sensor del árbol de levas (Figura 71), se rectifica la señal produciendo a
la salida pulsos de tensión que se interpretarán como que el cilindro 1 está en
compresión, puesto que el sistema Motronic 1.3 es semisecuencial .
55
Figura 71
El núcleo de la CPU
El procesamiento de las señales está gestionado por el núcleo de la CPU, formado por
un microcontrolador (80C515), una memoria RAM adicional de escritura-lectura de 8K
(necesaria para almacenar valores de cálculo, valores de adaptación y posibles averías
que surjan en el sistema global (diagnóstico)), una memoria EPROM adicional de 16K
(en la cual están almacenadas las curvas características del motor y los campos
característicos para el control del motor). En CPU’S más modernas, los datos para el
bloqueo electrónico del arranque, datos de adaptación y fabricación, memoria de averías
y datos congelados de esta avería, se guardan en una memoria EEPROM (memoria de
escritura y lectura no volátil, se borra eléctricamente).
Figura 72.
56
Las etapas de salida
Figura 73
Figura 74
57
La fuente de alimentación (figura 75) tiene la misión de suministrar el voltaje de 5v
necesario para la alimentación de todos los componentes IC digitales, la CPU,
memorias, etc. Un voltaje de programación necesario para las memorias externas y los
12 v filtrados para la circuitería de preparación de las señales de entrada y etapas de
potencia de salida.
Figura 75
El estado de California en los EEUU fue uno de los primeros en esforzarse en limitar
por ley las emisiones nocivas del automóvil. La razón fue que en las ciudades grandes
como Los Ángeles, por su situación geográfica, los gases de escape no eran alejados
por el viento. De modo que quedaban suspendidos sobre la ciudad como una gran
campana de humo, siendo nocivo para la salud e impedía seriamente la visibilidad.
La normativa CARB (California Air Resources Board) sobre gases de escape fue el
inicio para que los países más industrializados tomaran medidas parecidas para corregir
las emisiones. Las principales normativas vigentes sobre gases de escape son las
siguientes:
58
Para cumplir con estas normativas se obliga a los fabricantes de automóviles que
incorporen en la UCE unas funciones de diagnóstico que reconozcan los fallos de
sistemas relevantes a los gases de escape de forma adicional a los códigos de avería del
propio fabricante. En cada país se fijan valores límite específicos de tal forma que si se
sobrepasan éstos, se indica el defecto al conductor mediante un testigo de averías
Los diagnósticos de a bordo (OBD) americanos fueron el referente para los demás
países del mundo, evolucionando para incorporar nuevas funciones (OBD, OBDI,
OBDII).
En estos diagnósticos deben supervisarse todas las señales de salida, entrada y los
componentes mismos.
59
En los motores diesel las funciones son las siguientes:
• Fallos de la combustión.
• Regulación del comienzo de la inyección.
• Regulación de la presión de sobrealimentación.
• Recirculación de gases de escape.
• Funcionamiento del sistema de comunicación entre unidades de mando, por ejemplo
el Can-Bus.
• Control del sistema de gestión electrónica .
60
Catalizador.
Tensión de la batería.
Se realiza una comprobación del margen de la señal y se verifica la plausibilidad con las
rpm. En caso de fallo se sustituye por un valor preestablecido hasta que la línea queda
intacta.
La sonda Lambda.
La sonda Lambda de dos puntos se somete a una prueba de plausibilidad con respecto a
la tensión de salida y frecuencia. La sonda de banda ancha se comprueba de otra forma,
sólo cortocircuitos e interrupciones y plausibilidad con datos de su diagrama
característico memorizado. Una avería provoca un funcionamiento de emergencia con
una disminución de caudal de inyección y presión en el turbo.
61
Actuador avance a la inyección.
Comprobación del margen de la señal y plausibilidad con sensor árbol de levas. En caso
de avería con el motor en marcha, se sustituye por el transmisor de inicio de inyección.
Los hay con puerto monofilar y bifilar (línea de datos K, línea de excitación L). Los
protocolos utilizados a nivel mundial son:
62
Figura 76
A partir de 2008 la comunicación entre las ECU’S y las interfaces se realizará con el
bus CAN (ISO 15765-4).
Sobre la utilidad real de estos interfaces de diagnóstico debe hacerse un comentario. Los
talleres de automoción invierten mucho dinero con estos interfaces, creyendo que es la
panacea de la reparación y es un error. El scanner sirve como una guía y ayuda para
conocer dónde puede localizarse la avería y no de la avería en sí, dejando a un lado los
conocimientos técnicos que se deben de tener sobre electrónica y mecánica
indispensables para el entendimiento de los diferentes sistemas de inyección, ABS, etc.
Es decir, con unos buenos conocimientos sobre electrónica, mecánica, y saber que
sistema se está reparando se pueden solucionar el 90% de las averías con un multímetro
u osciloscopio, sin necesidad de un interfaz.
Modo Clase
P Motor. 0 SAE
C Chasis 1 Fabricante del vehículo
B Carrocería
U Comunicaciones
Así por ejemplo, el código de avería P0003, es un código de avería del motor, EOBD y
SAE (genérico).
63
Como en el anterior apartado hemos comentado, la supervisión de las señales de entrada
a la ECU se realiza comprobando si hay fallos en los sensores como: cortocircuitos a
masa, cortocircuitos a tensión de batería, interrupciones de línea, medidas fuera de
rango y la plausibilidad con otros componentes. Para las señales de salida se comprueba
el circuito de corriente en las etapas finales (esto implica cortocircuitos a masa y
positivo batería e interrupciones), y los efectos del actuador sobre el sistema en los
momentos en que se activa (para comprobar su buen funcionamiento).
En la figura 77 se aprecia cómo en cada avería se distingue cada uno de estos casos. En
P0045 la ECU ha captado en la salida de su etapa de potencia una falta de intensidad de
carga que debería ser suministrada al solenoide, por lo que es posible que la línea esté
cortada o la bobina del solenoide interrumpida.
Figura 77
64
Capítulo 2
Realización del programa OBDII.
2.0 INTRODUCCIÓN
El objetivo de este proyecto es realizar un hardware y software capaz de visualizar en
una pantalla de ordenador todos los modos estandarizados en que se presenta la
información del sistema de diagnostico OBDII.
• Modo 2. Acceso a Cuadro de Datos Congelados. Ésta es una función muy útil del
OBD-II porque la ECU toma una muestra de todos los valores relacionados con
las emisiones, en el momento exacto de ocurrir un fallo. De esta manera, al
recuperar estos datos, se pueden conocer las condiciones exactas en las que
ocurrió dicho fallo. Sólo existe un cuadro de datos que corresponde al primer
fallo detectado.
• Modo 3. Este modo permite extraer de la memoria de la ECU todos los códigos de
fallo (DTC - Data Trouble Code) almacenados.
• Modo 4. Con este modo se pueden borrar todos los códigos almacenados en la PCM,
incluyendo los DTCs y el cuadro de datos grabados.
• Modo 5. Este modo devuelve los resultados de las pruebas realizadas a los sensores
de oxígeno para determinar el funcionamiento de los mismos y la eficiencia del
convertidor catalítico
• Modo 6. Este modo permite obtener los resultados de todas las pruebas de abordo.
• Modo 7. Este modo permite leer de la memoria de la ECU todos los DTCs pendientes.
• Modo 8. Este modo permite realizar la prueba de actuadores. Con esta función, el
mecánico puede activar y desactivar actuadores como bombas de combustible,
válvula de ralentí, etc.
65
-ISO 9141-2
-SAE J1850 PWM
-SAE J1850 VPW
-ISO 14230-4
-ISO 15765-4
-SAE J1939
66
Una vez montados todos los componentes en la tarjeta, el aspecto de la interfaz se
muestra en la figura 2.
Figura 2
Para verificar el perfecto funcionamiento del programa, tuve que realizar múltiples
comprobaciones con la ayuda de un simulador de ECU`s (Figura 3) para un protocolo
muy utilizado, el ISO9141-2. Este simulador es capaz de generar a través de sus
potenciómetros, señales de cinco sensores diferentes, códigos de avería y datos
congelados.
La comunicación con el ELM 327 a través del puerto serie (RS232), la he realizado con
funciones y eventos específicos de Visual Basic 2005 los cuales serán comentados más
adelante. El lenguaje de esta comunicación se realiza con comandos propios del
ELM327. Se puede establecer comunicación con el ELM327 a través de un terminal de
comunicaciones (Hyperterminal de Windows), configurando apropiadamente el puerto
serie (COM), y enviando estos comandos a través de un editor de texto .
Estos comandos se dividen en dos clases, los comandos AT y los OBD. Los comandos
AT se preceden con los los caracteres ‘AT’, un espacio y el comando. Estos comandos
AT se dividen a su vez en:
Comandos generales (los cuales sirven para resetear el chip, poner por defecto
configuraciones del chip como la velocidad de comunicación, etc). Por ejemplo:
67
Editor del HIperterminal
> AT Z ; se resetea el chip
> AT D ; se establece por defecto la configuración del chip (por causa de protocolos
retenidos en memoria que no se pueden cambiar por software, etc).
Comandos específicos para ISO, J1850 y CAN. Son comandos que sirven para
configurar los diferentes protocolos de forma específica por la propia naturaleza de
éstos.
Comandos varios, capaces de leer el voltaje con que se alimenta la interfaz a través del
conector OBD, o la calibración del voltaje por software. Por ejemplo:
>at rv
12,5v
>
(1º Byte)
01 Muestra flujo de datos en “tiempo real”
02 Muestra una serie de datos del momento en que se produjo la avería (freeze
frame) .
03 Muestra las averías ocurridas en forma de código .
04 Borra las averías
05 Realiza un test del sensor de oxigeno
06 Realiza un test de la monitorización no continua.
07 Muestra las averías pendientes en forma de código.
08 Realiza prueba con actuadores
09 Identificación del vehículo
El segundo byte, tercer byte, etc., especifican la información que se requiere. Por
ejemplo:
Si se quiere preguntar cuál es la temperatura del motor, el primer byte será el modo
”01” que muestra flujo de datos y el segundo byte es el PID “05”.
En el documento SAE J1979 se establecen todas las regulaciones sobre OBD. Así por
ejemplo, en la siguiente figura 4 se detalla el PID 05.
68
Figura 4
De la tabla se deduce:
Temperatura motor=A-40=123-40=83ºC .
No todos los PID’s son soportados por las ECU’s por lo que en el modo 01 con PID 00
se informa de qué PID’s son soportados por el vehiculo.
Existen multitud de programas que hacen este cometido, pero el objetivo que tuve desde
un primer momento fue el de realizar un programa en el que los propios
electromecánicos, que trabajan diariamente con los vehículos, me pudieran aconsejar e
informar de cómo realizar el programa a la medida que estos profesionales querían.
69
2.1.0 Datos de inicio y monitorización.
En un primer plano (Figura 6) aparece a la izquierda una serie de iconos en los que una
vez conectado el programa a la ECU es posible acceder a ellos: Leer datos de sensores
(correspondiente al modo 1), Datos congelados (modo 2), Leer DTC (modo 3, modo 7),
Borrar DTC (modo4), realización del test sensor de oxígeno (modo 5). El último icono
se utiliza para configurar el puerto serie y elegir el protocolo a utilizar.
Figura 6
70
En estos dos controles se informa al usuario qué diagnósticos son soportados por la
ECU, y los que son soportados, si han llegado a ser monitorizados. Estas
monitorizaciones corresponden al modo 6.
El botón (Conectar) inicia la conexión con la ECU, y los datos que informan al usuario
sobre el estado de la conexión , aparecen en el cuadro (Datos de inicio), como hemos
comentado anteriormente.
Cuando se pulsa el botón de conectar nos introducimos en este evento, el cual llama a la
siguiente función que actúa como una máquina de estados. El protocolo de conexión
sigue cada uno de estos estados, y evoluciona si el mensaje es recibido por la ECU,
aumentando la variable (estado) cada vez que es llamada esta función.
Private Sub maquina_estado_inicio()
estado += 1
Select Case estado
Case 1
Configura_Portcomm()
Case 2
AxMSComm1.InBufferCount = 0
AxMSComm1.OutBufferCount = 0
reseteo()
Return
Case 3
protocoloautomatico()
Case 4
protocolo()
Return
Case 5
voltage_bateria()
Case 6
monitoreo()
Return
End Select
End Sub
71
Timer6.Enabled = True
………………………
Nota:El codigo utilizado en este ejemplo esta simplificado para que
sea más facil de comprender.
El puerto COM se inicia con el puerto serie (1), se pone la variable eventport=true, se
lanza el mensaje con el comando AT más un (enter) y se espera una respuesta por parte
de la ECU, seguidamente se habilita un temporizador a un segundo, con el objeto de
que si pasado este tiempo la ECU no responde, se vuelva a llamar a la función
(Configura_Portcomm()) para que aumente el número de puerto y vuelva a realizar otra
comprobación.
Si la ECU responde, será a través del evento (OnComm) y entrará en una parte de la
función donde se localizará el evento actual a través de la variable (eventport) y se
llamará de nuevo a la función (maquina_estado_inicio) para que siga con el protocolo
de conexión. Si no se consigue ninguna conexión, se informará al usuario con un
mensaje de que no eiste conexión alguna.
72
Y cuando se recibe el mensaje a través de (Oncomm) se visualiza en la casilla
correspondiente:
If (ultimocaracter = ">") And eventvoltage = True Then
ultimocaracter = ""
eventvoltage = False
texto_informe = Mid(TmpStr, 7, 5) ' Escojo de la respuesta 5
carateres
RichTextBox2.Text = texto_informe
maquina_estado_inicio()
end if
Este PID devuelve cuatro bytes, del primer byte(A) el bit más significativo informa de
si existen averías y los bits de (0-6) el número de averías. Por ejemplo si el byte es el
(10000011), se enciende el MIL y existen 3 averías. El segundo byte (B) informa sobre
el estado del test de monitorización continua, el modo con que se informa se observa en
el siguiente cuadro.
73
Calentador sensor de oxigeno C6 D6
Sistema EGR D7
Gráficos.
Para poder acceder a todos los PID´s para ver cuales son soportados, debe accederse a
la información de los PID,s (0100,0120,0140). A continuación se exponen las funciones
para acceder al PID (0100). La primera función es una máquina de estados que activa
una función diferente cada vez que entra el flujo del programa. La segunda función
extrae la información del evento (OnComm) para posteriormente añadirlo a la
combobox.
Función1
Public Sub maquina_estado_pids()
selec_pids_soportados += 1
Select Case selec_pids_soportados
Case 1
pids_soportados1()
Return
Case 2
pids_soportados2()
Return
Case 3
pids_soportados3()
Return
End Select
Función2
Public Sub pids_soportados1()
Dim texto_salida As String
Dim texto_salida1 As Object
eventpid = "0100"
Texto_recibido.Text = ""
'miro pids soportados
texto_salida = "0100" 'comando reset
texto_salida1 = CObj(texto_salida + Chr(13)) 'el comando +
AxMSComm1.Output = texto_salida1
End Sub
74
Figura 7
Cuando se han recibido los suficientes datos, según el usuario, se pulsa el botón (Parar y
Evaluar). Los datos anteriormente monitorizados quedan memorizados para que el
usuario pueda acceder a ellos y estudiarlos con más detenimiento. Para ello puede
activar las flechas de adelante y atrás del (scrollbar) y visualizar con una perspectiva
general los datos memorizados a través del monitor, y de forma numérica cuando los
trazos pasan por la línea blanca central delimitadora que hay en el centro del monitor.
Ya que para poder hacer esta parte del programa se ha necesitado muchas líneas de
programación, comentaré la parte más interesante de la misma. Por supuesto, una vez
que se han conseguido los valores de los sensores hay que visualizarlos en el monitor:
Se crea una variable (graphics) con la característica del objeto (bitmap) de ancho y largo
del monitor:
Dim bm As New Bitmap(picGraph.Width, picGraph.Height)
Dim gr As Graphics = Graphics.FromImage(bm)
75
lapiz = miraquecolores(colorea(n)) 'aqui pone el color del trazo en el
picgraph
gr.DrawLine(lapiz, -10, m_OldValue(n), 0, 1 * valor_de_carga)
m_OldValue(n) = valor_de_carga
End If
Figura 8
Cuando se quiere guardar en una base datos los valores adquiridos durante la prueba se
pulsa el botón de (Guardar), apareciendo en un primer plano el cuadro de la Figura 9.
Figura 9
En esta parte del programa nos introducimos en la gestión de bases de datos con
ADO.NET. Partiendo del hecho de que los valores adquiridos se guardan en un array
(arrays_variables(n)), el proceso siguiente es introducir los valores obtenidos de
los sensores y los datos identificativos en la base de datos de la siguiente forma. En
76
primer lugar se crea una base de datos con Microsof Access (Figura 10) con todos los
campos que incluye el cuadro además de los valores adquiridos (Datos_0,Datos_1,…)
Figura 10
Una vez creada la base de datos se procede a la creación del codigo. En el momento que
se abre el cuadro se conecta con la base de datos (degraficos.mdb) y creamos un dataset
de esta base, seguidamente creamos un datatable con los datos de las filas y columnas .
cb.QuotePrefix = "["
cb.QuoteSuffix = "]"
' Asignar los comandos al DataAdapter
' (se supone que lo hace automáticamente, pero...)
da.UpdateCommand = cb.GetUpdateCommand
da.InsertCommand = cb.GetInsertCommand
da.DeleteCommand = cb.GetDeleteCommand
' Esta base de datos usa el ID con valores automáticos
da.MissingSchemaAction = MissingSchemaAction.AddWithKey
MiDataset = New DataSet
'enlazando al dataset con el adapter correspondiente.
da.Fill(MiDataset, "degrafico")
'creamos las instancias datatables para ca tabla
dt = New DataTable
'llenamos las tablas con los adaptadores
da.Fill(dt)
' Habilitar los controles
conexion.Close()
End Sub
77
En el momento que pulsamos el botón de aceptar, llenamos las filas del datatable (dt)
con los valores adquiridos y lo guardamos en la base de datos.Para guardar de forma
más flexible los datos enteros en la base de datos , he tenido que hacer una función que
me los convirtiese en texto(conver_array_texto_int(arrays_variables(0))),
junto con una consigna de principio y final.
End Sub
Si se quiere volver a ver alguna prueba efectuada, se pulsa la flecha del (combobox),
apareciendo todos los gráficos guardados con anterioridad. Al elegir uno de ellos,
aparece un cuadro (Figura 11) que identifica los valores guardados. En este cuadro se
pueden actualizar y eliminar los valores y el informe, ante cambios que quiera realizar
el usuario.
Figura 11
78
Para crear el código de este cuadro, se conecta primero con la base de datos
(degraficos.mdb) de la misma forma que se hizo en el cuadro anterior. Para acceder a
los datos , una vez que tenemos el dataset, extraemos del dataset los valores de las filas.
txt_marca.Text = dr("Marca")
txt_modelo.Text = dr("Modelo")
………………
arrays_variables_salida(0) = conver_texto_array_int(dr("Datos_0"))
arrays_variables_salida(1) = conver_texto_array_int(dr("Datos_1"))
……..
dt.Rows(fila).Delete()
' Actualizar físicamente la base de datos
da.Update(dt)
' Aceptar los cambios en la copia local
dt.AcceptChanges()
Para actualizar:
Dim dr As DataRow
' Asignar los datos de los textbox a la fila
dr = dt.Rows(fila)
dr("Marca") = txt_marca.Text
dr("Modelo") = txt_modelo.Text
………
………
conexion.Open()
da.Update(dt)
dt.AcceptChanges()
Tabla de datos.
Cuando se pulsa la pestaña superior de (Tabla de datos), aparece una tabla (Figura 12)
con todos los PID’s del sistema de diagnostico OBD. En el combobox inferior se puede
elegir qué selección se quiere activar para leer los PID’s. Por defecto se ha establecido
(PID’s soportados), el usuario tendrá que elegir en su recuadro de chequeo
correspondiente si lo quiere leer o no, y luego pulsar el botón de leer .
79
Figura 12
Para realizar este código hay que crear un y configurar el (datagrid) con todos los
componentes que se ven en el cuadro e incluir los valores leídos de los PID`s soportados
en el cuadro.
Configuramos la tabla:
dt.Columns.Add(New DataColumn _
("Marcar", GetType(Boolean)))
………..
dRow = dt.NewRow()
dRow("Marcar") = False
dRow("Soportados") = False
dRow("PID") = "04"
………..
Analisis de sensores.
Cuando se pulsa la pestaña superior (Análisis de sensores) aparece un cuadro (Figura
13), en el que se puede comparar mediante un gráfico dos monitorizaciones realizadas.
Con la intención de que el usuario pueda hacer comparaciones entre modelos de
gráficos con valores establecidos en un determinado vehículo. Existe la posibilidad de
agregar a la gráfica una línea de tendencia o una ecuación de la recta para cada uno de
los trazos. Para realizar el código de este gráfico, como en el momento que pulsamos el
icono (Leer datos de sensores) conectamos con la base de datos (degraficos.mdb),
llenamos la variable datatable (dt) con la tabla entera de la base de datos. Por lo que
podemos acceder a la información de cada fila y columna sin problema.
Next
80
Introducimos la variables del registro en el segundo y tercer combobox y elegimos que
variable estará en el eje(x) o eje(y):
Dim dr As DataRow
For fila = Me.dt.Rows.Count() - 1 To 0 Step -1
dr = dt.Rows(fila)
If dr("guardarcomo") = graficoelegido_es Then
Exit For
End If
Next
Introducimos las variables en los combobox para los dos ejes.
For t = 0 To 4
If nombrevariable(t) <> "" Then
cmb_modelo1_y.Items.Add(nombrevariable(t))
cmb_modelo1_x.Items.Add(nombrevariable(t))
End If
Next
arrays_variables_salida_modelo1(0) =
Form4.conver_texto_array_int(dr("Datos_0"))
arrays_variables_salida_modelo1(1) =
Form4.conver_texto_array_int(dr("Datos_1"))
……..
For t = 0 To 4
If cmb_modelo1_y.SelectedIndex = t Then
array_modelo1_ejey =
arrays_variables_salida_modelo1(t)
End If
Next
Una vez que tenemos los datos de las variables del eje(x) y eje(y) introducidos en
diferentes arrays, configuramos un gráfico (ChartSpace)e introducimos los arrays
como coordenadas de los trazos.
Configurando el Chart
………..
ChartSpace1.Charts(0).Title.Caption = "Comparacion entre modelos"
ChartSpace1.Charts(0).Axes(1).HasTitle = True
………..
Introduciendo datos en chart.
……….
81
ChartSpace1.Charts(0).SeriesCollection(0).SetData(OWC10.ChartDimension
sEnum.chDimYValues, c.chDataLiteral, matriz_y)
ChartSpace1.Charts(0).SeriesCollection(0).SetData(OWC10.ChartDimension
sEnum.chDimXValues, c.chDataLiteral, matriz_x)
………
Figura 13
82
Leer los DTC.
If chbox_actuales.Checked = True Then
chbox_pendientes.Checked = False
Texto_recibido.Text = ""
texto_salida = "03" 'comando actuales
texto_salida1 = CObj(texto_salida + Chr(13)) 'el comando + enter
eventpid = "dtc"
AxMSComm1.Output = texto_salida1
End If
Borrar los DTC
Texto_recibido.Text = ""
'Reseteo el elm 327 al inicio
texto_salida = "04" 'comando borra dtc
texto_salida1 = CObj(texto_salida + Chr(13)) 'el comando + enter
eventpid = "borradtc"
AxMSComm1.Output = texto_salida1
A7 A6 Definición
0 0 P
0 1 C
1 0 B
1 1 U
A5 A4 Definición
0 0 0
0 1 1
1 0 2
1 1 3
83
3rd Carácter
A3 A2 A1 A0
4th carácter
B7 B6 B5 B4
5th carácter
B3 B2 B1 B0
Definición
0 0 0 0 0
0 0 0 1 1
0 0 1 0 2
0 0 1 1 3
0 1 0 0 4
0 1 0 1 5
0 1 1 0 6
0 1 1 1 7
1 0 0 0 8
1 0 0 1 9
Cuando se recibe la respuesta por parte de la ECU, a través del evento AxMscomm
espero el último cararter y que la variable eventpid=”dtc”. Seguidamente, a través del
código siguiente y guiándome por la definición de los caracteres expuestos en los
cuadros anteriores, se extraen los códigos de error.
If (ultimocaracter = ">") And (eventpid = "dtc") Then
tmpstr1 = Mid(TmpStr, 8, StrLen - 12)
StrLen1 = Len(tmpstr1)
'se limpia de espacios en blanco
For I = 1 To StrLen1 - 1
caracter = Mid(tmpstr1, I, 1)
If caracter <> " " Then 'esto es un negado
filedtc_ayuda(num) = caracter
num += 1
End If
Next I
'se ponen en cada elemento de array el dtc en binario
'luego a traves de la funcion credtcstring introduzco
'en el array los dtc
num1 = num / 4
For I = 1 To num1
For k = 1 To 4
p += 1
numbinario =conver_hex_binario(filedtc_ayuda(p - 1))
filedtc(I - 1) = filedtcviejo + numbinario
filedtcviejo = filedtc(I - 1)
Next k
'creadtcstring(filedtcviejo) convierte
'la lista de bits en lo dtc(string)
dtcstrings(I - 1) = creadtcstring(filedtcviejo)
filedtcviejo = Nothing
……………………………………………
84
Una vez que se han añadido las averías en el combobox (cbox_dtc), al elegir un código
de avería, aparece la avería en el textbox (Avería establecida). Para ello hay que llamar
a la base de datos (dtc.mdb) y consultar la información de la avería de ese código de
avería. Como puede elegirse el fabricante del vehículo para los códigos especificos de
avería, al realizar la consulta en la base de datos se buscará en los genéricos (en los que
también se contienen los códigos (P1xxx) y el específico. A continuación se muestra un
código ejemplo:
dtcc = cbox_dtc.SelectedItem
txtdtc.Text = dtc_eobd(dtcc, dtc_especifico)
…………………………
Este es parte del código en el que se realiza la consulta a la base de datos (dtc.mdb):
Dim sCnn As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data
Source=C:\Bases_de_datos\dtc.mdb"
Dim adap1 As OleDbDataAdapter
Dim adap2 As OleDbDataAdapter
dtable_generico = New DataTable
dtable_especifico = New DataTable
adap1 = New OleDbDataAdapter("SELECT * FROM dtc_generic”,sCnn)
adap2 = New OleDbDataAdapter("SELECT * FROM " &
dtc_especifico, sCnn)
adap1.Fill(dtable_generico)
adap2.Fill(dtable_especifico)
Figura 14
Texto_recibido.Text = ""
'Reseteo el elm 327 al inicio
85
texto_salida = "04" 'comando borra dtc
texto_salida1 = CObj(texto_salida + Chr(13)) 'el comando + enter
eventpid = "borradtc"
AxMSComm1.Output = texto_salida1
En el primer proceso se busca el código de avería que produce los datos congelados y se
consulta a la base de datos sobre la avería establecida:
En el evento AxMscomm:
………………..
dtc_congelado.Text = "P" & (num1) & (num2) & (num3) & (num4)
maquina_estado_pids_datoscongelados()
……………….
……………………………….
rtxt_congela.Text = dtc_eobd(dtc_congelado.Text,
"dtc_generico")
maquina_estado_pids_datoscongelados()
………………………………
En el tercer proceso se busca cuales son los PID’s soportados de los datos congelados.
Texto_recibido.Text = ""
texto_salida = "0200" 'comando actuales
texto_salida1 = CObj(texto_salida + Chr(13)) 'el comando +
enter
eventpid = texto_salida
AxMSComm1.Output = texto_salida1
86
En un cuarto proceso se llaman a estos PID’s y se introducen en la tabla de datos
congelados.
……………………………………………
trozo = pidsoportados_congelados(numpid_congelado)
Case "04"
Figura 15
87
2.1.4 Análisis de Sensores O2
Este análisis podrá ser realizado siempre y cuando el test de monitorización no continua
referente al sensor de oxigeno, se halla soportado y completado.
Para realizar este apartado actuamos igual que en el cuadro anterior, creamos una
máquina de estado para realizar una serie de procesos consecuentes. Al pulsar el botón
de aceptar qué sensor de oxígeno se desea analizar, nos introducimos en la máquina de
estado.
End Select
…………..
'señalo en la grilla los pids soportados,uso maquina porque está
el 0100,0200
For fila = 0 To 9
If DataGrid3.Item(fila, 0) = True Then
num_estados_so2 += 1
ordenestado_so2(num_estados_so2 - 1) = fila
End If
…………………………
88
Con el proceso (maquina_estado_datos_so2()), cada vez que se entra en esta función
aumenta el estado y por lo tanto el TID a preguntar(“050101”para B1-S1,”050201”para
B1-S2,etc).
…………………….
estado_datos_so2 += 1
If estado_datos_so2 > num_estados_so2 Then
Exit Sub
End If
fila = ordenestado_so2(estado_datos_so2 - 1)
tid = DataGrid3.Item(fila, 1) & sensorO2 ' le concateno el
sensor seleccionado
Texto_recibido.Text = ""
'Reseteo el elm 327 al inicio
texto_salida = "05" & tid & "" 'comando de pid
texto_salida1 = CObj(texto_salida + Chr(13)) 'el comando +
enter
eventpid = "05" & DataGrid3.Item(fila, 1) 'le informo a
on_comm cual evento es.
AxMSComm1.Output = texto_salida1
……………………..
89
Figura 16
Figura 17
90
Capítulo 3
Realización del comprobador de electroválvulas
3.0 INTRODUCCIÓN
Frecuenciómetro.
91
El comprobador se alimenta directamente de la tensión de la batería (12v) del vehículo.
El dispositivo (Figura 1) contiene dos cables de alimentación, dos cables de entrada
para el frecuenciómetro y el medidor del duty-cycle y dos cables de salida para el
probador de electroválvulas.
Figura 1
La fuente de alimentación está constituida por el típico LM7805 que regula la tensión a
5v y dos condensadores. El de entrada apropiado para disminuir el rizado, la capacidad
del condensador se elige normalmente por la intensidad que va a consumir el circuito
(1000µF por amperio). Como este circuito va a consumir menos de 1A se elige
C2=1000 µF-25v. Para C1 se elige el condensador que aconseja el fabricante para evitar
picos de intensidad C1=0,1 µF. La corriente de salida de la fuente de alimentación sirve
para alimentar el microcontrolador y adaptar las entradas del frecuenciómetro y lector
del Duty-cycle a través de (Q2), para que puedan ser leídas por el micro.
92
Para que el transistor Q3(BC547) funcione en conmutación :
Ib=2*Ic/ß en saturación.
Ic=(Vc-Vce)/Rc=(12-0,3)/1000= 0,0117A
Ib=2*0,0117/100= 0,000234A
Rb=(Vb-Vbe)/Ib=(5-0,7)/ 0,0000234= 18376Ω
Por lo que una resistencia de base de 10K queda más que justificada para que el
transistor entre en saturación.
Las regiones de operación del transistor de efecto de campo son la región de corte,
región activa y región ohmica.
Id=Gm(VGS-VGS(th)).
Región óhmica: cuando el valor del voltaje gate-source es mayor al voltaje umbral
VGS>>VGS(th) y VDS es igual o menor que VGS-VGS(th),el elemento entra en la
región ohmica.
Las características del MOSFET (BUK555-100A) son las siguientes (Figura 2):
93
Figura 2
El diodo en antiparalelo integrado, que evita la tensión inversa generada por una bobina
no dañe el mosfet, es propicio para nuestro circuito ya que vamos a trabajar con cargas
inductivas, por lo que nuestro circuito de polarización se acopla a las necesidades
establecidas.
94
ESQUEMA DEL COMPROBADOR DE ELECTROVALVULAS
Figura 3
A continuación exponemos las partes más importantes del programa en lenguaje C del
comprobador de electroválvulas .
95
Una vez hemos configurado cáales son las entradas y salidas del micro, temporizadores,
pins para los CAD y configuración a través de las librerías del compilador del manejo
de la pantalla LCD, comenzamos con el código del programa.
…………
set_tris_a(0b11111111);
set_tris_c(0b11110101); //RC0 entrada,rc1 salida
set_tris_b(0x00); //RB0-RB7 salidas
output_b(0x00); //Borra salidas
output_c(0x00); //Borra salidas
setup_adc_ports(AN0_AN1_AN3); //RA0 entrada analógica
setup_adc(adc_clock_div_32); //Ajusta frecuencia de muestreo del ADC
…………
En primer lugar creamos mediante un bucle infinito un rastreo del estado de cada
pulsador. En el momento que detecta un pulso, el flujo del programa se deriva a una
función (maquina_estado_lcd(menu,subebaja) que provoca el cambio del menú en la
pantalla LCD.
while(1){
if (input(PIN_C2)==TRUE)//bajar
{
while (input(PIN_C2)==true) delay_ms(10);
……………
}
if (input(PIN_C5)==TRUE)//subir
{
while (input(PIN_C5)==true) delay_ms(10);
……………
}
maquina_estado_lcd(menu,subebaja);
if (input(PIN_C4)==TRUE) //ok
{
while (input(PIN_C4)==true) delay_ms(10);
…………..
maquina_estado_menu(menu);
}
}
}
96
T=1seg/Nº de cuentas.
F=1/T= Nº de cuentas
Bucle de 1 segundo.
………….
SET_TIMER1(0);
setup_timer_1 (T1_INTERNAL);
while (n1<50000)//true=3, false=4
{
n1++; //1 cycles
if (t1_overflow)//true=2,false=3
{t1_overflow=0;freqc_high++;}//2 cycles
DELAY_US(7);
//(3+1+2+2+2+1+2+9)=20*50000=1s
}
……………
Lectura de la frecuencia.
…………….
freqc_low=get_timer1();
freqc=make32(freqc_high,freqc_low);
………………
Para realizar el medidor del Duty-Cycle, creamos una función que continuamente espere
que la señal cambie a nivel alto, en el momento en que cambie habilitamos el timer0
realizando un contaje. Y lo mismo pero al contrario, creando una función que
continuamente espere que la señal cambie a nivel bajo. Una vez se tienen los tiempos
alto y bajo, se realiza la operación del porcentaje de la señal.
Se realiza el porcentaje:
...............
porcento=(float)((float)tiempo_bajo/(float)((float)tiempo_alto+(float)tiempo_bajo))
97
porcentaje=(int)(porcento*100);
lcd_gotoxy(1,1);
printf(lcd_putc,"DUTY-CYCLE=%03d%c ",porcentaje,'%');
…………
En nuestro generador de PWM el usuario elige una frecuencia de la señal fija y luego
con el potenciómetro (Reg PWM) varia la duración del pulso a voluntad. Para ello, hay
que leer de los CAD’s la frecuencia y el duty, y trasladar estos datos a las funciones
correspondientes para generar la señal PWM.
Para realizar este código hay que destacar que es importante configurar el preescaler del
TMR2 para diferentes frecuencias con el objeto de conseguir eficiencia en la variación
completa del duty-cycle. Siendo Frecu_lcd=1/periodo_r*Tosc*4*Predivisor.Para un
predivisor de 16,
periodo_r=62500/ Frecu_lcd
………..
set_adc_channel(0); //Selección del canal 0 (RA0)
delay_ms(10);
periodo=read_adc(); //periodo del pulso
if (frecu_lcd< 980) periodo_r=(62500/frecu_lcd);
if ((frecu_lcd> 980)&&(frecu_lcd< 3900)) periodo_r=(250000/frecu_lcd) ;
if (frecu_lcd> 3900) periodo_r=(1000000/frecu_lcd) ;
lcd_gotoxy(1,1);
printf(lcd_putc,"FREC=%04lu%c%c\n",frecu_lcd,'H','z');
…………
Se configura el timer2 según la frecuencia.
if (frecu_lcd< 980) setup_timer_2(T2_DIV_BY_16,periodo_r,1); //Carga el
periodo y TMR2 en ON
if ((frecu_lcd> 980)&&(frecu_lcd< 3900)) setup_timer_2(T2_DIV_BY_4
,periodo_r,1);
if (frecu_lcd> 3900) setup_timer_2(T2_DIV_BY_1 ,periodo_r,1);
setup_ccp2(CCP_PWM); //Modo PWM para el CCP1
98
3.3 Vistas del PCB
R1,R2,R3,R4=1K
R5=10K
R6=10M
R8=100K
R9=50K
RV1,RV2=1K
C1=0,1 µF
C2=1000 Μf
C3,C4=27pF
X1=4Mhz
U2=LM7805
U1=PIC16F876A
Q1=BUK555
Q2=BC107
Q3=BC547
J1,J2,J3,J4,J5=Con 2pin
Módulo LCD
Figura 4.Vista componentes amplificada.
99
Figura 7
100
Capítulo 4
Conclusiones y trabajo futuro
4. Conclusiones
Las comprobaciones efectuadas por el interfaz de diagnostico en multitud de vehículos
ha sido bastante satisfactoria. Aunque me ha decepcionado un poco la baja cantidad de
sensores soportados por el fabricante en las unidades de control. Los vehículos
americanos ofrecían gran cantidad de sensores soportados mientras que los europeos y
asiáticos casi la mitad. Pero a pesar de esto, los sensores soportados eran de una
importancia crucial para el seguimiento de una posible avería en la gestión electrónica
del motor. Con el objeto de llevar a la práctica mis conocimientos adquiridos en el
estudio de sistemas de inyección, electrónica de vehículos y conocimientos sobre OBD,
trabajé en un taller de vehículos durante siete meses incorporando a éste mi programa
sobre diagnosis de vehículos. Los casi 8000 códigos de avería, genéricos y específicos
del fabricante que incorporé en la base de datos del programa, me ayudaron en muchas
ocasiones a resolver averías que “sorprendentemente” en talleres con aparatos de
diagnosis de alto coste no interpretaban.
Durante este tiempo aprendí que el aparato de diagnosis más efectivo es el propio
técnico con una base sólida de conocimientos sobre electrónica de vehículos (sistemas
de inyección, conocimiento de la mecánica e hidráulica del motor) y que el interfaz de
diagnostico es simplemente una ayuda para llegar a la solución de la avería.
La parte del programa “Análisis de sensores” ha sido la más interesante del proyecto
puesto que he podido comprobar que realmente funcionaba con bastante repetitividad.
Además la comparación entre modelos es muy flexible, del usuario depende qué tipo de
modelos memorizar para hacer sus propias investigaciones y llegar a la avería lo antes
posible. Expongo a continuación un ejemplo de cómo visualizar una avería de forma
gráfica. Para esta comprobación he memorizado un “modelo correcto” de un vehículo,
posteriormente he provocado una avería y he memorizado el modelo incorrecto.
101
Figura 1
En la figura 2 está la misma prueba anterior pero con un Citroen Xsara Picasso
(sistema de inyección HDI), en la gráfica se aprecia esta diferencia.
Figura 2
La misma prueba pero con un golf TDI (sistema de inyección UIS), (Figura 3).
Figura 3
102
También he realizado comprobaciones con el comprobador de actuadores (PWM),
conectando éste directamente a la electroválvula de regulación de la válvula EGR y
seguidamente monitorizando el flujo de aire con el programa realizado. Observando en
ralentí, como a medida que abría y cerraba la electroválvula (operando con el duty-
cycle) aumentaba y disminuía el flujo de aire.
Figura 4
103
104
Bibliografía
-Regulación electrónica Diesel (EDC).Publicado por Robert Bosch GmbH.
-Manual de la técnica del automóvil (4ºEdición). Publicado por Robert Bosch GmbH.
-Sistemas de inyección por acumulador Common Rail. Publicado por Robert Bosch
GmbH.
-Inyección directa de gasolina Bosch Motronic MED 7.Publicado por Vicente Blasco
Argente para servicio wolkswagen.
105