Está en la página 1de 36

1

Control de avance al Control de avance al Control de avance al Control de avance al


encendido encendido encendido encendido





Diseo de microcontroladores


Proyecto final





Profesor: Ing. Jos Juarez
Alumno: Kikot Pablo
2


INDICE _


Introduccin 3


Funcionamiento bsico de un motor 4



Encendido tradicional 4



Desarrollo proyecto 6



Diagrama en bloques 9



Descripcin y funcionamiento (hardware) 11


Simulacin y conclusin 14


Apndice 1(clculos realizados) 17



Apndice 2 (Programacin del PIC) 25




Apndice 3 (datos importantes del microcontrolador utilizado) 31

Informe proyecto encendido electrnico


3



Introduccin:

El propsito de este proyecto es controlar un sistema de encendido (avance
o retardo en la chispa) de un motor de combustin 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. Adems este encendido contara
con un corte elctrico en el caso de que el motor este funcionando a un
rgimen 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 clculos y comandar una etapa de potencia que a la ves
manejara el sistema de alta tensin del automvil.

























Informe proyecto encendido electrnico


4

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 explosin se da en el 3er tiempo
Y es muy importante que se de en el momento justo, de esta forma
aprovechando al mximo 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):

Bsicamente el circuito de encendido utilizado en los motores de gasolina,
es el encargado de hacer saltar una chispa elctrica en el interior de los
cilindros, para provocar la combustin de la mezcla aire-gasolina en el
momento oportuno manejado por el ruptor. La encargada de generar una
alta tensin para provocar la chispa elctrica es "la bobina". La bobina es
un transformador que convierte la tensin de batera 12 V. en una alta
tensin del orden de 12.000V a 15.000V. Una vez generada esta alta
tensin necesitamos un elemento que la distribuya a cada uno de los
cilindros en el momento oportuno, teniendo en cuenta que los motores poli
cilndricos 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 tensin es el "distribuidor o delco". La alta tensin para provocar la
chispa elctrica en el interior de cada uno de los cilindros necesita de un
elemento que es "la buja", hay tantas bujas como numero de cilindros
tiene el motor

Informe proyecto encendido electrnico


5




Encendido tradicional



El problema de usar distintos tipos de combustible:

En teora 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
compresin, pero esto no pasa en la realidad, ya que, desde que salta la
chispa hasta que se produce la combustin de la mezcla pasa un tiempo,
este tiempo que pasa al producirse la combustin varia en cada tipo de
combustible por ejemplo el GNC tiene un poder de explosin mucho menor
que la nafta, lo que llevara mayor tiempo para que se produzca dicha
combustin. Si esta prdida de tiempo no la corregimos el motor bajara sus
prestaciones (perdida de potencia). Ah es donde entra en juego la
correccin de avance o atraso del encendido.
Si se esa usando GNC en un motor la chispa de la buja tendra que
producirse un momento antes (avance) para compensar el tiempo que le
lleva la combustin.






Informe proyecto encendido electrnico


6



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 fsicamente significa girarlo en
sentido horario o anti-horario, de esta forma el rotor ara contacto con la
buja un momento antes o despus del pms.
A continuacin representaremos un avance fsico de un distribuidor.





Informe proyecto encendido electrnico


7






Este proyecto simula un atraso fsico 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 travs del mismo se medirn las RPMs del motor,
por medio de un capturador (que produce una interrupcin en el
microcontrolador).

PLATINO
12V bateria
R1
1k
R2
1k
Entrada UC


En el momento que se recibe un impulso el controlador calculara el retardo
necesario para generar la chispa en funcin 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 combustin.
Adems contara con un limitador de rpm para seguridad del motor.


Informe proyecto encendido electrnico


8


En el siguiente esquema se observa en que parte del circuito estar
funcionando el controlador.





Entradas a utilizar:
*_ Capturador de pulsos (producir una interrupcin)
*_ 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


















Informe proyecto encendido electrnico


9



Diagrama en bloques:





Curva de retardo:

La siguiente curva de retardo se logro realizando clculos que se pueden
observar en el apndice 1. Equivale a un atraso de 20 grados (en teora
estos veinte grados son la correccin lgica para funcionar en nafta) en el
distribuidor.













Informe proyecto encendido electrnico


Rutina de
control
Interfase
I/O
Modo
selector
Generador
pulsos
Bobina
Indicador
limite rpm
Indicador
modo
nafta/GNC
Interfase
I/O
10












Para un rgimen de giro menor a las 500 rpm el retardo se mantiene en
8ms, de otra forma esta curva tendera al infinito, para regimenes mayores
a 6000 rpm el microcontrolador cesara el envo de pulsos a la etapa de
potencia de esta forma no se producirn explosiones y el motor disminuir
su rgimen de giro, protegiendo de esta forma al mismo.







Informe proyecto encendido electrnico


11




Descripcin 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 podra usar el 16F84 (que es de los ms simples de la
familia), con unas mnimas reformas en el programa ya que este no cuenta
con capturadores de entrada. El datasheet del 16F877A se encuentra en el
apndice 3





A continuacin una imagen a modo ilustrativo de lo que es la placa en la
que esta montado el PIC.










Informe proyecto encendido electrnico


12







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
tensin 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 RPMs 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

Informe proyecto encendido electrnico


13





Etapa de potencia:

Esta etapa se usa bsicamente 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
















Informe proyecto encendido electrnico


14


Simulacin:

Las siguientes imgenes son una simulacin del funcionamiento del PIC.
En el canal A tenemos los pulsos provenientes del platino, con los que se
miden el rgimen de giro del motor y adems produce la interrupcin 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 clculos del
apndice 1) se observa el retardo en la salida.










Informe proyecto encendido electrnico


15


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



















Informe proyecto encendido electrnico


16



Conclusiones:


La decisin de realizar este proyecto, se tomo antes de comenzar a cursar la
materia diseo de microcontroladores, sin tener conocimiento de la forma
de trabajo y programacin de un microcontrolador. Con todas las dudas que
surgan en ese momento pareca ser un proyecto difcil de realizar.
Una vez cursada la materia y comenzando a trabajar en el mismo, no
resulto tener la complejidad que en un primer momento supona. La idea es
seguir desarrollando este proyecto controlando ms variables y sumarle un
display entre otras cosas, ya que el problema de la puesta a punto de un
automvil que funciona con GNC es real y muy evidente.
Por problemas con la etapa de potencia no se pudo hacer funcionar dentro
del automvil (luego de quemar varios transistores probando), pero eso ya
es un problema de electrnica que lamentablemente me faltan
conocimientos para solucionarlo, de todas formas seguir desarrollando le
mismo hasta lograr tenerlo funcionando.























Informe proyecto encendido electrnico


17




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
explosin cada dos vueltas del cigeal, 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.









Informe proyecto encendido electrnico


18





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 funcin
de la frecuencia:
Retardo=3.333/RPM RPM=(f*60)/2

Informe proyecto encendido electrnico


19

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

Grafico 3


Ahora procederemos a calcular con el micro frecuencia de la seal 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) tambin 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 clculos
pasaremos a hablar de retardo en funcin 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 seal entrante por el
P del timer obtendremos el numero de cuentas en funcin de la frecuencia
de entrada.
Pplat/Ptim=(1/f)/1,6 us=N cuentas timer


Informe proyecto encendido electrnico


20

Nos da el siguiente grafico:




Grafico 4



Ahora buscaremos el grafico de retardo en funcin del nmero 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








Informe proyecto encendido electrnico


21

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





La duracin de esa rutina ser de:

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








Informe proyecto encendido electrnico


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
22


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 mximo 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
clculo de retardo se hace entre chispa y chispa del motor hay que hacerlo
lo ms rpido posible hay que hacer varias aproximaciones y algunos
trminos que no tienen mucho peso sobre el resultado final podrn ser
obviados:



Informe proyecto encendido electrnico


23



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 nmero entero el numero 0.0091 puede ser obviado, una
buena aproximacin de la ecuacin anterior podra ser:

N=numero de cuentas/800

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

Grafico 7









Informe proyecto encendido electrnico


24

El siguiente grafico muestra el error total del clculo de retardo,
relacionando el grafico 2 con el grafico 7.

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

Grafico 8

















Informe proyecto encendido electrnico


25


APENDICE 2 :





Diagrama de flujo del programa:
El programa principal solo espera que ocurra una interrupcin por captura
de entrada. El siguiente diagrama de flujos describe lo que ocurre en la
interrupcin.































Informe proyecto encendido electrnico


26






Informe proyecto encendido electrnico


27


Programa para encendido electrnico:
En esta primer parte se declaran variables y configuran puertos y algunos
mdulos.
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 perifricos.





;***************************************************************************
;************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 interrupcin
GOTO interr ;salta a la rutina de atencin a la interrupcin
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 transicin bajada
BCF PIR1,CCP1IF ;limpia bandera de interrupcin.
BSF STATUS,RP0 ;banco 1
BSF PIE1,CCP1IE ;Habilita interrupciones del CCP1
BCF STATUS,RP0 ;banco 0
BSF INTCON,PEIE ;habilita interrupciones de perifricos
BSF INTCON,GIE ;Habilita interrupciones globales










Informe proyecto encendido electrnico


28


El programa principal se encuentra esperando una interrupcin, no realiza
ningn trabajo.

;** Programa principal:****************************************************************************

main
GOTO main ;repite


Rutina de interrupcin:



En el momento que se produce una interrupcin lo primero que hace es
chequear que sea una interrupcin por el capturador CCP1 (mira el flag
CCP1F), si no es as sale de la interrupcin.
Si la interrupcin 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 lmite de RPM.
En caso de pasarse de RPM sale de la interrupcin (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 nmero 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 interrupcin y esperar a la nueva
captura.





















Informe proyecto encendido electrnico


29

;***** rutina de atencin a la interrupcin**********************************************************************
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 mximo=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 ;duracin 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









Informe proyecto encendido electrnico


30


;************************************************************************************************
;********************** 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































Informe proyecto encendido electrnico


31


APENDICE 3 :

Algunos datos importantes del PIC16F877:




Informe proyecto encendido electrnico


32








Informe proyecto encendido electrnico


33

















Informe proyecto encendido electrnico


34






Informe proyecto encendido electrnico


35



























Informe proyecto encendido electrnico


36




Toda la informacin referida al microcontrolador PIC16F877A, y su
respectivo datasheet fue obtenido de la pgina del fabricante:

http://www.microchip.com


Los grficos que describen el funcionamiento de un motor fueron obtenidos
de la pgina:

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

Sobre como realizar un proyecto en un pic:




Autores:
Enrique Palacios.
Fernando Ramiro.
Lucas Lpez.


Informe proyecto encendido electrnico

También podría gustarte