Elevado R

También podría gustarte

Está en la página 1de 27

Universidad Nacional de Quilmes Ing.

Automatizacin y Control Industrial




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

N_UNO : = 00001100
B

N_DOS : = 10110110
B

N_TRES : = 10011110
B

PORTC : = DISPLAY
VARIABLES

PULSADORES: byte $00
MOTOR: byte $00
SECUENCIA_MOTOR: byte $00
DISPLAY: byte $00
COND_ESPERA: byte $01
MOTOR_INTERRUMPIDO: byte $00
CONTADOR: byte $FF
CONFIGURACIONES

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


Gonzalo Cnepa Pgina 14 08/08/2008
Subrutina
RETARDO
PULSADORES = 0?
Procedimiento
DEC_CONTADOR
SI
COD_ESPERA : = 0

CONTADOR : = FFH

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

Subrutina GUARDAR_PULSADORES
* SALTO INCONDICIONAL 1

SI
SI
PORTD =
(00010000
B

00100000
B
)?
B : = BAJANDO
SI


Universidad Nacional de Quilmes Ing. Automatizacin y Control Industrial


Gonzalo Cnepa Pgina 20 08/08/2008
PULSADORE
S = 00010000
B
?
PROCEDIMIENTO PISO_DOS_LLAMADA

PORTD =
00010000
B
?
SI
MOTOR =
SUBIENDO?
A : = 11011111
B

Subrutina GUARDAR_PULSADORES
* SALTO INCONDICIONAL 1

SI
SI
PORTD =
(00000100
B

00001000
B
)?
B : = SUBIENDO
SI
PORTD =
00100000
B
?
B : = BAJANDO
SI


Universidad Nacional de Quilmes Ing. Automatizacin y Control Industrial


Gonzalo Cnepa Pgina 21 08/08/2008
PROCEDIMIENTO PISO_TRES_LLAMADA

PORTD =
00100000
B
?
A : = 11110111B
SI
Subrutina GUARDAR_PULSADORES
PORTD =
(00000100
B

00001000
B

00010000
B
)?
B : = SUBIENDO
SI
PROCEDIMIENTO PISO_CERO

PORTD =
00000100
B
?
A : = 11110111
B

SI
Subrutina GUARDAR_PULSADORES
PORTD =
(00001000
B

00010000
B

00100000
B
)?
B : = BAJANDO
SI


Universidad Nacional de Quilmes Ing. Automatizacin y Control Industrial


Gonzalo Cnepa Pgina 22 08/08/2008
PORTD =
00000100
B
?
B : = SUBIENDO
SI
PROCEDIMIENTO PISO_UNO

PORTD =
00001000
B
?
SI
A : = 10111111
B

Subrutina GUARDAR_PULSADORES
* SALTO INCONDICIONAL 1

PORTD =
(00010000
B

00100000
B
)?
B : = BAJANDO
SI


Universidad Nacional de Quilmes Ing. Automatizacin y Control Industrial


Gonzalo Cnepa Pgina 23 08/08/2008
PROCEDIMIENTO PISO_DOS

PORTD =
00010000
B
?
SI
A : = 11111101
B

Subrutina GUARDAR_PULSADORES
* SALTO INCONDICIONAL 1

PORTD =
(00000100
B

00001000
B
)?
B : = SUBIENDO
SI
PORTD =
00100000
B
?
B : = BAJANDO
SI


Universidad Nacional de Quilmes Ing. Automatizacin y Control Industrial


Gonzalo Cnepa Pgina 24 08/08/2008
PROCEDIMIENTO PISO_TRES

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)

También podría gustarte