Gonzalo Cnepa Pgina 1 08/08/2008 Diseo de Microcontroladores Proyecto final
Comando de un ascensor de cuatro pisos
Alumno: Gonzalo Cnepa Profesor: J os J uarez
Universidad Nacional de Quilmes Ing. Automatizacin y Control Industrial
Gonzalo Cnepa Pgina 2 08/08/2008 INDICE 1. Introduccin 1.1 Propuesta inicial 1.2 Modificaciones y propuesta realizada 2. Diseo y armado del kit (Tarjeta entrenadora) del MC68HC11E1CFN2 2.1 Caractersticas del MC68HC11E1CFN2 2.2 Circuitos de la tarjeta 2.2.1 Circuito de alimentacin 2.2.2 Circuito de clock 2.2.3 Circuito del reset 2.2.4 Circuito de transmisin serie asincrnica 2.2.5 Circuito de interrupciones externas 2.2.5 Circuito de seleccin de modos de arranque 2.2.6 Conexin de V RL y V RH
2.2.7 Referencia para el conversor A/D 2.3 Circuito del motor paso a paso 2.4 Diseo y armado de las placas utilizadas por la planta 2.4.1 Conexin de leds 2.4.2 Conexin de pulsadores de entrada 3. Metodologa de resolucin 3.1 Diseo del programa ascensor para el HC11 3.2 Distribucin de puertos 3.3 Esquema de funcionamiento 4. Diagramas de flujo 5. Cdigo en lenguaje Assembler 6. Conclusin 7. Bibliografa
Universidad Nacional de Quilmes Ing. Automatizacin y Control Industrial
Gonzalo Cnepa Pgina 3 08/08/2008 1. Introduccin
1.1 Propuesta inicial:
I nicialmente se basaba en un motor paso a paso con una polea empotrada y comunicada con otra a travs de una correa la cual se fijaba el cubculo del ascensor y dos guas laterales impedan el desbordamiento del mismo.
Universidad Nacional de Quilmes Ing. Automatizacin y Control Industrial
Gonzalo Cnepa Pgina 4 08/08/2008 1.2 Modificaciones y propuesta realizada:
La propuesta inicial se cambi debido a la complicacin a la hora de conseguir sistemas poleas con correas dentadas de tamao compatibles con el proyecto; y la solucin encontrada fue utilizar el sistema del carro de una impresora Adems del cubculo del ascensor el proyecto cuenta con un display de 7 segmentos, 4 leds indicadores y 9 pulsadores (4 para llamada, 4 de ir a piso o internos y una parada de emergencia). Los leds indicadores reflejan que pulsador de llamada o de ir a piso fue activado y el display de 7 segmentos indica en que piso est el cubculo. Los pulsadores de llamada se diferencian de los de ir a piso en el caso de que haya mltiples llamadas (llamadas desde varios pisos a la vez). En este caso, el ascensor debe ir a buscar al pasajero del piso mayor y luego recoger a los dems pasajeros. Esto se debe a que lo ms probable es que todo aquel que llame al ascensor desee dirigirse a planta baja. En cambio los pulsadores de ir a piso (internos al cubculo del ascensor) solicitaran el programa ms inteligente para cada situacin particular El microcontrolador se comunicar con la planta a travs de cuatro fines de carrera que le indicarn en que piso est posicionado el cubculo.
Nota: Si bien el motor ideal para el sistema es un motor de corriente continua (DC motor), el proyecto est pensado para utilizar un motor paso a paso. Esto se debe a que por motivo personal de estudio decid aprender a controlar este tipo de motores. Los leds indicadores estn compartidos entre los pulsadores de llamada y los internos. Si bien esto no tiene sentido para el caso real, es muy ilustrativo para observar el correcto funcionamiento de la planta
Universidad Nacional de Quilmes Ing. Automatizacin y Control Industrial
Gonzalo Cnepa Pgina 5 08/08/2008 2. Diseo y armado del kit del MC68HC11E1CFN2
2.1 Caractersticas del MC68HC11E1CFN2
El microcontrolador MC68HC11E1CFN2 es de encapsulado PLCC (Grafico 2) y se diferencia de otro microcontrolador de la familia E1 de la siguiente forma:
Grafico 2
Las caractersticas de memoria del microcontrolador se detallan en la siguiente tabla:
Universidad Nacional de Quilmes Ing. Automatizacin y Control Industrial
Gonzalo Cnepa Pgina 6 08/08/2008 Finalmente, la distribucin de puertos de Entrada/Salida est dada en la siguiente tabla:
Para el funcionamiento del ascensor el PORTC debe setearse como salida y el PORTD como entrada.
Nota: El PORTD tiene la particularidad de que el bit 0 y el bit 1 estn compartidos con la transmisin de datos del puerto serie (necesario para cargar un programa) por lo que para su utilizacin como bit de entrada o salida debe colocarse un jumper en la creacin del kit. En el caso particular de este kit estos bits solo sern utilizados para el puerto serie
2.2 Circuitos de la tarjeta
2.2.1 Circuito de alimentacin
Donde a Vcc In se conecta una fuente estndar de 9V C1 = 0,33 F C2 = 0,01 F C3 = 0,1 F C2 = 1 F
Universidad Nacional de Quilmes Ing. Automatizacin y Control Industrial
Gonzalo Cnepa Pgina 7 08/08/2008 El MC7805 es un regulador de voltaje que entrega un voltaje de 5V a partir de 9V y permite una circulacin mxima de corriente de 500 mA. Si los valores de corriente son cercanos a este se aconseja incorporar un disipador
2.2.2 Circuito de clock
En donde C1 = C2 = 22 pF R = 10 MO Y el cristal es de 8MHz
2.2.3 Circuito del reset
2.2.4 Circuito de transmisin serie asincrnica
Los capacitores empleados son electrolticos de 22 F y 25 V
Universidad Nacional de Quilmes Ing. Automatizacin y Control Industrial
Gonzalo Cnepa Pgina 8 08/08/2008 2.2.5 Circuito de interrupciones externas
2.2.5 Circuito de seleccin de modos de arranque
El circuito se repite para MODB
2.2.6 Conexin de V RL y V RH
V RL est directamente conectado a GND
2.2.7 Referencia para el conversor A/D
Universidad Nacional de Quilmes Ing. Automatizacin y Control Industrial
Gonzalo Cnepa Pgina 9 08/08/2008 2.3 Circuito del motor paso a paso
Las 4 resistencias son de 4K7 En la entrada A corresponde al bit 0 del PORTB B corresponde al bit 1 del PORTB C corresponde al bit 2 del PORTB D corresponde al bit 3 del PORTB
El integrado ULN2803 es un arreglo de transistores darligston con Vcc ALIMENTACIN = 5V y Vcc MOTOR < 50V y una limitacin de corriente mxima de 500mA. Cumple la funcin de separar el circuito de potencia del motor sin la necesidad de la utilizacin de 4 transistores individuales
2.4.1 Conexin de leds
Los leds se conectan con una resistencia en serie que limita la circulacin de corriente a travs del led
Universidad Nacional de Quilmes Ing. Automatizacin y Control Industrial
Gonzalo Cnepa Pgina 10 08/08/2008
2.4.2 Conexin de pulsadores de entrada
La utilizacin de las resistencias de pull-down evita que el microcontrolador confunda el uno lgico con el cero lgico
Universidad Nacional de Quilmes Ing. Automatizacin y Control Industrial
Gonzalo Cnepa Pgina 11 08/08/2008
3. Metodologa de resolucin
3.1 Diseo del programa ascensor para el HC11
En primer lugar hay que tener en cuenta que un motor paso a paso se controla a travs de una secuencia. Esta secuencia puede ser muy bsica o muy compleja dependiendo de la exactitud buscada. Para el caso del ascensor la secuencia de subida ser A,B,C,D y la de bajada ser D,C,B,A (ver Circuito del motor paso a paso) El ascensor tiene una parada de emergencia, la cual se ejecutar a travs de la interrupcin IRQ
3.2 Distribucin de puertos ? El PORTA no ser utilizado puesto que es de 3 entradas y cuatro salidas fijas. ? En los 4 bits menos significativos del PORTB se controlar el motor paso a paso y en los 4 ms significativos se encendern los leds indicadores. El PORT es configurado enteramente como salida ? En los 7 bits ms significativos del PORTC se controlar el Display de 7 segmentos (el punto no se utiliza). ? Teniendo en cuenta las limitaciones del PORTD, los 4 bits tiles (bit 2, bit 3, bit 4 y bit 5) sern utilizados para los fines de carrera. El PORT es configurado enteramente como entrada ? En los 4 bits menos significativos del PORTE sern utilizados para los pulsadores internos y en los 4 ms significativos para los pulsadores de llamada.
3.3 Esquema de funcionamiento
La estructura del programa se basa una subrutina de inicializacin, la cual debe ejecutarse solo en el caso de que el cubculo no este posicionado sobre un fin de carrera al inicio del programa. Una vez inicializado, se ejecutar un programa principal en el cual se chequear el estado de los fines de carrera y se mostrar el N correspondiente en el display de 7 segmentos. Luego se verifica si se ha presionado un pulsador, y en ese caso se ejecutar la subrutina correspondiente que modificar una variable llamada motor. Luego, a partir del valor de la variable motor el microcontrolador decidir si se ejecutar una secuencia para subir o para bajar, mientras que en cada paso de dicha secuencia se comprobar si se ha llegado a destino.
Universidad Nacional de Quilmes Ing. Automatizacin y Control Industrial
Gonzalo Cnepa Pgina 12 08/08/2008 4. Diagramas de flujo
PORTD = 00? Procedimiento INICIALIZACION SI PORTD = 00000100 B ? DISPLAY : = N_CERO SI PORTD = 00001000 B ? DISPLAY : = N_UNO SI PORTD = 00010000 B ? DISPLAY : = N_DOS SI PORTD = 00100000 B ? DISPLAY : = N_TRES SI Subrutina CARGAR PULSADORES PULSADORES = 0 Subrutina ESCANEAR PULSADORES NO CONSTANTES MOTOR: BAJAR = 01 SUBIR = 02 QUIETO = 04 CONSTANTES DYSPLAY: N_CERO : =01111110 B
DDRC : = 11111111 DDRD : = 00000000 OPTION : = 00100000 habilitar interrupciones PUNTERO A PILA : = $01F8 PROGRAMA PRINCIPAL
Universidad Nacional de Quilmes Ing. Automatizacin y Control Industrial
Gonzalo Cnepa Pgina 13 08/08/2008 MOTOR = BAJAR? Rotar la secuencia hacia la izquierda (LSL) SI MOTOR = SUBIR? Rotar la secuencia hacia la derecha (LSR)
SI SECUENCIA = 00010000 B ? SECUENCIA : = 00000001 B SI La secuencia del Motor se controla en los 4 bits menos significativos. Si se desborda => se acomoda SECUENCIA = 00000000B? SECUENCIA : = 00001000 B SI MOTOR = QUIETO? PORTB : = 0 SI Desconecta el motor si no se est utilizando. Subrutina REFRESH LEDS MOTOR = QUIETO OR COND_ESPERA = 1?
COND_ESPERA : = 0 SI PORTD = 0 & PULSADORES ?0? Subrutina ESPERA SI
Universidad Nacional de Quilmes Ing. Automatizacin y Control Industrial
SUBRUTINA CARGAR_PULSADORES PULSADORES : = (PORTE) OR (PULSADORES) SUBRUTINA GUARDAR_PULSADORES PULSADORES : = (A) AND (PULSADORES) B : = QUIETO
Universidad Nacional de Quilmes Ing. Automatizacin y Control Industrial
Gonzalo Cnepa Pgina 15 08/08/2008
PROCEDIMIENTO ESPERA Subrutina RETARDO b = 20 ; b > 0 ; b : = b - 1 Subrutina REFRESH LEDS Subrutina CARGAR PULSADORES SUBRUTINA RETARDO y = 6FFF H ; y > 0 ; i : = i - 1 y : = 0100 H PROCEDIMIENTO INICIALIZACIN MOTOR : = BAJANDO PULSADORES : = 00001000 B
Universidad Nacional de Quilmes Ing. Automatizacin y Control Industrial
Gonzalo Cnepa Pgina 16 08/08/2008 PROCEDIMIENTO DEC_CONTADOR COND_ESPERA : = 01 CONTADOR : = CONTADOR - 1 CONTADOR = 0? PULSADORES : = 00001000 SI Rotar la A hacia la izquierda (LSLA) A : = PULSADORES Rotar la A hacia la izquierda (LSLA) Rotar la A hacia la izquierda (LSLA) Rotar la A hacia la izquierda (LSLA) A : = (PULSADORES) OR (A) A : = (A) AND (11110000 H ) PORTB : = (PORTB) OR (A) SUBRUTINA REFRESH LEDS
Universidad Nacional de Quilmes Ing. Automatizacin y Control Industrial
Gonzalo Cnepa Pgina 17 08/08/2008 SUBRUTINA ESCANEO PULSADORES PULSADORES = 10000000 B ? Procedimiento PISO_CERO_LLAMADA SI PULSADORES = 01000000 B ? Procedimiento PISO_UNO_LLAMADA SI PULSADORES = 00100000 B ? Procedimiento PISO_DOS_LLAMADA SI PULSADORES = 00010000 B ? Procedimiento PISO_TRES_LLAMADA SI PULSADORES = 00001000 B ? Procedimiento PISO_CERO SI PULSADORES = 00000100 B ? Procedimiento PISO_UNO SI
Universidad Nacional de Quilmes Ing. Automatizacin y Control Industrial
Gonzalo Cnepa Pgina 18 08/08/2008 PULSADORES = 00000010 B ? Procedimiento PISO_DOS SI PULSADORES = 00000001 B ? Procedimiento PISO_TRES SI PROCEDIMIENTO PISO_CERO_LLAMADA
PORTD = 00000100 B ? A : = 01111111 B
SI Subrutina GUARDAR_PULSADORES PORTD = (00001000 B
00010000 B
00100000 B )? B : = BAJANDO SI MOTOR : = B * SALTO INCONDICIONAL 1
Universidad Nacional de Quilmes Ing. Automatizacin y Control Industrial
Gonzalo Cnepa Pgina 19 08/08/2008 PORTD = 00000100 B ? B : = SUBIENDO SI PULSADORES = (00010000 B
00100000 B )? PROCEDIMIENTO PISO_UNO_LLAMADA
PORTD = 00001000 B ? SI MOTOR = SUBIENDO? A : = 10111111 B
PORTD = 00100000 B ? A : = 11111110B SI Subrutina GUARDAR_PULSADORES PORTD = (00000100 B
00001000 B
00010000 B )? B : = SUBIENDO SI
Universidad Nacional de Quilmes Ing. Automatizacin y Control Industrial
Gonzalo Cnepa Pgina 25 08/08/2008 INTERRUPCIN IRQ
Subrutina RETARDO A : = MOTOR MOTOR = QUIETO? MOTOR : = MOTOR_INTERRUMPIDO SI NO MOTOR_INTERRUMPIDO : = MOTOR MOTOR : = QUIETO
Universidad Nacional de Quilmes Ing. Automatizacin y Control Industrial
Gonzalo Cnepa Pgina 26 08/08/2008 6. Conclusin
El proyecto realizado cost mucho tiempo y trabajo, pero ver la planta terminada y funcionando es la recompensa al esfuerzo. Los conocimientos adquiridos son muy amplios, tanto en electrnica con la realizacin del kit como tambin a la hora de programar y crear un programa extenso en solo 512 bytes de memoria. Tambin fue muy gratificante por primera vez controlar un motor paso a paso, que si bien se lo control con la secuencia ms bsica debido al escaso torque del mismo, me enter de otros mtodos Si bien el proyecto es muy lgico y algortmico, result realmente complejo en el momento del diseo poder imaginar como realizar la memoria en caso de presionar ms de un pulsador a la vez En definitiva fue una gran experiencia y muy gratificante desde los momentos en que empez a funcionar.
Universidad Nacional de Quilmes Ing. Automatizacin y Control Industrial
Gonzalo Cnepa Pgina 27 08/08/2008 7. Bibliografa
? MICROCONTROLADOR 68HC11: Fundamentos, recursos y programacin. http://www.microbotica.es
? Ambiente de desarrollo para un HC11 por J uan Pablo Guzmn Peralta (Trabajo final de licenciatura)
? kit11 v61 - Kit de iniciacin al microcontrolador - Universidad de Zaragoza http://www.unizar.es/euitiz/micros.htm
? M68HC11E family Hoja de datos (datasheet) MOTOROLA
? MC68HC11E1CFN2 Hoja de datos (datasheet) MOTOROLA
? MAX232 , ULN2803, MC7805, MC34064 Hoja de datos (datasheet)