Está en la página 1de 36

Control de avance al

encendido

Diseño de microcontroladores

Proyecto final

Profesor: Ing. José Juarez


Alumno: Kikot Pablo

1
Informe proyecto encendido electrónico

INDICE _

Introducción 3

Funcionamiento básico de un motor 4

Encendido tradicional 4

Desarrollo proyecto 6

Diagrama en bloques 9

Descripción y funcionamiento (hardware) 11

Simulación y conclusión 14

Apéndice 1(cálculos realizados) 17

Apéndice 2 (Programación del PIC) 25

Apéndice 3 (datos importantes del microcontrolador utilizado) 31

2
Informe proyecto encendido electrónico

Introducción:

El propósito de este proyecto es controlar un sistema de encendido (avance


o retardo en la chispa) de un motor de combustión interna de 4 cilindros
para su óptimo funcionamiento independientemente del combustible
utilizado (GNC o NAFTA). Este avance o retardo será dependiente de las
rpm (revoluciones por minuto) del motor. Además este encendido contara
con un corte eléctrico en el caso de que el motor este funcionando a un
régimen muy alto de revoluciones, lo cual es muy peligroso para la vida
útil del mismo. Para lograr los objetivos se usara un PIC16F877A, que será
quien realice los cálculos y comandará una etapa de potencia que a la ves
manejara el sistema de alta tensión del automóvil.

3
Informe proyecto encendido electrónico

Funcionamiento de un motor:

En la siguiente figura se observa cada uno de los 4 tiempos de


funcionamiento de un motor.

Como se observa la chispa que produce la explosión se da en el 3er tiempo


Y es muy importante que se de en el momento justo, de esta forma
aprovechando al máximo las propiedades explosivas del combustible.
El encargado de que esta chispa se produzca en el momento preciso es el
sistema de encendido.

Sistema de encendido (tradicional):

Básicamente el circuito de encendido utilizado en los motores de gasolina,


es el encargado de hacer saltar una chispa eléctrica en el interior de los
cilindros, para provocar la combustión de la mezcla aire-gasolina en el
momento oportuno manejado por el ruptor. La encargada de generar una
alta tensión para provocar la chispa eléctrica es "la bobina". La bobina es
un transformador que convierte la tensión de batería 12 V. en una alta
tensión del orden de 12.000V a 15.000V. Una vez generada esta alta
tensión necesitamos un elemento que la distribuya a cada uno de los
cilindros en el momento oportuno, teniendo en cuenta que los motores poli
cilíndricos trabajan en un ciclo de funcionamiento con un orden de
explosiones determinado para cada cilindro (ejemplo: motor de 4 cilindros
orden de encendido: 1-3-4-2). El elemento que se encarga de distribuir la
alta tensión es el "distribuidor o delco". La alta tensión para provocar la
chispa eléctrica en el interior de cada uno de los cilindros necesita de un
elemento que es "la bujía", hay tantas bujías como numero de cilindros
tiene el motor

4
Informe proyecto encendido electrónico

Encendido tradicional

El problema de usar distintos tipos de combustible:

En teoría la chispa de encendido en un motor debe saltar cuando el cilindro


llega al p.m.s. (punto muerto superior) en el final de la carrera de
compresión, pero esto no pasa en la realidad, ya que, desde que salta la
chispa hasta que se produce la combustión de la mezcla pasa un tiempo,
este tiempo que pasa al producirse la combustión varia en cada tipo de
combustible por ejemplo el GNC tiene un poder de explosión mucho menor
que la nafta, lo que llevara mayor tiempo para que se produzca dicha
combustión. Si esta pérdida de tiempo no la corregimos el motor bajara sus
prestaciones (perdida de potencia). Ahí es donde entra en juego la
corrección de avance o atraso del encendido.
Si se esa usando GNC en un motor la chispa de la bujía tendría que
producirse un momento antes (avance) para compensar el tiempo que le
lleva la combustión.

5
Informe proyecto encendido electrónico

Desarrollo del proyecto:

Como ya se menciono anteriormente, al utilizar un combustible con poder


explosivo distinto al tradicional, hay que corregir la puesta a punto del
motor, esto se logra atrasando o avanzando el sistema de encendido
(distribuidor).
La siguiente imagen es de un distribuidor convencional.

