# Proyecto de un ascensor de 3 pisos con pic



## ale.pin8 (Nov 6, 2007)

hola:
lo que pasa es que estoy en apuros con un proyecto del cole.
c trata de un ascensor de 3 pisos con una pic 16f84a, si es que conocen algun link que me puedan enviar, o si alguien sabe del tema y me pueda dejar su mail para poder comunicarle con el de verdad se lo agradeceré mucho


----------



## Fogonazo (Nov 6, 2007)

Algo como para ir mirando

http://olmo.pntic.mec.es/jmarti50/ascensor/ascensor.htm


----------



## ale.pin8 (Nov 6, 2007)

hola denuevo
gueno gracias, pero la verdad es que no me sirbe por que es con conmutadores y necesito uno con pic 16f84a
la verdad es que me meti a este foro por que necesito el programa para la pic, debido a que no lo he encontrado.
mas k nada lo tome como un metodo de busqueda con ayuda lo digo por el primer link
lo k pasa es k he buscado en variadas paginas desde foros hasta paginas de universidades y aun asi no he encontrado nada.
porfavor si es k alguien tiene el proyecto o sabe de donde lo puedo obtener, se los agradecere.


----------



## Meta (Dic 6, 2008)

Esto si que es un proyecto de ascensor de 8 plantas.

http://www.diselc.es/diselc/proyectos/ascensorpic.htm

Saludos.

EDITO:

YouTube - Proyecto con maqueta de un ascensor de 5 plantas controlada por un microcontrolador pic 16f84A


----------



## laban47 (Oct 25, 2013)

romyggar dijo:
			
		

> Amigo alexis487.
> 
> Si eres tan amable de especificar mas claramente tu proyecto quizá te pueda ayudar un poco con el código. Pero es clave que no me pongas a descifrar jeroglíficos (al tratar de entender que es lo que buscas).
> 
> Estaré por acá todo el dia.



este es mi codigo solo me falta las combinaciones y esta en el 1 piso bajar al 3 o al 2 piso....y al reves

ahi tiene las variables de llegada para saber en que piso se encuentra el ascensor.............


dato: no se si estara bien las ordenes del motor para subir o bajar........



```
'-----------------------PROYECTO ASCENSOR 5 PLANTAS-----------------------------
DEFINE LCD_DREG PORTD
DEFINE LCD_DBIT 0
DEFINE LCD_RSREG PORTD
DEFINE LCD_RSBIT 4
DEFINE LCD_EREG PORTD
DEFINE LCD_EBIT 5

ADCON1 = %0110
I Var Byte 
TRISC = 0 
PORTC = 0

'-----------Constantes para definir en que piso se encuentra (llamada)----------
Uno CON %00000110
Dos CON %01011011
Tres CON %01001111
Cuatro CON %01100110
Cinco CON %01101101

'-------------------------PULSADORES ACCIONADOS POR CABINA----------------------
piso1 var porta.4
piso2 var porta.3
piso3 var porta.2
piso4 var porta.1
piso5 var porta.0
'------------------------------PULSADORES DE LLAMADA----------------------------
llama1 var portb.4
llama2 var portb.3
llama3 var portb.2
llama4 var portb.1
llama5 var portb.0
'------------------------------PULSADORES DE LLEGADA----------------------------
LLEGADA1 VAR PORTE.0
LLEGADA2 VAR PORTE.1
LLEGADA3 VAR PORTE.2
'--------------------------------SALIDAS DE MOTOR-------------------------------
bajar var portb.5
subir var portb.6

PAUSE 200
Lcdout $fe, 1 'Limpia la pantalla
lcdout $fe,2,"ASCENSOR 3 PISOS"
pause 2000
LCDOUT $fe,1
PORTC = uno 'empesamos por el primer piso
i = 1
lcdout $fe,2,"ESTADO ="
lcdout $fe,$c2,"PISO =",dec i 'aparece en el display y LCD
'************************************************* *********
inicio: 
if i = 1 then PORTC = uno
if i = 2 then PORTC = dos
if i = 3 then PORTC = tres
if piso1 = 0 then pisouno
if piso2 = 0 then pisodos
if piso3 = 0 then pisotres
if LLEGADA1 = 0 then pisouno1
if LLEGADA2 = 0 then pisodos2
if LLEGADA3 = 0 then pisotres3

goto inicio
'************************************************* *********
pisouno:
if piso1 = 0 and PORTC != uno then
i = 1 : gosub subeA : portc = i : gosub lcd

endif 
goto inicio
'************************************************* *********
pisodos:
if piso2 = 0 and portc != dos then
i = 2 : gosub subeA : portc = i : gosub lcd 
endif
goto inicio
'************************************************* *********
pisotres:
if piso3 = 0 and portc != tres then
i = 3 : gosub subeA : portc = i : gosub lcd 
endif
goto inicio
'************************************************* *********
[COLOR="Red"]este codigo hay que modificar para que cumpla las llamadas de los pisos... aki tengo el problema-.....[/COLOR]

pisouno1:
if LLEGADA1 = 0 gosub bajaA 
endif 
goto inicio

pisodos2:
if LLEGADA2 = 0 and PORTC != DOS then
i = 2 : gosub bajaA : portc = i : gosub lcd
endif 
goto inicio

pisotres3:
if LLEGADA3 = 0 and PORTC != Tres then
i = 3 : gosub bajaA : portc = i : gosub lcd
endif 
goto inicio


'************************************************* *********
lcd:
lcdout $fe,$c2,"PISO = ",dec i
return
'************************************************* *********
bajaA:
high bajar
pause 1000
low bajar 
RETURN
'************************************************* *********
subeA:
high subir
pause 1000
low subir 
RETUrn
```


----------

