Ecu Automotriz COMPLETO
Ecu Automotriz COMPLETO
Ecu Automotriz COMPLETO
Yo, Marco Vinicio Noroña Merchán certifico que conozco a los autores del presente
contenido.
Certificación de Autoría
Yo, Miguel Ángel Arévalo Riccio, juntos a mi compañero Anthony Josué Mendoza Ramírez,
declaramos bajo juramento, que el trabajo aquí descrito es de nuestra autoría; que no ha sido
Internacional del Ecuador, para que sea publicado y divulgado en internet, según lo establecido
Dedicatoria
El presente trabajo lo dedico con todo mi amor y cariño a Dios, a mi querida madre
Martha Riccio por ese esfuerzo que hacías día a día para poder culminar mi carrera profesional,
por sus palabras de aliento, por darme la mano cuando me caía, por siempre creer en mí y por
A mi padre Julio Arévalo que se encuentra en el cielo, gracias por cuidarme y guiarme
desde allá arriba, gracias por todo lo que me enseñaste cuando estabas en vida y gracias por
estar.
A mi abuelita Sofia Miranda y a mi tío Ángel Riccio que me han brindado su apoyo de
manera incondicional.
Gracias por formar parte de mi vida, por sus consejos y palabras de alientos. Mis triunfos
Dedicatoria
años, qué no fue fácil, pero gracias a su ayuda pude seguir con mi formación profesional.
Gracias por ayudarme en este proceso que me ayuda a completar una de mis metas
principales, sus palabras de aliento y consejos fueron de gran ayuda en este recorrido.
Agradecimiento
Agradezco a Dios por permitirme tener una buena experiencia dentro de la UIDE,
agradezco a la universidad por tan calurosa acogida desde el curso de nivelación, por haber
sabido sobrellevar las clases en tiempo de pandemia, agradezco a mi tutor de tesis al Ing. Marco
fueron de principal ayuda para el desarrollo de la tesis y agradezco a cada uno de los docentes
que forman parte de tan noble institución como es la UIDE por transmitirme sus conocimientos
Agradecimiento
vivir una de las más importantes experiencias dentro de la UIDE, agradezco a la universidad
quién demostró su total apoyo en los momentos más difíciles para poder seguir con mi proceso
de estudios, al Ing. Marco Noroña por ser un guía y docente excelente impartiendo sus
Resumen
Control Unit). Es por esto que el banco de pruebas está basado en un Software y Hardware de
libre acceso llamado Arduino. Este banco de pruebas se usa para comprobar las señales de
entrada y salida de la computadora automotriz hacia los actuadores del vehículo, lo que permite
verificar sí existe un fallo en la computadora o un fallo del actuador así se evita el reemplazo
remplazar y evitar las fallas en el vehículo. Se realiza las pruebas respectivas en computadoras
automotrices de los vehículos “Chevrolet Sail”, donde en el primer análisis se detecta un fallo
en el actuador del ventilador dando a entender que la computadora automotriz presenta una falla
en esta señal, se realiza un segundo análisis con otra ECU y esta no presenta fallas, quiere decir
Palabras clave: ECU (Electronic Control Unit), Banco de Pruebas, Chevrolet Sail, Arduino,
Software.
x
Abstract
The objective of this project was pointed to propose a new alternative for replacing
automotive computers in Ecuador through an ECU (Electronic Control Unit) test bench. This
test bench is based on a freely accessible Software and Hardware called Arduino. This test
bench is used to check the input and output signals from the automotive computer to the
vehicle's actuators, it allows to verify if there is a computer or an actuator failure, this will avoid
unnecessary computer replacements in the future, It works as a single component which can be
replaced in order to prevent vehicle failures. The respective tests were carried out in automotive
computers of "Chevrolet Sail" vehicles, In the first analysis a failure in the fan actuator was
detected, implying that the automotive computer presented a failure in this signal, a second
analysis was carried out with another ECU and this one had no faults, it meant that computer is
working well.
Keywords: ECU (Electronic Control Unit), Test Bench, Chevrolet Sail, Arduino,
Software.
xi
Índice de Contenido
Dedicatoria ................................................................................................................................. v
Resumen .................................................................................................................................... ix
Abstract ...................................................................................................................................... x
2.7 Comprobación................................................................................................................... 37
Conclusiones ............................................................................................................................ 80
Recomendaciones ..................................................................................................................... 81
Bibliografía............................................................................................................................... 82
Anexos ...................................................................................................................................... 84
xviii
Índice de Figuras
Figura 64 Sistema TPS, Sistema ECT, Sistema MAP, Sistema MAF y Sistema FRP .............. 64
Figura 66 Conector DB89 D tablero, Conector DB25 F llave & Conector DB89 G ............. 65
Índice de Tablas
Tabla 1 Significado de Cada Uno de los Pines Out del Sail .................................................... 68
Capítulo I Antecedentes
Antecedentes
automotrices.
A nivel mundial existen 1.420 millones de automóviles, de todos estos 1.060 millones
(Marnato, 2022)
mientras que los vehículos comerciales mostraron un crecimiento del 21%. En enero del 2022
del 0.6% con relación al mes de diciembre del 2021. (Over, 2022)
también hace referencia que la edad promedio del parque automotor ecuatoriano es de 16 años.
(Dono, 2022). Es evidente que año a año se van sumando más automóviles en la ciudad de
Guayaquil, sin embargo los dueños de sus vehículos cuando estos presentan un fallo en sus
computadoras automotrices, algunas personas decidirán comprar este elemento de un alto valor,
25
puesto que no les dan más alternativas, sin embargo existirán personas que no puedan adquirirlo
permitirá verificar el funcionamiento de ECUS en un vehículo Sail, lo que logrará darles una
- ¿Se logrará implementar un equipo banco de diagnóstico intuitivo, que resulte fácil
ciudad de Guayaquil?
la verificación del funcionamiento del módulo de control electrónico del sistema de inyección
didácticas.
Teniendo en cuenta los objetivos planteados dentro del tema de estudio, la apología de
cuenta todos los aspectos técnicos, mediante un proceso sistemático y práctico. nuestro estudio
computadoras automotrices.
El resultado de investigación permite conocer sobre estos equipos y sus valores, los
mismos que se mantiene en cuenta para la elaboración de nuestro equipo y poder abaratar costos
El trabajo se desarrollará desde el mes de junio del 2022, hasta junio del 2023, tiempo
que permitirá realizar la investigación, así como diseñar y construir el banco de pruebas.
27
encuentran en la facultad donde posteriormente se hará uso de éstos para poder comprobar el
computadoras automotrices.
plataforma Arduino.
El tercer bloque está constituido por fallas comúnmente presentadas en las Ecus, y
además las pruebas que se realizarán con el equipo, para luego realizar las guías prácticas.
1.5 Hipótesis
que permitirá obtener resultados positivos en cuanto a factores económicos y académicos con
- Sail
1.7.1 Métodos
revistas, libros, documentos, tesis y sitios web con excelente información, su inicio, principales
banco de pruebas: Plataforma Arduino, Ecus, Mazda 3, costos, etc. en este trabajo se recurrirá
con la programación del banco de pruebas para poder definir cual el más oportuno.
Se adhiere este tipo de investigación, dado que mediante ella podemos informarnos
Mediante ella se puede poner en práctica los diferentes tipos de estudios para la
Marco de Referencia
podio presenciar en las diferentes ciudades principales del Ecuador; es una realidad que debido
al cambio climático que sufre la ciudad de Guayaquil los ingresos de los vehículos en los talleres
automotrices por motivos eléctricos son abundantes, donde se presentan problemas en la ECU
y como única solución que ofrecen los talleres al cliente es el cambio total de la misma.
Se la conoce con varios nombres, entre ellos: computadora automotriz, centralita, recibe
la información de los sensores y ésta a su vez envía la orden a los actuadores, como se
motor.
electrónico.
La función es controlar y almacenar los códigos de falla que se generan mediante los
La función que cumple es de almacenar y controlar los datos de los sistemas de frenos
Es la encargada de almacenar de manera temporal los datos y valores la cual los sensores
estarán enviando, esta necesita una alimentación de voltaje constante para que pueda funcionar,
cada vez que el interruptor que se encuentre en apagado esta perderá su información.
Es una memoria de tipo programable, es decir una memoria solo de lectura, donde si la
Es una memoria que se encuentra soldada a los circuitos de la ECM, memoria solo de
Es una memoria que se puede programar y borrar según lo que decida el usuario, nos
Es una memoria que no necesita energía, no se pueden borrar los daros puesto que solo
2.2.4 Estructura
de esta se realiza mediante un conector multipolar, como se detalla en la figura 2 con sus
Estructura de ECU
Los sensores proceden a enviar la señal a la ECU o centralita y este a su vez envía la
señal a los actuadores, en la figura 3 se observó el pin out del vehículo Sail y la cual
Tiene como misión eliminar la interferencia y ruido la cual se pudo haber producido
el conector.
Filtrado de Señales
La ECU solo interpreta señales digitales, por lo tanto, las señales de los sensores de
Es la encarga de recibir las señales enviadas por los sensores para que su vez este
pueda encausar la información y realizar los cálculos correspondientes de tal manera pueda
decidir cuáles son los actuadores que se usaran para que el motor funcione en perfectas
condiciones.
Estos se ubican en el integrado de la ECU, mismos que son los encargados de evitar la
sobrecarga de los componentes de esta, en la figura 5 se detalló las etapas de la potencia donde
Etapa de Potencia
- Pista quemada: Se dice que una pista esta quemada cuando este genera sobrecarga la
de la ECU, la cual producen una interferencia en la parte electrónica o conexiones que afectan
una ECU.
- Transistor averiado: Esta falla suele presentarse cuando los transistores reciben un
sobre voltaje, para corregir esta falla se debe ubicar el transistor y remplazarlo sí este fuese
necesario.
energía se debe a que el mismo se encuentra sometido a temperaturas muy elevadas; y también
- Fallas del microprocesador: Es considera una de las partes más críticas de la ECU
2.5 Programación
que se usa, se puede definir como el conjunto de indicaciones que llevarán a la computadora a
36
realizar un trabajo específico, se observó en la figura 7 como la ECU está conectada al banco y
2.6 Arduino
de usar. las placas Arduino pueden leer entradas (lucen un sensor, un dedo en un botón o un
mensaje de Twitter) (Morán, 2022). Para posteriormente convertirlo en salida, es decir encender
un led o publicar algo en línea; en la figura 8 se detalló la placa Arduino mega 2560 que es
Placa Arduino
2.7 Comprobación
o exactitud de una cosa, en la figura 9 se detalló con claridad como es el mecanismo para la
Comprobación de ECU
2.8 Diagnóstico
computadora automotriz para determinar sus tendencias de tal manera solucionar un problema,
en la figura 10 se observa cómo se puede realizar un diagnóstico de una ECU. (Tarlio, 2022)
Diagnóstico de la ECU
2.9 Implementación
Se basa en aplicar métodos, aplicar medidas para llevar algo a cabo, en la figura 11 se
Figura 11Implementación
Implementación
LCD: Es una pantalla plana formada por pixeles y números, que se emplea para
2022)
Pantalla LCD
entradas y salidas, y de estas se pueden usar 15 como salidas (PWM), una conexión USB, un
(Gil, 2021)
Diodo Led: Es un emisor de luz que emite fotones cuando este recibe una corriente
Diodo Led
2003)
40
Condensador
(Gil, 2021)
Resistencia de 1k Ohmios
colector y emisor; funcionan como flujo de corriente actuando como amplificador e interruptor.
Figura 17 Transistor
Transistor
41
Figura 18 Pulsador
Pulsador
Figura 19 Relé
Relé
Diodo
Cargador 2A - AC: Elemento que sirve para poder alimentar el banco de pruebas. En la
Figura 21 Cargador 2A - AC
Cargador de 2A - AC
Por sus siglas Fuel Rail Preassure, en español es el sensor del riel el mismo que es el
Señor FRP
Por sus siglas Engine Coolant Temperature, este sensor es el encargado de medir la
Sensor ECT
Por sus siglas Manifold Absolute Pressure, este sensor es el encargado de la medición
Sensor MAP
Por sus siglas Throttle Position Sensor, este sensor es encargado de controlar la
mariposa, es decir que su función es pasar la señal a la Ecu para poder controlar la inyección
Sensor TPS
2.12.5 Sensor O2
Es el encargado de verificar sí la mezcla que realizan los motores y sale por el escape
tiene exceso o tiene poco combustible. En la figura 26 se observa el sensor O2 (Alonso, 2003)
Figura 26 Sensor O2
Sensor O2
Por sus siglas Mass Air Flow, es el encargado de determinar la temperatura del aire de
admisión en cualquier estado del auto (es decir em frio o caliente). En la figura 27 se observa
Sensor MAF
Por sus siglas Intake Air Temperature, este sensor es el encargado de medir la
temperatura que ingresa al colector de admisión esto ayuda a que el motor obtenga la cantidad
Sensor IAT
La unidad de control (ECU) también conocida como: ECM, ECC, ECCS, CPU, PCM,
VCM, entre otros. Es quién recibe los datos de entrada de los dispositivos, tales como:
interruptores y sensores, quiénes son los encargados de procesar la información, entre ellos:
Temperatura de aire interior y exterior del vehículo, presión del colector, posición del árbol de
levas, posición del acelerador, oxígeno dentro del motor, es él cigüeñal, control de ralentí, entre
otros, con la finalidad de activar los actuadores, en la figura 29 se puede observar como la ECU
(Cajicasa, 2016)
Dentro de las principales fallas se clasifican en: físicas y lógicas, en las cuales las fallas
físicas pueden ser: pistas quemadas, punto de soldadura agrietado, corrosión por óxido,
producirse en la base de datos del programa interno, lo que no requiere que se desarme la
computadora, estas fallas por lo general se suelen solucionar con una reprogramación de esta,
Una de las principales ventajas de la plataforma Arduino es su bajo costo que le permite
a las personas el uso de dicho software, además se considera una plataforma fácil de usar, donde
con pocos conocimientos de programación se puede interactuar con la misma. cuenta con un
hardware y software de código abierto, además de gran variedad de placas que permiten crear
(Walack, 2018)
47
software Arduino haciendo uso de una placa “Arduino mega 2560” ideal para este proyecto
LCD - Programación
49
modelo de autos “Chrysler” donde será divida en 2 partes para una mejor organización. En la
En la figura 37 se procede con el siguiente modelo de autos “BMW” donde será divida
En la figura 39 se procede con el siguiente modelo de autos “Ford” donde será divida
En la figura 41 se procede con el siguiente modelo de autos “Toyota” donde será divida
En la figura 49 se procede con los modelos de autos que manejan un sistema distinto al
se requiere trabajar.
Menú de Marcas
Simulación de RPM
59
En este apartado se puede encontrar de manera detalla cada circuito que se realizó para
llevar a cabo el banco de pruebas.
El diodo led es un elemento que encuentra en la mayoría del diagrama eléctrico puesto
que es el encargado de cerrar el circuito, cuando se emita la señal desde la Ecu sé manifiesta a
través del diodo led.
3.2.1 Sistema de Inyectores
Sistema Inyectores
observa una entrada de tierra a un diodo Zener mediante un interruptor para corriente continua
donde la señal que emita la Ecu será reflejada en los diodos leds correspondiente al número de
la bobina.
Sistema de Bobinas
En la figura 56 se observa el circuito del sistema ASD (Auto Shut Down) y del apartado
del Check Engine donde para elaborar este circuito se hizo el uso de: Resistencia de 1k ohmios,
diodo Zenner.
Figura 56 Sistema ASD y Sistema Check Engine
En la figura 58 Se conecta directamente con las pantallas led que se tiene, simulando
un voltímetro de 5V y otro de 9V. Se visualiza una entrada de corriente continua, una tierra y
una entrada B6 hacia el voltímetro 5V.
Figura 58 Sistema Voltaje Sensores
vehículo.
Sistema Bomba
En la figura 64 se encuentra los diferentes circuitos de los sensores TPS, MAP, MAF,
FRP, donde la entrada de todos los sensores se la hace por medio de 5V pasando por una
resistencia y posee una salida de tierra.
Figura 64 Sistema TPS, Sistema ECT, Sistema MAP, Sistema MAF y Sistema FRP
Sistema TPS, Sistema ECT, Sistema MAP, Sistema MAF y Sistema FRP
Figura 66 Conector DB89 D tablero, Conector DB25 F llave & Conector DB89 G
Solenoides de Transmisión
En la figura 69 se observa las conexiones que tiene la plaga de Arduino mega con la
pantalla LCD.
67
Se debe tener en cuenta que cada sistema está conectado al Arduino el cual contiene la
programación para poder activar cada señal que se requiera demostrar de la Ecu.
simplemente para algún tipo de diagnóstico, por lo que son las conexiones eléctricas del
vehículo; en la siguiente figura se puede observar con detalle cada pin out de la ECU y las
conexiones, con el fin de facilitar la búsqueda por cortocircuitos o fallas en circuitos eléctricos
grandes, la red CAN Bus nace como una solución a la comunicación entre los distintos
dispositivos de los vehículos ya que es la encargada de llevar información a todas partes del
68
mismo, en la figura 70 se puede visualizar el pin out del Sail, posee 100 pines y en la tabla 1 el
Para poder conectar una ECU al banco de pruebas es indispensable tener el pin out de
la misma, en este caso se procede a trabajar con la ECU del Sail empleando los cables Dupont
donde se realiza las conexiones desde el banco de pruebas haciendo uso de los puertos ECU A
& ECU B del banco hacia los pines de la ECU, por ello es importante entender que cada pin del
banco tiene una conexión especifica al igual que la ECU tiene su propio pin out, en la figura 71
que se denomina ECU A y se detallara la función de cada uno de los 25 pines, en la tabla 2 se
Detalle de ECU A
Detalles de ECU B
A continuación, se detalla los pines que se conectaran del banco de pruebas de la entrada
Cilindro 1
Pin 2 Inyector 2 Pin 78 Señal de control de inyector
de combustible –
Cilindro 2
Pin 3 Inyector 3 Pin 79 Señal de control de inyector
de combustible –
Cilindro 3
74
Cilindro 4
Pin 9 Check Engine Pin 12 Baja referencia
Pin 10 Bomba Con Salida (+) Pin 91 Salida de señal de nivel de
combustible
Pin 11 CMP2 Pin 5 Señal del sensor de posición
del árbol de levas
Pin 12 Sensor MAF Pin 83 Señal de control de múltiple
de admisión variable
Pin 13 Sensor FRP -
Pin 14 Bobina 1 Pin 26 Señal de control de ignición
– Cilindro 1
Pin 15 Bobina 2 Pin 3 Señal de control de ignición
– Cilindro 2
Pin 16 Bobina 3 Pin 2 Señal de control de ignición
– Cilindro 3
Pin 17 Bobina 4 Pin 1 Señal de control de ignición
– Cilindro 4
Pin 22 Sensor O2 Pin 88 Control bajo del calentador
del sensor de oxígeno
delantero
Pin 23 Sensor IAT Pin 18 Referencia 5V
Pin 24 Señal Start Pin 19 Baja referencia
Pin 25 Led Inmovilizador Pin 20 Baja referencia
entrada ECU B a los pines de la ECU del Sail, como se detalla en la tabla 5.
delantero
Pin 18 Sensor ECT Pin 39 Señal del sensor de temperatura
del refrigerante
Pin 19 Sensor MAP Pin 7 Señal de sensor de temperatura
del múltiple
Pin 20 Sensor TPS Pin 32 Señal del sensor de posición del
pedal
Pin 21 Tierra Sensores 2 Pin 74 Tierra
Pin 22 Sensor MAP Pin 48 Voltaje de ignición ½
Pin 23 Ignition 12v Pin 47 Voltaje de ignición 2/3
Pin 24 Bateria 12v Pin 50 Voltaje de encendido
Pin 25 Bateria 12v Pin 25 Voltaje de encendido
76
Se procedió a conectar mediante cables Dupont el banco de pruebas a la Ecu del Sail
tomando en cuenta en pin out de las misma, donde en primera instancia se conectó los pines
que energizaban a la Ecu para luego conectar las bobinas, inyectores, alternador, tierra de los
En primera instancia se observa cómo está el banco de pruebas cuando esta apagado, en
de prueba se puede visualizar que el check engine se apaga como se lo puede visualizar en el
círculo rojo.
Posteriormente al darle al botón de Start se observa cómo se apaga la luz del led
En esta primera prueba se logra divisar que el led de Fan low, es decir del ventilador del
motor no se pendió por motivos a que la ECU no estaría mandando la señal para activarlo, esto
En segunda instancia se procedió a conectar los sensores donde se observa que no había
alguna variación de voltajes al cambiar las RPM del motor, esto da a entender junto con el
problema anterior que la Ecu tiene varios componentes internos dañados que producen un
Al no tener éxito en la primera prueba que se realiza, sé decidió hacer la prueba con
otra Ecu de Sail para descartar que fuese problema del banco de pruebas.
Como se observa cuenta en esta Ecu sí enciende el led indicador del low fan lo que
Luego de comprobar la primera parte del banco de pruebas y ver que todo estaba
funcional, se procede a usar la segunda parte del banco de pruebas que son los sensores, donde
debe existir variaciones de voltaje cuando se modifica las RPM del motor.
También se puede visualizar que se encienden los diodos leds de los cuatros inyectores
del banco de prueba que son de color verdes y los cuatros leds azules pertenecen a la bobina, a
distinguir con el led de color naranja que se encuentra en la esquina superior izquierda, y el led
Conclusiones
Existen diferentes bancos de pruebas, lo que varía son: los componentes que lo forman,
portabilidad y el software en el que están basados sin embargo cumplen una misma función,
El uso de un software libre en este caso Arduino permite agregar más funciones al banco de
En la primera prueba se verifica un fallo interno en la ECU, dado que no presenta la señal
del ventilador esto producto de un cortocircuito o componente interno en mal estado, mientras
que en la segunda prueba haciendo uso de otra ECU del mismo modelo del vehículo se
Se realiza guías prácticas de libre acceso donde se puede dar a conocer sobre el manejo del
banco de pruebas.
81
Recomendaciones
Al momento de realizar las practicas con el banco de prueba y con la ECU que se vaya
- Comprobar que existe continuidad en los cables Dupont con la ayuda del multímetro.
- Evitar tocar varios puntos de soldadura con el multímetro o cualquier otro dispositivo.
- No colocar el banco de pruebas en algún lugar como: almohada, colchón, tela, preferible
- Por seguridad no conectar con un solo cable dupont directamente de la ECU al banco
- Conocer el número de dientes y huecos de un vehículo para poder añadir a las líneas de
Bibliografía
de inyección de gasolina usando una tarjeta adquisición Arduino Mega. Azuay: Universidad
del Azuay.
https://club.autodoc.es/magazin/que-es-la-ecu-y-como-funciona
https://www.primicias.ec/noticias/economia/ecuador-parque-automotor-mas-autos-pichincha-
guayas/
universitaria/para-que-sirve-la-programacion/
https://www.todomecanica.com/blog/1114-cuantos-coches-hay-en-el-mundo.html
https://doi.org/https://doi.org/10.1016/C2013-0-04529-X
83
Arduino. UIDE.
Noroña, M. (2018). Estudio de emisiones contaminantes producidas por un motor MEP con
https://doi.org/https://doi.org/10.33890/innova.v3.n4.2018.644
vehiculos-en-ecuador-a-enero-de-
2022/#:~:text=La%20cifra%20provisional%20para%20el,lo%20registrado%20en%20diciemb
re%202021.
https://www.diariomotor.com/tecmovia/2012/07/03/ecu-que-es-y-el-porque-de-su-existencia/
https://www.wordreference.com/definicion/comprobaci%C3%B3n
Azuay.
Anexos
85
86
87
88
Programación de Arduino
LCD
#include <LiquidCrystal.h>
LiquidCrystal lcd(8,9,4,5,6,7);
#include <Stepper.h>
#define STEPS 300
Stepper stepper(STEPS, A1, A2, A3, A4);
int menu_valvulas;
long rpm; //variable para rpm
int x;
int pulsado=3000; // variable para guardar que tecla se pulso
int dientes;
int huecos;
long mc=500; //variable para microsegundos
byte menu_marcas;
byte menu_principal;
byte switch_menu_diesel;
byte switch_menu_chevrolet;
byte switch_menu_nissan;
byte switch_menu_toyota;
byte switch_menu_volkswagen;
byte switch_menu_ford;
byte switch_menu_chrysler;
byte switch_menu_mazda;
byte switch_menu_hyundai;
byte switch_menu_bmw;
byte switch_menu_ngc;
byte switch_menu_citroen;
byte switch_menu_seat;
byte switch_menu_renaul;
byte switch_menu_peugeot;
byte switch_menu_audi;
byte menu_pcm_switch;
byte activacion;
int menu;
int total_mc=240;
#define sensorckp 1
#define valvulaiac 2
#define valvulabypass 3
#define ckp A1
#define cmp_uno A2
#define cmp_dos A3
#define cmp_tres A4
#define chevrolet 1
89
#define toyota 2
#define volkswagen 3
#define nissan 4
#define chrysler 5
#define ford 6
#define diesel 7
#define mazda 8
#define bmw 9
#define citroen 10
#define seat 11
#define renault 12
#define peugeot 13
#define audi 14
//#define honda
//#define kia
//#define mitsubishi
//#define fiat
//#define suzuki
#define derecha 1
#define izquierda 2
#define arriba 3
#define abajo 4
#define enter 5
void pulso_cmp_subida(){
digitalWrite(cmp_uno,HIGH);
}
void pulso_cmp_bajada(){
digitalWrite(cmp_uno,LOW);
}
void setup(){
convertir_mc_rp();
pinMode(ckp,OUTPUT);
pinMode(cmp_uno,OUTPUT);
pinMode(cmp_dos,OUTPUT);
pinMode(3,OUTPUT);
stepper.setSpeed(40);
menu_pcm_switch=1;
logo_principal();
activacion=0;
menu_marcas = 1;
menu=-1;
menu_principal=1;
//se inician en la primera opcion
switch_menu_diesel = 1;
switch_menu_chevrolet = 1;
90
switch_menu_toyota = 1;
switch_menu_nissan = 1;
switch_menu_volkswagen = 1;
switch_menu_ford = 1;
switch_menu_chrysler = 1;
switch_menu_mazda = 1;
switch_menu_hyundai = 1;
switch_menu_ngc = 1;
switch_menu_bmw = 1;
switch_menu_citroen = 1;
switch_menu_seat = 1;
switch_menu_renaul = 1;
switch_menu_peugeot = 1;
switch_menu_audi = 1;
}
void loop(){
switch(menu_principal){
}
break;
lectura_botones();
}
Menu
#define ngcv4 1
#define ngcv6 2
#define ngcv8 3
void ngc_menu(){
switch(switch_menu_ngc){
case ngcv4:
pantalla_ngcv4();
lectura_botones();
if(pulsado==derecha){delay(200);
switch_menu_ngc=2;}
if(pulsado==enter){delay(500);
activacion=1;
lectura_botones();
if(pulsado==enter){
while(pulsado==enter){
lectura_botones();
}
menu=0;
activacion=0;
switch_menu_ngc=1;
}
while(activacion==1){
ngc4cil_senal();
}
}
break;
case ngcv6:
pantalla_ngcv6();
lectura_botones();
if(pulsado==derecha){delay(200);
switch_menu_ngc=3;}
if(pulsado==izquierda){delay(200);
switch_menu_ngc=1;}
if(pulsado==enter){delay(500);
activacion=1;
lectura_botones();
92
if(pulsado==enter){
while(pulsado==enter){
lectura_botones();
}
menu=0;
activacion=0;
switch_menu_ngc=1;
}
while(activacion==1){
ngc6cil_senal();
}
}
break;
case ngcv8:
pantalla_ngcv8();
lectura_botones();
if(pulsado==izquierda){delay(200);
switch_menu_ngc=2;}
if(pulsado==enter){delay(500);
activacion=1;
lectura_botones();
if(pulsado==enter){
while(pulsado==enter){
lectura_botones();
}
menu=0;
activacion=0;
switch_menu_ngc=1;
}
while(activacion==1){
ngc8cil_senal();
}
}
break;
}
}
void ngc4cil_senal(){
lectura_botones();
if(pulsado==enter){delay(500);
activacion=2;
lectura_botones();
if(pulsado==enter){
while(pulsado==enter){
lectura_botones();
}
activacion=0;
93
}
lcd.clear();
pantalla_rpm();
pantalla_activa();
while(activacion==2){
lectura_botones();
ajustar_rpm();
// ACCION DE CKP
ngc4cil();
if(pulsado==enter){delay(200);
activacion=1;
}
}
}
else{
pantalla_desactiva();
}
}
void ngc6cil_senal(){
lectura_botones();
if(pulsado==enter){delay(500);
activacion=2;
lectura_botones();
if(pulsado==enter){
while(pulsado==enter){
lectura_botones();
}
activacion=0;
}
lcd.clear();
pantalla_rpm();
pantalla_activa();
while(activacion==2){
lectura_botones();
ajustar_rpm();
// ACCION DE CKP
ngc6cil();
if(pulsado==enter){delay(200);
activacion=1;
}
}
}
else{
94
pantalla_desactiva();
}
}
void ngc8cil_senal(){
lectura_botones();
if(pulsado==enter){delay(500);
activacion=2;
lectura_botones();
if(pulsado==enter){
while(pulsado==enter){
lectura_botones();
}
activacion=0;
}
lcd.clear();
pantalla_rpm();
pantalla_activa();
while(activacion==2){
lectura_botones();
ajustar_rpm();
// ACCION DE CKP
ngc8cil();
if(pulsado==enter){delay(200);
activacion=1;
}
}
}
else{
pantalla_desactiva();
}
}
Chrysler
#define sbec_60 1
#define sbec_80 2
#define jtec 3
#define ngc 4
void chrysler_menu(){
switch(switch_menu_chrysler){
95
/////////////////////////////////////////////////////
case sbec_60:
pantalla_pcm();
lectura_botones();
if(pulsado==derecha){delay(200);
switch_menu_chrysler=2;}
if(pulsado==enter){delay(500);
activacion=1;
lectura_botones();
if(pulsado==enter){
while(pulsado==enter){
lectura_botones();
}
menu=0;
activacion=0;
switch_menu_chrysler=1;
}
while(activacion==1){
chrysler_sbec60();
}
}
break;
////////////////////////////////////////////////////
case sbec_80:
pantalla_sbec_negro();
lectura_botones();
if(pulsado==derecha){delay(200);
switch_menu_chrysler=3;}
if(pulsado==izquierda){delay(200);
switch_menu_chrysler=1;}
if(pulsado==enter){delay(500);
activacion=1;
lectura_botones();
if(pulsado==enter){
while(pulsado==enter){
lectura_botones();
}
menu=0;
activacion=0;
switch_menu_chrysler=1;
}
while(activacion==1){
chrysler_sbec60();
}
}
break;
////////////////////////////////////////////////////
96
case jtec:
pantalla_jtec();
lectura_botones();
if(pulsado==derecha){delay(200);
switch_menu_chrysler=4;}
if(pulsado==izquierda){delay(200);
switch_menu_chrysler=2;}
if(pulsado==enter){delay(500);
activacion=1;
lectura_botones();
if(pulsado==enter){
while(pulsado==enter){
lectura_botones();
}
menu=0;
activacion=0;
switch_menu_chrysler=1;
}
while(activacion==1){
chrysler_sbec60();
}
}
break;
////////////////////////////////////////////////////
case ngc:
pantalla_ngc();
lectura_botones();
if(pulsado==izquierda){delay(200);
switch_menu_chrysler=3;}
if(pulsado==enter){delay(500);
activacion=1;
lectura_botones();
if(pulsado==enter){
while(pulsado==enter){
lectura_botones();
}
menu=0;
activacion=0;
switch_menu_chrysler=1;
}
while(activacion==1){
ngc_menu();
}
}
break;
////////////////////////////////////////////////////
97
Chevrolet
#define chevy 1
#define luvdmax 2
#define aveo 3
#define captiva 4
#define silverado 5
#define spark 6
void chevrolet_menu(){
switch(switch_menu_chevrolet){
case 1:
pantalla_chevy();
lectura_botones();
if(pulsado==derecha){delay(200);
switch_menu_chevrolet=2;}
if(pulsado==enter){delay(500);
activacion=1;
lectura_botones();
if(pulsado==enter){
while(pulsado==enter){
lectura_botones();
}
menu=0;
activacion=0;
switch_menu_chevrolet=1;
}
while(activacion==1){
senal_chevy();
}
}
break;
case 2:
pantalla_luvdmax();
lectura_botones();
if(pulsado==izquierda){delay(200);
switch_menu_chevrolet=1;}
if(pulsado==derecha){delay(200);
switch_menu_chevrolet=3;}
if(pulsado==enter){delay(500);
activacion=1;
lectura_botones();
if(pulsado==enter){
while(pulsado==enter){
lectura_botones();
}
98
menu=0;
activacion=0;
switch_menu_chevrolet=1;
}
while(activacion==1){
luvdmax_senal();
}
}
break;
case 3:
pantalla_aveo();
lectura_botones();
if(pulsado==izquierda){delay(200);
switch_menu_chevrolet=2;}
if(pulsado==derecha){delay(200);
switch_menu_chevrolet=4;}
if(pulsado==enter){delay(500);
activacion=1;
lectura_botones();
if(pulsado==enter){
while(pulsado==enter){
lectura_botones();
}
menu=0;
activacion=0;
switch_menu_chevrolet=1;
}
while(activacion==1){
aveo_senal();
}
}
break;
case 4:
pantalla_captiva();
lectura_botones();
if(pulsado==izquierda){delay(200);
switch_menu_chevrolet=3;}
if(pulsado==derecha){delay(200);
switch_menu_chevrolet=5;}
if(pulsado==enter){delay(500);
activacion=1;
lectura_botones();
if(pulsado==enter){
while(pulsado==enter){
lectura_botones();
}
99
menu=0;
activacion=0;
switch_menu_chevrolet=1;
}
while(activacion==1){
captiva_senal();
}
}
break;
case 5:
pantalla_silverado();
lectura_botones();
if(pulsado==izquierda){delay(200);
switch_menu_chevrolet=4;}
if(pulsado==derecha){delay(200);
switch_menu_chevrolet=6;}
if(pulsado==enter){delay(500);
activacion=1;
lectura_botones();
if(pulsado==enter){
while(pulsado==enter){
lectura_botones();
}
menu=0;
activacion=0;
switch_menu_chevrolet=1;
}
while(activacion==1){
silverado_senal();
}
}
break;
case 6:
pantalla_spark();
lectura_botones();
if(pulsado==izquierda){delay(200);
switch_menu_chevrolet=5;}
if(pulsado==enter){delay(500);
activacion=1;
lectura_botones();
if(pulsado==enter){
while(pulsado==enter){
lectura_botones();
}
menu=0;
100
activacion=0;
switch_menu_chevrolet=1;
}
while(activacion==1){
spark_senal();
}
}
break;
}
}
void senal_chevy(){
lectura_botones();
if(pulsado==enter){delay(500);
activacion=2;
lectura_botones();
if(pulsado==enter){
while(pulsado==enter){
lectura_botones();
}
activacion=0;
}
lcd.clear();
pantalla_rpm();
pantalla_activa();
// PROGRAMAR DIENTES Y HUECOS
dientes=60;
huecos=2;
dientes=dientes-huecos;
while(activacion==2){
lectura_botones();
ajustar_rpm();
// ACCION DE CKP
ckp_programable();
if(pulsado==enter){delay(200);
activacion=1;
pantalla_rpm();
}
}
}
else{
pantalla_desactiva();
}
}
void luvdmax_senal(){
lectura_botones();
if(pulsado==enter){delay(500);
activacion=2;
101
lectura_botones();
if(pulsado==enter){
while(pulsado==enter){
lectura_botones();
}
activacion=0;
}
lcd.clear();
pantalla_rpm();
pantalla_activa();
while(activacion==2){
lectura_botones();
ajustar_rpm();
// ACCION DE CKP
LUVDMAX();
if(pulsado==enter){delay(200);
activacion=1;
}
}
}
else{
pantalla_desactiva();
}
}
void aveo_senal(){
lectura_botones();
if(pulsado==enter){delay(500);
activacion=2;
lectura_botones();
if(pulsado==enter){
while(pulsado==enter){
lectura_botones();
}
activacion=0;
}
lcd.clear();
pantalla_rpm();
pantalla_activa();
while(activacion==2){
lectura_botones();
ajustar_rpm();
// ACCION DE CKP
AVEO();
102
if(pulsado==enter){delay(200);
activacion=1;
}
}
}
else{
pantalla_desactiva();
}
}
void captiva_senal(){
lectura_botones();
if(pulsado==enter){delay(500);
activacion=2;
lectura_botones();
if(pulsado==enter){
while(pulsado==enter){
lectura_botones();
}
activacion=0;
}
lcd.clear();
pantalla_rpm();
pantalla_activa();
while(activacion==2){
lectura_botones();
ajustar_rpm();
// ACCION DE CKP
CAPTIVA();
if(pulsado==enter){delay(200);
activacion=1;
}
}
}
else{
pantalla_desactiva();
}
}
void silverado_senal(){
lectura_botones();
if(pulsado==enter){delay(500);
activacion=2;
lectura_botones();
103
if(pulsado==enter){
while(pulsado==enter){
lectura_botones();
}
activacion=0;
}
lcd.clear();
pantalla_rpm();
pantalla_activa();
while(activacion==2){
lectura_botones();
ajustar_rpm();
// ACCION DE CKP
SILVERADO();
if(pulsado==enter){delay(200);
activacion=1;
}
}
}
else{
pantalla_desactiva();
}
}
void spark_senal(){
lectura_botones();
if(pulsado==enter){delay(500);
activacion=2;
lectura_botones();
if(pulsado==enter){
while(pulsado==enter){
lectura_botones();
}
activacion=0;
}
lcd.clear();
pantalla_rpm();
pantalla_activa();
while(activacion==2){
lectura_botones();
ajustar_rpm();
// ACCION DE CKP
SPARK();
if(pulsado==enter){delay(200);
104
activacion=1;
}
}
}
else{
pantalla_desactiva();
}
}
CKP
/*COPIAR EN CASO DE NESECITAR CKP SOLAMENTE
void senal_(){
lectura_botones();
if(pulsado==enter){delay(200);
activacion=2;
lcd.clear();
pantalla_rpm();
pantalla_activa();
// PROGRAMAR DIENTES Y HUECOS
dientes=8;
huecos=4;
dientes_restados=dientes-huecos;
while(activacion==2){
lectura_botones();
// MODIFICAR RPM + -
ajustar_rpm();
// ACCION DE CKP
ckp_programable();
if(pulsado==enter){delay(200);
activacion=1;
}
}
}
else{
pantalla_desactiva();
if(pulsado==izquierda){delay(200);
activacion=0;}
}
}
*/
void ckp_programable(){
for(int diente=1;diente<=dientes;diente++){ajustar_rpm();
pulso_ckp_subida();ajustar_rpm();
pulso_ckp_subida_mitad();ajustar_rpm();
105
pulso_ckp_bajada();ajustar_rpm();
pulso_ckp_bajada_mitad();ajustar_rpm();
}
digitalWrite(ckp,0);
delayMicroseconds(mc*2);
for(int hueco=1;hueco<=huecos;hueco++){
pulso_ckp_low();
}
}
void pulso_ckp_subida(){
digitalWrite(ckp,1);
delayMicroseconds(mc/2);
}
void pulso_ckp_subida_mitad(){
delayMicroseconds(mc/2);
}
void pulso_ckp_bajada(){
digitalWrite(ckp,0);
delayMicroseconds(mc/2);
}
void pulso_ckp_bajada_mitad(){
delayMicroseconds(mc/2);
}
void pulso_ckp_low(){
digitalWrite(ckp,0);
delayMicroseconds(mc);
}
void pulso_ckp_high(){
digitalWrite(ckp,1);
delayMicroseconds(mc);
}
pantalla_rpm();
}
if(pulsado==arriba){delay(100);
mc=mc-50;
ajusterpm();
convertir_mc_rp();
if(rpm<=999&rpm>=900||rpm<=99&rpm>=90){
lcd.setCursor(0,1);
lcd.print(F(" "));
}
pantalla_rpm();
}
}
void ajusterpm(){
if(mc<50){
mc=50;
}
if(mc>2500){
mc=2500;
}
Pantalla
void p_iac(){
lcd.setCursor(0,0);
lcd.print(F(" VALVULA IAC "));
lcd.setCursor(0,1);
lcd.print(F(" "));
}
void abriendo(){
lcd.setCursor(0,1);
lcd.print(F(" ABRIENDO "));
}
void cerrando(){
lcd.setCursor(0,1);
lcd.print(F(" CERRANDO "));
}
void logo_principal(){
lcd.begin(16,2);
lcd.setCursor(0,0);
lcd.print(F("UNIVERSIDAD"));
lcd.setCursor(2,1);
lcd.print(F("INTERNACIONAL"));
delay(1000);
lcd.clear();
lcd.setCursor(0,0);
lcd.print(F(" DEL "));
107
lcd.setCursor(2,1);
lcd.print(F(" ECUADOR"));
delay(1000);
lcd.clear();
lcd.setCursor(0,0);
lcd.print(F(" INGENERIA "));
lcd.setCursor(2,1);
lcd.print(F(" AUTOMOTRIZ"));
delay(3000);
lcd.clear();
lcd.setCursor(0,0);
lcd.print(F(" ANTHONY "));
lcd.setCursor(0,1);
lcd.print(F(" MENDOZA "));
delay(3000);
lcd.clear();
lcd.setCursor(0,0);
lcd.print(F(" MIGUEL "));
lcd.setCursor(0,1);
lcd.print(F(" AREVALO "));
delay(3000);
lcd.clear();
}
// menu principal
void sensorckp_principal(){
lcd.setCursor(0,0);
lcd.print(F(" INICIAR PRUEBA "));
lcd.setCursor(0,1);
lcd.print(F(" CKP CMP >"));
}
void valvulaiac_principal(){
lcd.setCursor(0,0);
lcd.print(F(" INICIAR PRUEBA "));
lcd.setCursor(0,1);
lcd.print(F("< VALVULA IAC "));
}
// menu marcas
void chevrolet_principal(){
lcd.setCursor(0,0);
lcd.print(F("SELECCIONA MARCA"));
lcd.setCursor(0,1);
lcd.print(F(" CHEVROLET ->"));
}
void toyota_principal(){
lcd.setCursor(0,0);
lcd.print(F("SELECCIONA MARCA"));
lcd.setCursor(0,1);
108
lcd.setCursor(0,1);
lcd.print(F("<- HONDA ->"));
}
void kia_principal(){
lcd.setCursor(0,0);
lcd.print(F("SELECCIONA MARCA"));
lcd.setCursor(0,1);
lcd.print(F("<- KIA ->"));
}
void mitsubishi_principal(){
lcd.setCursor(0,0);
lcd.print(F("SELECCIONA MARCA"));
lcd.setCursor(0,1);
lcd.print(F("<- MITSUBUSHI ->"));
}
void fiat_principal(){
lcd.setCursor(0,0);
lcd.print(F("SELECCIONA MARCA"));
lcd.setCursor(0,1);
lcd.print(F("<- FIAT ->"));
}
void renault_principal(){
lcd.setCursor(0,0);
lcd.print(F("SELECCIONA MARCA"));
lcd.setCursor(0,1);
lcd.print(F("<- RENAULT ->"));
}
void suzuki_principal(){
lcd.setCursor(0,0);
lcd.print(F("SELECCIONA MARCA"));
lcd.setCursor(0,1);
lcd.print(F("<- SUSUKI ->"));
}
void bmw_principal(){
lcd.setCursor(0,0);
lcd.print(F("SELECCIONA MARCA"));
lcd.setCursor(0,1);
lcd.print(F("<- BMW ->"));
}
void citroen_principal(){
lcd.setCursor(0,0);
lcd.print(F("SELECCIONA MARCA"));
lcd.setCursor(0,1);
lcd.print(F("<- CITROEN ->"));
}
void seat_principal(){
lcd.setCursor(0,0);
110
lcd.print(F("SELECCIONA MARCA"));
lcd.setCursor(0,1);
lcd.print(F("<- SEAT ->"));
}
void renaul_principal(){
lcd.setCursor(0,0);
lcd.print(F("SELECCIONA MARCA"));
lcd.setCursor(0,1);
lcd.print(F("<- RENAULT ->"));
}
void peugeot_principal(){
lcd.setCursor(0,0);
lcd.print(F("SELECCIONA MARCA"));
lcd.setCursor(0,1);
lcd.print(F("<- PEUGEOT ->"));
}
void audi_principal(){
lcd.setCursor(0,0);
lcd.print(F("SELECCIONA MARCA"));
lcd.setCursor(0,1);
lcd.print(F("<- AUDI "));
}
/////////////////////////////////////////////////////chevrolet
void pantalla_chevy(){
lcd.setCursor(0,0);
lcd.print(F("'''''MODELO'''''"));
lcd.setCursor(0,1);
lcd.print(F(" CHEVY ->"));
}
void pantalla_luvdmax(){
lcd.setCursor(0,0);
lcd.print(F("'''''MODELO'''''"));
lcd.setCursor(0,1);
lcd.print(F("<- LUVDMAX ->"));
}
void pantalla_aveo(){
lcd.setCursor(0,0);
lcd.print(F("'''''MODELO'''''"));
lcd.setCursor(0,1);
lcd.print(F("<- SAIL ->"));
}
void pantalla_captiva(){
lcd.setCursor(0,0);
lcd.print(F("'''''MODELO'''''"));
lcd.setCursor(0,1);
lcd.print(F("<- CAPTIVA ->"));
}
111
void pantalla_silverado(){
lcd.setCursor(0,0);
lcd.print(F("'''''MODELO'''''"));
lcd.setCursor(0,1);
lcd.print(F("<- SILVERADO ->"));
}
void pantalla_spark(){
lcd.setCursor(0,0);
lcd.print(F("'''''MODELO'''''"));
lcd.setCursor(0,1);
lcd.print(F("<- SPARK "));
}
//activacion de señal
void pantalla_activa(){
lcd.setCursor(0,0);
lcd.print(F(" SIMULANDO... "));
}
void pantalla_rpm(){
lcd.setCursor(0,1);
lcd.print(F(" RPM ="));
lcd.setCursor(9,1);
lcd.print(rpm);
}
void pantalla_desactiva(){
lcd.setCursor(0,0);
lcd.print(F(" PARA SIMULAR "));
lcd.setCursor(0,1);
lcd.print(F(" PULSE ENTER "));
}
///////////////////////////////////////////////////////////////// volkswagen
void pantalla_jetta(){
lcd.setCursor(0,0);
lcd.print(F("'''''MODELO'''''"));
lcd.setCursor(0,1);
lcd.print(F(" JETTA ->"));
}
void pantalla_amarok(){
lcd.setCursor(0,0);
lcd.print(F("'''''MODELO'''''"));
lcd.setCursor(0,1);
lcd.print(F("<- AMAROK ->"));
}
void pantalla_beeatle(){
lcd.setCursor(0,0);
lcd.print(F("'''''MODELO'''''"));
lcd.setCursor(0,1);
lcd.print(F("<- BEETLE ->"));
112
}
void pantalla_golf(){
lcd.setCursor(0,0);
lcd.print(F("'''''MODELO'''''"));
lcd.setCursor(0,1);
lcd.print(F("<- GOLF ->"));
}
void pantalla_passat(){
lcd.setCursor(0,0);
lcd.print(F("'''''MODELO'''''"));
lcd.setCursor(0,1);
lcd.print(F("<- PASSAT "));
}
///////////////////////////////////////////////////ford
void pantalla_triton(){
lcd.setCursor(0,0);
lcd.print(F("'''''MODELO'''''"));
lcd.setCursor(0,1);
lcd.print(F(" TRITON ->"));
}
void pantalla_generico(){
lcd.setCursor(0,0);
lcd.print(F("'''''MODELO'''''"));
lcd.setCursor(0,1);
lcd.print(F("<- EEC-V 104 ->"));
}
void pantalla_escort(){
lcd.setCursor(0,0);
lcd.print(F("'''''MODELO'''''"));
lcd.setCursor(0,1);
lcd.print(F("<- ESCORT ->"));
}
void pantalla_focus(){
lcd.setCursor(0,0);
lcd.print(F("'''''MODELO'''''"));
lcd.setCursor(0,1);
lcd.print(F("<- FOCUS ->"));
}
void pantalla_fusion(){
lcd.setCursor(0,0);
lcd.print(F("'''''MODELO'''''"));
lcd.setCursor(0,1);
lcd.print(F("<- FUSION ->"));
}
void pantalla_scape(){
lcd.setCursor(0,0);
113
lcd.print(F("'''''MODELO'''''"));
lcd.setCursor(0,1);
lcd.print(F("<- SCAPE "));
}
//pantalla chrysler
void pantalla_pcm(){
lcd.setCursor(0,0);
lcd.print(F("'''''MODELO'''''"));
lcd.setCursor(0,1);
lcd.print(F(" SBEC-60 ->"));
}
void pantalla_sbec_negro(){
lcd.setCursor(0,0);
lcd.print(F("'''''MODELO'''''"));
lcd.setCursor(0,1);
lcd.print(F("<- SBEC-80 ->"));
}
void pantalla_jtec(){
lcd.setCursor(0,0);
lcd.print(F("'''''MODELO'''''"));
lcd.setCursor(0,1);
lcd.print(F("<- JTEC ->"));
}
void pantalla_ngc(){
lcd.setCursor(0,0);
lcd.print(F("'''''MODELO'''''"));
lcd.setCursor(0,1);
lcd.print(F("<- NGC "));
}
///////////////////////////////////////////////////////MOTORES CHRYSLER
void pantalla_case_2_0(){
lcd.setCursor(0,0);
lcd.print(F("''''''MOTOR'''''"));
lcd.setCursor(0,1);
lcd.print(F(" 2.0L ->"));
}
void pantalla_case_2_4(){
lcd.setCursor(0,0);
lcd.print(F("''''''MOTOR'''''"));
lcd.setCursor(0,1);
lcd.print(F("<- 2.4L ->"));
}
void pantalla_case_2_5(){
lcd.setCursor(0,0);
lcd.print(F("''''''MOTOR'''''"));
lcd.setCursor(0,1);
lcd.print(F("<- 2.5L ->"));
114
}
void pantalla_case_3_0(){
lcd.setCursor(0,0);
lcd.print(F("''''''MOTOR'''''"));
lcd.setCursor(0,1);
lcd.print(F("<- 3.0L ->"));
}
void pantalla_case_3_2(){
lcd.setCursor(0,0);
lcd.print(F("''''''MOTOR'''''"));
lcd.setCursor(0,1);
lcd.print(F("<- 3.2L ->"));
}
void pantalla_case_3_3(){
lcd.setCursor(0,0);
lcd.print(F("''''''MOTOR'''''"));
lcd.setCursor(0,1);
lcd.print(F("<- 3.3L ->"));
}
void pantalla_case_3_5(){
lcd.setCursor(0,0);
lcd.print(F("''''''MOTOR'''''"));
lcd.setCursor(0,1);
lcd.print(F("<- 3.5L ->"));
}
void pantalla_case_3_8(){
lcd.setCursor(0,0);
lcd.print(F("''''''MOTOR'''''"));
lcd.setCursor(0,1);
lcd.print(F("<- 3.8L ->"));
}
void pantalla_case_3_9(){
lcd.setCursor(0,0);
lcd.print(F("''''''MOTOR'''''"));
lcd.setCursor(0,1);
lcd.print(F("<- 3.9L ->"));
}
void pantalla_case_4_0(){
lcd.setCursor(0,0);
lcd.print(F("''''''MOTOR'''''"));
lcd.setCursor(0,1);
lcd.print(F("<- 4.0L ->"));
}
void pantalla_case_4_7(){
lcd.setCursor(0,0);
lcd.print(F("''''''MOTOR'''''"));
lcd.setCursor(0,1);
115
////////////////////////////////////////////////////////////////nissan
void pantalla_juke(){
lcd.setCursor(0,0);
lcd.print(F("'''''MODELO'''''"));
lcd.setCursor(0,1);
lcd.print(F(" JUKE ->"));
}
void pantalla_nissanv6(){
lcd.setCursor(0,0);
lcd.print(F("'''''MODELO'''''"));
lcd.setCursor(0,1);
lcd.print(F("<- TSURU ->"));
}
void pantalla_np300(){
lcd.setCursor(0,0);
lcd.print(F("'''''MODELO'''''"));
lcd.setCursor(0,1);
lcd.print(F("<- NP300 ->"));
}
116
void pantalla_sentra(){
lcd.setCursor(0,0);
lcd.print(F("'''''MODELO'''''"));
lcd.setCursor(0,1);
lcd.print(F("<- SENTRA "));
}
//////////////////////////////////////////////////////////////////toyota
void pantalla_Hilux(){
lcd.setCursor(0,0);
lcd.print(F("'''''MODELO'''''"));
lcd.setCursor(0,1);
lcd.print(F(" HILUX ->"));
}
void pantalla_1nz(){
lcd.setCursor(0,0);
lcd.print(F("'''''MODELO'''''"));
lcd.setCursor(0,1);
lcd.print(F("<-MOTOR 1NZ_FE->"));
}
void pantalla_1zz(){
lcd.setCursor(0,0);
lcd.print(F("'''''MODELO'''''"));
lcd.setCursor(0,1);
lcd.print(F("<-MOTOR 1ZZ_FE->"));
}
void pantalla_2az(){
lcd.setCursor(0,0);
lcd.print(F("'''''MODELO'''''"));
lcd.setCursor(0,1);
lcd.print(F("<-MOTOR 2AZ_FE->"));
}
void pantalla_2tr(){
lcd.setCursor(0,0);
lcd.print(F("'''''MODELO'''''"));
lcd.setCursor(0,1);
lcd.print(F("<-MOTOR 2TR_FE->"));
}
void pantalla_2gr(){
lcd.setCursor(0,0);
lcd.print(F("'''''MODELO'''''"));
lcd.setCursor(0,1);
lcd.print(F("<-MOTOR 2GR_FE->"));
}
void pantalla_1gr(){
lcd.setCursor(0,0);
lcd.print(F("'''''MODELO'''''"));
lcd.setCursor(0,1);
117
lcd.print(F("<-MOTOR 1GR_FE->"));
}
void pantalla_Tacoma(){
lcd.setCursor(0,0);
lcd.print(F("'''''MODELO'''''"));
lcd.setCursor(0,1);
lcd.print(F("<- TACOMA ->"));
}
void pantalla_Yaris(){
lcd.setCursor(0,0);
lcd.print(F("'''''MODELO'''''"));
lcd.setCursor(0,1);
lcd.print(F("<- YARIS ->"));
}
/////////////////////////////////////////////////////////////diesel
void pantalla_great_wall(){
lcd.setCursor(0,0);
lcd.print(F("'''''MODELO'''''"));
lcd.setCursor(0,1);
lcd.print(F(" GREAT WALL "));
}
/////////////////////////////////////////////////////////////////mazda
void pantalla_mazda6(){
lcd.setCursor(0,0);
lcd.print(F("'''''MODELO'''''"));
lcd.setCursor(0,1);
lcd.print(F(" MAZDA 6 >"));
}
void pantalla_mazdacx7(){
lcd.setCursor(0,0);
lcd.print(F("'''''MODELO'''''"));
lcd.setCursor(0,1);
lcd.print(F("< MAZDA CX-7 >"));
}
void pantalla_mazda626(){
lcd.setCursor(0,0);
lcd.print(F("'''''MODELO'''''"));
lcd.setCursor(0,1);
lcd.print(F("< MAZDA 626 "));
}
////////////////////////////////////////////////BMW
void pantalla_M57D30(){
lcd.setCursor(0,0);
lcd.print(F("'''''MODELO'''''"));
lcd.setCursor(0,1);
lcd.print(F(" M57D30 ->"));
118
}
void pantalla_N57D30(){
lcd.setCursor(0,0);
lcd.print(F("'''''MODELO'''''"));
lcd.setCursor(0,1);
lcd.print(F("<- N57D30 ->"));
}
void pantalla_B46A20(){
lcd.setCursor(0,0);
lcd.print(F("'''''MODELO'''''"));
lcd.setCursor(0,1);
lcd.print(F("<- B46A20 ->"));
}
void pantalla_B47D20(){
lcd.setCursor(0,0);
lcd.print(F("'''''MODELO'''''"));
lcd.setCursor(0,1);
lcd.print(F("<- B47D20 "));
}
void pantalla_B58B30(){
lcd.setCursor(0,0);
lcd.print(F("'''''MODELO'''''"));
lcd.setCursor(0,1);
lcd.print(F("<- B58B30 ->"));
}
void pantalla_M50B25(){
lcd.setCursor(0,0);
lcd.print(F("'''''MODELO'''''"));
lcd.setCursor(0,1);
lcd.print(F("<- M50B25 ->"));
}
void pantalla_M54B25(){
lcd.setCursor(0,0);
lcd.print(F("'''''MODELO'''''"));
lcd.setCursor(0,1);
lcd.print(F("<- M54B25 "));
}
//////////////////////////////////////////////////citroen
void pantalla_xsara(){
lcd.setCursor(0,0);
lcd.print(F("'''''MODELO'''''"));
lcd.setCursor(0,1);
lcd.print(F(" XSARA ->"));
}
void pantalla_c4(){
lcd.setCursor(0,0);
lcd.print(F("'''''MODELO'''''"));
119
lcd.setCursor(0,1);
lcd.print(F("<- C4 ->"));
}
void pantalla_c5(){
lcd.setCursor(0,0);
lcd.print(F("'''''MODELO'''''"));
lcd.setCursor(0,1);
lcd.print(F("<- C5 ->"));
}
void pantalla_ds5(){
lcd.setCursor(0,0);
lcd.print(F("'''''MODELO'''''"));
lcd.setCursor(0,1);
lcd.print(F("<- DS5 ->"));
}
void pantalla_berlingo(){
lcd.setCursor(0,0);
lcd.print(F("'''''MODELO'''''"));
lcd.setCursor(0,1);
lcd.print(F("<- BERLINGO ->"));
}
void pantalla_jumpy(){
lcd.setCursor(0,0);
lcd.print(F("'''''MODELO'''''"));
lcd.setCursor(0,1);
lcd.print(F("<- JUMPY "));
}
///////////////////////////////////////////////////////////////////seat
void pantalla_ateca(){
lcd.setCursor(0,0);
lcd.print(F("'''''MODELO'''''"));
lcd.setCursor(0,1);
lcd.print(F(" ATECA ->"));
}
void pantalla_ibiza(){
lcd.setCursor(0,0);
lcd.print(F("'''''MODELO'''''"));
lcd.setCursor(0,1);
lcd.print(F("<- IBIZA "));
}
//////////////////////////////////////////////////////////////////renault
void pantalla_master(){
lcd.setCursor(0,0);
lcd.print(F("'''''MODELO'''''"));
lcd.setCursor(0,1);
lcd.print(F(" MASTER ->"));
}
120
void pantalla_clio(){
lcd.setCursor(0,0);
lcd.print(F("'''''MODELO'''''"));
lcd.setCursor(0,1);
lcd.print(F("<- CLIO ->"));
}
void pantalla_duster(){
lcd.setCursor(0,0);
lcd.print(F("'''''MODELO'''''"));
lcd.setCursor(0,1);
lcd.print(F("<- DUSTER ->"));
}
void pantalla_scenic(){
lcd.setCursor(0,0);
lcd.print(F("'''''MODELO'''''"));
lcd.setCursor(0,1);
lcd.print(F("<- SCENIC ->"));
}
void pantalla_sandero(){
lcd.setCursor(0,0);
lcd.print(F("'''''MODELO'''''"));
lcd.setCursor(0,1);
lcd.print(F("<- SANDERO ->"));
}
void pantalla_laguna(){
lcd.setCursor(0,0);
lcd.print(F("'''''MODELO'''''"));
lcd.setCursor(0,1);
lcd.print(F("<- LAGUNA ->"));
}
void pantalla_megane(){
lcd.setCursor(0,0);
lcd.print(F("'''''MODELO'''''"));
lcd.setCursor(0,1);
lcd.print(F("<- MEGANE "));
}
///////////////////////////////////////////////////////peugeot
void pantalla_207(){
lcd.setCursor(0,0);
lcd.print(F("'''''MODELO'''''"));
lcd.setCursor(0,1);
lcd.print(F(" 207 ->"));
}
void pantalla_407(){
lcd.setCursor(0,0);
lcd.print(F("'''''MODELO'''''"));
lcd.setCursor(0,1);
121
lcd.print(F("'''''MODELO'''''"));
lcd.setCursor(0,1);
lcd.print(F("<- Q7 3.0L "));
}