Un avance o atraso de un distribuidor físicamente significa girarlo en


sentido horario o anti-horario, de esta forma el rotor ara contacto con la
bujía un momento antes o después del pms.
A continuación representaremos un avance físico de un distribuidor.

6
Informe proyecto encendido electrónico

Este proyecto simula un atraso físico del distribuidor, mientras el mismo se


encuentra funcionando con nafta, mediante una entrada del
microcontrolador se dará aviso para que se implemente el retardo.
Dentro del distribuidor se encuentra el platino (es una llave accionada por
medio de una leva) a través del mismo se medirán las RPM’s del motor,
por medio de un capturador (que produce una interrupción en el
microcontrolador).

12V bateria

R1
1k
PLATINO
Entrada UC

R2
1k

En el momento que se recibe un impulso el controlador calculara el retardo


necesario para generar la chispa en función de las RPM del motor este
retardo deberá ser menor en un motor funcionando con GNC, ya que este
combustible tardara mas en hacer dicha combustión.
Además contara con un limitador de rpm para seguridad del motor.

7
Informe proyecto encendido electrónico

En el siguiente esquema se observa en que parte del circuito estará


funcionando el controlador.

Entradas a utilizar:
*_ Capturador de pulsos (producirá una interrupción)
*_ Selector nafta/GNC
Salidas a utilizar:
*_ Pulsos para manejo de la bobina (comando para la etapa de potencia)
*_ Indicador de limite de RPM
*_Indicador modo nafta/GNC

8
Informe proyecto encendido electrónico

Diagrama en bloques:

Interfase Modo
Generador
pulsos I/O selector

Bobina Interfase Rutina de


I/O control

Indicador
modo
nafta/GNC

Indicador
limite rpm

Curva de retardo:

La siguiente curva de retardo se logro realizando cálculos que se pueden


observar en el apéndice 1. Equivale a un atraso de 20 grados (en teoría
estos veinte grados son la corrección lógica para funcionar en nafta) en el
distribuidor.

9
Informe proyecto encendido electrónico

Para un régimen de giro menor a las 500 rpm el retardo se mantiene en


8ms, de otra forma esta curva tendería al infinito, para regimenes mayores
a 6000 rpm el microcontrolador cesara el envío de pulsos a la etapa de
potencia de esta forma no se producirán explosiones y el motor disminuirá
su régimen de giro, protegiendo de esta forma al mismo.

10
Informe proyecto encendido electrónico

Descripción placas:

Principal:
El microcontrolador usado fue el PIC16F877A puesto que ya contaba con
uno en mí poder, de todas formas dado a la poca cantidad de entradas y
salidas utilizadas se podría usar el 16F84 (que es de los más simples de la
familia), con unas mínimas reformas en el programa ya que este no cuenta
con capturadores de entrada. El datasheet del 16F877A se encuentra en el
apéndice 3

A continuación una imagen a modo ilustrativo de lo que es la placa en la


que esta montado el PIC.

11
Informe proyecto encendido electrónico

Funcionamiento:

Selector NAFA/GNC: ante un nivel alto en esta entrada se indica que el


motor esta funcionando con GNC, por lo tanto no se implementa la rutina
de retardo, (es como darle mas avance al encendido), en nivel bajo el motor
funciona a NAFTA y el microcontrolador calcula el retardo a la salida.

Entrada pulsos platino: el platino es una llave que cuando abre tendré
tensión en la entrada, en el caso de que sierre pondrá esta entrada a masa,
cuando el motor se encuentra en funcionamiento tendré algo parecido a una
onda cuadrada con una frecuencia que varia con las RPM’s del motor.
Estos pulsos entran por RC2/CCP1 que es un capturador de entrada.

Salida etapa de potencia: salida de pulsos (con retardo o no) que manejara
la etapa de potencia, que a su vez disparara la bobina para tener la buscada
chispa en cada cilindro

12
Informe proyecto encendido electrónico

Etapa de potencia:

Esta etapa se usa básicamente para disparar la bobina del auto por la cual
circula una corriente de 3 amperes aproximadamente. Debido a la
imposibilidad del PIC de manejar esa corriente se hace con esta etapa de
potencia. El PIC dispara un transistor que a la ves dispara otro transistor
(arreglo darlington) preparado para manejar mas potencia.

