Control de avance al encendido

Control de avance al encendido Diseño de microcontroladores Proyecto final Profesor: Alumno: Ing. José Juarez Kikot Pablo 1 Informe proyecto en

8 downloads 158 Views 766KB Size

Recommend Stories


ENCENDIDO TRANSISTORIZADO
ENCENDIDO TRANSISTORIZADO Para incorporar la electrónica en el circuito de encendido a fin de superar las limitaciones impuestas por el ruptor en los

"BUJIAS DE ENCENDIDO"
Bujias De Encendido - Manual de Eduardo Eraso 1 of 12 https://sites.google.com/site/manualdeduardo/Home/bujias-d... "BUJIAS DE ENCENDIDO" Por Edua

Encendido y apagado de UNIX
Linux. Logoff. Shutdown

Story Transcript

Control de avance al encendido

Diseño de microcontroladores

Proyecto final

Profesor: Alumno:

Ing. José Juarez 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:

Generador pulsos

Bobina

Interfase I/O Interfase I/O

Modo selector Rutina de 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 rep1 rep2

MOVLW MOVWF MOVLW MOVWF DECFSZ GOTO DECFSZ GOTO

N cont1 M cont2 cont2,1 rep2 cont1,1 rep1

;(1) Carga dato N ;(1) inicializa contador1 ciclo externo ;(1) Carga dato M ;(1) inicializa contador2 ciclo interno ;(1,2)Decrementa contador2 y escapa si cero ;(2) si no es cero, repite ciclo interno ;(1,2)Decrementa contador1 y escapa si cero ;(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-motorgasolina/ Sobre como realizar un proyecto en un pic:

Autores:

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

36

Get in touch

Social

© Copyright 2013 - 2024 MYDOKUMENT.COM - All rights reserved.