Placa etapa de potencia

13
Informe proyecto encendido electrónico

Simulación:

Las siguientes imágenes son una simulación del funcionamiento del PIC.
En el canal A tenemos los pulsos provenientes del platino, con los que se
miden el régimen de giro del motor y además produce la interrupción para
mandar la chispa al cilindro.
En el canal C observamos la salida del micro controlador que comanda la
etapa de potencia.

Motor girando a 1200 RPM lo que equivale a 40 Hz (por los cálculos del
apéndice 1) se observa el retardo en la salida.

14
Informe proyecto encendido electrónico

Motor girando a 6000 RPM (200 Hz) se observa que el pic no envía mas
pulsos a la etapa de potencia (corte de seguridad).

15
Informe proyecto encendido electrónico

Conclusiones:

La decisión de realizar este proyecto, se tomo antes de comenzar a cursar la


materia diseño de microcontroladores, sin tener conocimiento de la forma
de trabajo y programación de un microcontrolador. Con todas las dudas que
surgían en ese momento parecía ser un proyecto difícil de realizar.
Una vez cursada la materia y comenzando a trabajar en el mismo, no
resulto tener la complejidad que en un primer momento suponía. La idea es
seguir desarrollando este proyecto controlando más variables y sumarle un
display entre otras cosas, ya que el problema de la puesta a punto de un
automóvil que funciona con GNC es real y muy evidente.
Por problemas con la etapa de potencia no se pudo hacer funcionar dentro
del automóvil (luego de quemar varios transistores probando), pero eso ya
es un problema de electrónica que lamentablemente me faltan
conocimientos para solucionarlo, de todas formas seguiré desarrollando le
mismo hasta lograr tenerlo funcionando.

16
Informe proyecto encendido electrónico

APENDICE 1 :

Para calcular la frecuencia en la que vamos a estar trabajando primero


tenemos que saber que un motor 4 tiempos de un cilindro hace una
explosión cada dos vueltas del cigüeñal, por lo tanto si pensamos en un
motor de 4 cilindros tendremos 2 chispas por vuelta del motor.

F=(2xRPM)/60s
Nos da el siguiente grafico:

Grafico 1

El siguiente paso es calcular que retardo significa un movimiento de 20


grados del distribuidor (que es una pieza que gira por lo tanto estamos
hablando de velocidad angular).
En el siguiente grafico observamos que estamos hablando de una velocidad
angular.

17
Informe proyecto encendido electrónico

Primer calculamos el retardo en funcion de las RPM:

RPM-----------60s
20/360---------xs(retardo)

Retardo=3.333/RPM
Si lo graficamos nos da la siguiente curva:

Grafico2

Como vamos a trabajar con frecuencia calcularemos el retardo en función


de la frecuencia:
Retardo=3.333/RPM RPM=(f*60)/2

18
Informe proyecto encendido electrónico

Retardo=(3.33*2)/(f*60)
Obtenemos otra curva:

Grafico 3

Ahora procederemos a calcular con el micro frecuencia de la señal que


proviene del distribuidor para luego poder calcular el retardo.
Es muy importante saber con que cristal trabajara el micro controlador (en
este proyecto se usara un cristal de 20Mhz) también es importante saber
que el PIC dispone de un preescalador para poder manejar el tiempo de
incremento del timer. Con un preescalado de 1 el timer se incrementara
cada Fosc/4, en nuestro caso el preescalador se usara en 1/8 por lo tanto el
timer se incrementara cada Fosc/(4*8). Luego de hacer estos cálculos
pasaremos a hablar de retardo en función del nuecero de cuentas que
realizo el timer.

Fcristal/4*8=frecuencia de incrementacion de timer


(la inversa de este resultado nos dará cada cuanto tiempo se incrementa)

20exp6/(4*8)=625khz

1/625 khz=1.6 us
Si sabemos que P(periodo)=1/f, si dividimos el P de la señal entrante por el
P del timer obtendremos el numero de cuentas en función de la frecuencia
de entrada.
Pplat/Ptim=(1/f)/1,6 us=Nª cuentas timer

19
Informe proyecto encendido electrónico

Nos da el siguiente grafico:

Grafico 4

Ahora buscaremos el grafico de retardo en función del número de cuentas.

Retardo=(3.33*2)/(f*60)=0.1111/f

Numero de cuentas=1/(1.6us*f)

Ret=0.1111*1.6us*numero de cuentas
Ret=0.177776us * numero de cuentas

20
Informe proyecto encendido electrónico

Con lo que finalmente llegamos a un resultado lineal:


Grafico 5

Rutina de retardo en un micro:


La siguiente es una rutina de dos ciclos anidados para generar un retardo

pau MOVLW N ;(1) Carga dato N


MOVWF cont1 ;(1) inicializa contador1 ciclo externo
rep1 MOVLW M ;(1) Carga dato M
MOVWF cont2 ;(1) inicializa contador2 ciclo interno
rep2 DECFSZ cont2,1 ;(1,2)Decrementa contador2 y escapa si cero
GOTO rep2 ;(2) si no es cero, repite ciclo interno
DECFSZ cont1,1 ;(1,2)Decrementa contador1 y escapa si cero
GOTO rep1 ;(2) si no es cero repite ciclo externo

La duración de esa rutina será de:

T=[N*(3*M+4)+7]Tcy Tcy=(1/20e6)*4= 0.2us

21
Informe proyecto encendido electrónico

Para manejar solo una variable al generar el retardo se le da el valor 255 a


la variable M, de esta forma se esa discretizando el retardo generado por la
rutina, lo que producirá un error máximo de 0.15ms que se puede
despreciar. Así la rutina de retardo será:

T=(N*769+7)*Tcy
Ahora se puede relacionar el numero de cuentas con el numero N.

Ret=0.177776us * numero de cuentas


Ret =(N*769+7)*Tcy

N={[(0.177776us * numero de cuentas) / Tcy]-7} / 769

Lo que nos da el siguiente grafico:

Grafico 6

Dado que el microcontrolador dispone de muy pocas instrucciones y este


cálculo de retardo se hace entre chispa y chispa del motor hay que hacerlo
lo más rápido posible hay que hacer varias aproximaciones y algunos
términos que no tienen mucho peso sobre el resultado final podrán ser
obviados:

22
Informe proyecto encendido electrónico

Timer: el timer que se uso en este proyecto es de 16 bits. Una de las


aproximaciones será usar solo la parte alta del mismo.

Variable N: si desarrollamos el calculo de

N={[(0.177776us * numero de cuentas) / Tcy]-7} / 769

Llegamos a que , N= 1.156e-3 *numero de cuentas – 0.0091

Ya que N es un número entero el numero 0.0091 puede ser obviado, una


buena aproximación de la ecuación anterior podría ser:

N=numero de cuentas/800

Con todas estas aproximaciones llegamos a la curva final de retardo en


función de RPM:

Grafico 7

23
Informe proyecto encendido electrónico

El siguiente grafico muestra el error total del cálculo de retardo,


relacionando el grafico 2 con el grafico 7.

Error(RPM)=retardo(RPM)-retardodiscretizado(RPM)

Grafico 8

24
Informe proyecto encendido electrónico

APENDICE 2 :

Diagrama de flujo del programa:


El programa principal solo espera que ocurra una interrupción por captura
de entrada. El siguiente diagrama de flujos describe lo que ocurre en la
interrupción.

25
Informe proyecto encendido electrónico

26
Informe proyecto encendido electrónico

Programa para encendido electrónico:


En esta primer parte se declaran variables y configuran puertos y algunos
módulos.
RC2/CCP1: se configura como entrada
T1CON: configura el timer 1 como temporizador preescalado 1/8.
CCP1CON: se lo configura para captura en flanco descendente.
INTCON: se habilitan interrupciones de periféricos.

;***************************************************************************
;************Alumno: Pablo Kikot*********************************************
;************proyecto: Retardo elecronico encendido para motores con GNC************
;***************************************************************************
Include "p16f877.inc"
msnib EQU 0x20
lsnib EQU 0x21
STATUS_temp EQU 0x40
W_temp EQU 0x41
cont1 EQU 0x25
cont2 EQU 0x26
num1 EQU 0x27
num2 EQU 0x28
N EQU 0x29
cuenta EQU 0x30
limrpm EQU 0x31
M EQU 0x32
org 0x0000 ;inicia con un reset
GOTO Inc
org 0x0004 ;vector de interrupción
GOTO interr ;salta a la rutina de atención a la interrupción
inic BSF STATUS,RP0 ;Banco1
BCF TRISC,0 ;patita RC0 como salida
BCF TRISB,0 ;patita RB0 como salida
BSF TRISB,1 ;patita RB1 como entrada
BSF TRISC,2 ;patita RC2/CCP1 como entrada
BCF STATUS,RP0 ;Banco 0
MOVLW 0x31
MOVWF T1CON ;Configura Timer1 modo temporizador, preesc 1/8
CLRF TMR1H ;Inicializa en cero el timer 1
CLRF TMR1L ;
CLRF CCP1CON ;limpia latch de CCP1
BSF CCP1CON,CCP1M2 ;Habilita CCP1 para captura en transición bajada
BCF PIR1,CCP1IF ;limpia bandera de interrupción.
BSF STATUS,RP0 ;banco 1
BSF PIE1,CCP1IE ;Habilita interrupciones del CCP1
BCF STATUS,RP0 ;banco 0
BSF INTCON,PEIE ;habilita interrupciones de periféricos
BSF INTCON,GIE ;Habilita interrupciones globales

27
Informe proyecto encendido electrónico

El programa principal se encuentra esperando una interrupción, no realiza


ningún trabajo.
;** Programa principal:****************************************************************************

main
GOTO main ;repite

Rutina de interrupción:

En el momento que se produce una interrupción lo primero que hace es


chequear que sea una interrupción por el capturador CCP1 (mira el flag
CCP1F), si no es así sale de la interrupción.
Si la interrupción fue por captura, guarda en la variable cuenta la parte alta
del contador (ya que es de 16 bits), luego lo compara con un valor
predeterminado para ver si se pasó del límite de RPM.
En caso de pasarse de RPM sale de la interrupción (no hay pulso de salida
en el puerto C,0).
En el caso de no exceder las RPM, compara que no este por encima de las
5200 RPM ni por debajo de las 500RPM (si se encuentra en uno de estos
extremos el retardo será fijo de 0.6mseg y 7.9mseg respectivamente).
Una vez que chequeo que esta dentro del rango de 500-5200RPM, pasa a
la subrutina donde calcula el retardo para el número de cuentas capturado.
Por ultimo, una vez que se conoce el tiempo que hay que esperar, salta a
una subrutina donde espera el tiempo dado, para luego mandar el pulso de
salida por el puerto C ,0 y así volver de la interrupción y esperar a la nueva
captura.

28
Informe proyecto encendido electrónico

;***** rutina de atención a la interrupción**********************************************************************


interr
BCF STATUS,RP0 ;banco 0
;MOVWF W_temp ;salva contexto
SWAPF STATUS,W
CLRF STATUS
MOVWF STATUS_temp
BTFSS PIR1,CCP1IF ;miro bandera de captura de evento
GOTO ret ;si no es bandera de captura retorna
BCF PIR1,CCP1IF ;si es bandera de captura, la limpia
clrw
clrf cuenta
MOVF CCPR1H,W ;copia periodo capturado
MOVWF cuenta ;copio el periodo para luego calcular retardo
CLRF TMR1L ;limpia la cuenta del timer 1
CLRF TMR1H
movf cuenta,W ;***acá miro limite de RPM (6000rpm=200hz)*****
SUBLW 0x0C ;resto a p. alta del p..RPM=30/(TMR1H*1.6 useg)
BTFSC STATUS,0 ;me fijo si la cuenta anterior dio negativo
goto ret ;se paso de rpm no tiro chispa
BTFSC PORTB,1 ;****miro si esta en cero entrada RB1********
GOTO GNC ;si es uno salto a GNC (no uso retardo)
movlw 0xff ;en este programa num1 siempre vale ff
movwf num1
movlw 0x0E ;****miro si esta en el limite superior de retardo****
SUBWF cuenta,0 ;le resto x a la parte alta del periodo capturado
BTFSC STATUS,0 ;me fijo si la cuenta anterior dio negativo escapa si =0
goto aaa ;si da negativono estoy en el limite
movlw 0x03 ;si da positivo ret=0.6mseg
MOVWF num2
MOVWF cont2
goto na
aaa movlw 0x95 ; **miro si esta en el limite inferior de retardo*******
SUBWF cuenta,0 ;le resto x a la parte alta del periodo capturado
BTFSS STATUS,0 ;miro si dio negativo escapa si=1
goto no ;si da positivo calc ret
movlw 0x33 ;negativo...re máximo=7.9mseg
MOVWF num2
MOVWF cont2
GOTO na
no CALL retardo ;****subrutina donde calculo retardo************
na CALL pausa ;****implemento retardo calculado*************
GNC BCF PORTC,0 ;salida= CHISPA
CALL pau ;duración de la chispa(1.5 mseg)
BSF PORTC,0 ;corto salida
ret BCF STATUS,RP0 ;Banco 0
SWAPF STATUS_temp,W ;restablece contexto
MOVWF STATUS
SWAPF W_temp,F
SWAPF W_temp,W
RETFIE
;************************************************************
;****** Subrutina de pausa de aprox. 30 µseg (con Fosc=20 MHZ)******
;************************************************************
pausa
MOVF num2,W ;Cargo en cont2 el numero de ciclos
MOVWF cont2 ;secundarios guardados en num2
rep1 MOVF num1,W ;Cargo en cont1 el numero de ciclos
MOVWF cont1 ;primarios guardados en num1
rep2 DECFSZ cont1,1 ;Decrementa contador 1 y escapa si cero
GOTO rep2 ;si no es cero, repite ciclo interno
DECFSZ cont2,1 ;Decrementa contador 2 y escapa si cero
GOTO rep1 ;si no es cero repite ciclo externo
RETURN ;regresa de esta subrutina

29
Informe proyecto encendido electrónico

;************************************************************************************************
;********************** Subrutina de pausa de aprox. 150 µseg (con Fosc=20 MHZ)*************************
;************************************************************************************************
pau
MOVLW 0X0A
MOVWF M
ciclo1 MOVLW 0xFF ;Cargo en cont2 el numero de ciclos
MOVWF N ;secundarios guardados en num2
ciclo DECFSZ N,1 ;Decrementa contador2 y escapa si cero
GOTO ciclo ;si no es cero, repite ciclo interno
DECFSZ M,1
GOTO ciclo1
RETURN ;regresa de esta subrutina
;************************************************************************************************
;*************En esta rutina calculo el retardo de acuerdo a las rpm que esta giirando el motor*******************
;************************************************************************************************
retardo
clrw
CLRF num2
bcf STATUS,0
INCF num2,1
movf cuenta,W
BTFSS STATUS,0 ;me fijo si la cuenta anterior dio negativo
goto cic
movlw 0x03
neg SUBWF cuenta,1 ;le resto 03 a cuenta escapa si es cero
BTFSS STATUS,0 ;me fijo si la cuenta anterior dio negativo
goto cic
INCF num2,1
goto neg
cic movlw 0x03
bcf STATUS,0
SUBWF cuenta,1 ;le resto 03 a cuenta escapa si es cero
BTFSS STATUS,0 ;me fijo si la cuenta anterior dio negativo
GOTO listo
INCF num2,1
GOTO cic
listo BSF STATUS,RP0
clrf STATUS
RETURN
End

30
Informe proyecto encendido electrónico

APENDICE 3 :

Algunos datos importantes del PIC16F877:

31
Informe proyecto encendido electrónico

32
Informe proyecto encendido electrónico

33
Informe proyecto encendido electrónico

34
Informe proyecto encendido electrónico

35
Informe proyecto encendido electrónico

Toda la información referida al microcontrolador PIC16F877A, y su


respectivo datasheet fue obtenido de la página del fabricante:

http://www.microchip.com

Los gráficos que describen el funcionamiento de un motor fueron obtenidos


de la página:

http://blogingenieria.com/ingenieria-mecanica/interior-cilindro-motor-
gasolina/

Sobre como realizar un proyecto en un pic:

Autores:
• Enrique Palacios.
• Fernando Ramiro.
• Lucas López.

36

También podría gustarte