Ascensor con microcontrolador 16f844 (simulacion fallida)

Saludos foristas, verán, estoy haciendo el circuito de un ascensor montacargas de tres plantas con un micro 16f84A, el esquema es el del archivo que adjunto.
Paso a explicar un poco el funcionamiento. P1, P2 y P3 (tontera mía, son los pulsadores que no tienen nombre, y están el la parte superior de la imagen) son los finales de carrera por cada piso correspondiente. Y seguido (hacia abajo) están las botoneras de los tres pisos, las entradas al PIC de estos pulsadores son A, B y C.
Lo que hice es poner los botones en paralelo a las entradas del PIC, y no así el positivo de los botones.
¿Como funciona?
Los bits de subida y bajada son RB6 y RB7 correspondientemente
Haber si pueden entenderme o si puedo hacerme entender
Si el ascensor esta en P3 (piso tres, primer led prendido) este activa el primer relé, y por ende los botones conectados al mismo reciben el positivo de la fuente, y se desactivan los otros dos restantes. Y así pasa con cada piso, si el ascensor activo P2, activa R2 y desactiva R1 y R3, y lo mismo con P3, activa R3 y desactiva R1 y R2
Aquí jugué con las posibilidades de pulsos, si el ascensor esta en P1(piso uno) los botones que se activan son P2, P3, P5 y P9.
Si esta en P2(piso dos) activa P1, P4, P6 y P9.

Esto debería ser lógico, si el ascensor esta en P1 (piso uno) y uno del piso dos toca el botón (P6) no debería pasar nada, ya que su relé correspondiente esta desernegizado, y no debería mandar alimentación positiva al botón P6, pero aquí es donde entro en conflictos, porque en la simulación si presiono P6 el Ascensor “baja” y no entiendo bien porqué lo hace si el Botón este, la alimentación a este botón no esta activada (el relé del piso este esta desactivado)

:confused: Ahora mi pregunta es: ¿será que esto es algún error de simulación, o es que me va a pasar lo mismo si lo armo físicamente?

Espero se entienda y espero me ayuden con esta pequeña gran duda :cry: , saludos foristas.

ups, el archivo ascensor1.rar es un error, me mandaba un error cuando trate de subir el primer archivo, asi que lo corte, lo siento
 

Adjuntos

  • ascensor.rar
    785.8 KB · Visitas: 53
  • ascensor1.rar
    424.3 KB · Visitas: 44
Hola marcotronic

Es mejor comprimir y adjuntar el archivo que se genera con tu simulador.
Ya que partiendo de una imagen como la que adjuntaste es más difícil el determinar el porque ocurre lo que mencionas.
El Código para el PIC tambien lo deberías adjuntar comprimiéndolo junto con el .DSN.

saludos
a sus ordenes
 
bueno, saludos nuevamente, ahi va la simulacion en proteus y el codigo .hex

lo unico que quiero saber es si fisicamente me va a tirar el mismo error o no :cry:
 

Adjuntos

  • foros.rar
    17.2 KB · Visitas: 61
Hola marcotronic

Hay algunas cosas por mejorar en tu circuito ya que si lo armas en la realidad tal como lo presentas las bobinas de los relevadores podrían dañar al PIC al hacer un cambio de nivel.

Por lo que mencionas aquí: Paso a explicar un poco el funcionamiento. P1, P2 y P3 (tontera mía, son los pulsadores que no tienen nombre, y están el la parte superior de la imagen) son los finales de carrera por cada piso correspondiente.
Sugiere la idea de que cuando el ascensor está en un determinado piso se acciona el botón correspondiente:
Primer Piso se cierra P1.
Segundo piso se cierra P2.
Tercer piso se cierra P3.

Se nota que tienes 3 juegos de 3 botones; un juego para cada piso. Supongo que estos botones están dentro de la cámara del ascensor. Así que faltan 2 botones en el exterior de la cámara para llamar al ascensor indicándole que queremos subir o bajar. Es lo normal en los ascensores. Cierto ??
Al menos en el segundo piso ya que estando en el primer piso solo podemos llamarlo para subir y si estamos en el tercer piso solo podríamos llamarlo para bajar.

Si el ascensor está en el tercer piso y me encuentro en el primer piso fuera del ascensor presiono el botón exterior, el ascensor debe bajar y al llegar al primer piso abrir la puerta para dejarme entrar. Una vez dentro del ascensor puedo pedirle al ascensor que suba al segundo piso o al tercer piso según a donde pretendo ir.
Aquí como que sobra el botón para ir al primer piso pues ya estoy ahí. Pero no, no sobra pues estando en el segundo o tercer piso puedo pedir que me lleve al primer piso en este caso el ascensor debe bajar.

Hice una simulación con tu circuito y no ocurre lo que mencionas: Esto debería ser lógico, si el ascensor esta en P1 (piso uno) y uno del piso dos toca el botón (P6) no debería pasar nada, ya que su relé correspondiente esta desernegizado, y no debería mandar alimentación positiva al botón P6, pero aquí es donde entro en conflictos, porque en la simulación si presiono P6 el Ascensor “baja” y no entiendo bien porqué lo hace si el Botón este, la alimentación a este botón no esta activada (el relé del piso este esta desactivado)
Aparentemente el circuito funciona como tu lo esperas.

Te sugiero agregar un botón para restablecer el PIC. Este se conecta del PIN 4 a tierra y una resistencia hacia el Vcc.


saludos
a sus ordenes
 
Una respuesta!! Soy tan feliz!!!! :D Y no es broma, es que ya puse varias preguntas por aquí y por allá y hasta ahora nada de respuestas :(
Bueno, gracias de verdad por responder (y)
Ahora al tema, primero, creo que se me paso el detalle de mencionar que es un montacargas (ascensor pequeño para subir cosas solamente) por lo que la botonera para llamar o despachar al ascensor esta por afuera jeje.

Y bueno, adjunto otra vez el mismo circuito pero esta vez más ordenadito y con el reset incluido (no entendí muy bien lo del reset, pero lo puse así como la ves, puesto de otra manera me mantiene como en reset todo)

Ahora yo creo que notaras la diferencia y otra ves hago la pregunta (ya que con este nuevo circuito espero se entienda mejor)

Si el ascensor esta en el piso tres (final de carrera P3) y el del primer piso presiona P8 no debería pasar nada ya que RL3 esta desactivado y por ende este botón no esta alimentado.
Pero en la simulación pasa que igual activa el ascensor para que baje al piso 2.

Mi pregunta otra vez: ¿¿físicamente será que va a pasar lo mismo?? Porque según la lógica esto no debería estar pasando, no deberia estar activando nada :cry:

desde ya, muy agradecido con la respuesta.
 

Adjuntos

  • foros.rar
    35.3 KB · Visitas: 25
Última edición:
Si el ascensor esta en el piso tres (final de carrera P3) y el del primer piso presiona P8 no debería pasar nada ya que RL3 esta desactivado y por ende este botón no esta alimentado.
Pero en la simulación pasa que igual activa el ascensor para que baje al piso 2.

Mi pregunta otra vez: ¿¿físicamente será que va a pasar lo mismo?? Porque según la lógica esto no debería estar pasando, no deberia estar activando nada :cry:

desde ya, muy agradecido con la respuesta.

Hola, esto sucede porque el simulador no reconoce un estado de alta impedancia(relevador abierto) y le asigna un 1 lógico a dicho estado, pero en realidad así como esta sí funcionaria físicamente, para fines prácticos de simulación podrías simularlo de la siguiente manera(archivo adjunto), pero tu simulación si es valida ya que no dejas alguna entrada al pic sin un estado lógico definido, además agrega diodos en los relevadores para proteccion
 

Adjuntos

  • ASCENSORmodificado.rar
    18.9 KB · Visitas: 54

Muy agradecido por los arreglos en la simulación, y da perfectamente.

Bueno, ahora quiero pasar a hacer el PCB peo me surgen unas dudas
Leo (y no soy muy experto) por ejemplo.
Los pulsadores los quiero alimentar con los 5V directamente, pero leí por ahí que a grandes distancias, es mejor poner otros dispositivos entre la señal que va a dar la entrada, y la entrada real al PIC, dicho de otra manera
Por la distancia entre el primer y el tercer piso, me imagino que habrá una caída de tensión, por lo que la señal de los 5V llegaría, no se si ponerle como falsa o que no llegaría a reconocer el PIC, para solucionar eso quería que los pulsadores activen relés (alimentar con 12V a los relés)y de las salidas de los relés manden la señal de los 5V al PIC (puesto que estos relés estarían en el pcb).
Haber en un rato mas hago el diseño de cómo lo quiero poner y haber si me ayudan a decidir este detalle o que consejos pueden darme.

Y el circuito de
, pues esta muy bueno, muchas felicidades por ello, pero no se si mi duda anterior se aplica a tu diseño, que para distancias largas la señal se perdería un poco la señal (esto por la resistencia del cable, que llegaría a ser mas o menos los de conexión a Internet creo que seria de medio mm. de espesor)

Y gracias de nuevo por responder y perdón por seguir preguntando, pero bueno, al hacer estas cosas la verdad me emociono y pienso en todas las posibles variantes que vayan a ocurrir y prefiero evitar las sorpresas.

Una ultima cosita, así como subí primero, armado en PCB daría perfecto no?? O debería armar como hizo el arreglo
 
Última edición:
Una ultima cosita, así como subí primero, armado en PCB daría perfecto no?? O debería armar como hizo el arreglo

Hola, así como lo armaste funcionaria bien, respecto a la caida de tensión bien podrías utilizar relevadores, buffers o elevar ala tensión de la señal a transmitir tomando en cuenta la caida de tension en el cable conductor.
 
Bueno señores, :) y quedo listo, al parecer así como puse al principio ni iba a funcionar como quería (n) , de alguna manera los contactos estaba unido, ya que 1A se unía en algún momento con 2A y dos 2A se unía con 3A, así que todo quedaba unido al final y se podía activar el ascensor desde el piso que uno este, probando y probando pude arreglar el circuito y anda al 100% como quería :D .
Ahora voy a pasar algunos de los circuitos físicamente (activar los relés con transistores) y ver que los leds enciendan.

El circuito viéndolo bien me parece un poco exagerado, opte por usar puros relevadores al final, eso para manejar voltajes distintos y aislar por completo el micro. Haber si pueden echarle un vistazo y decirme si le debo aumentar diodos al los relés de las botoneras o quizás también necesite resistencias en serie con las bobinas de los relés, de eso ya no estoy seguro, y es que no soy taaaaan capo (como aquí se dice) en esto de los circuitos, mis conocimiento se basan mas en armado de circuitos.

Gracias por las respuestas desde ya y saludos
 

Adjuntos

  • foros.rar
    23.9 KB · Visitas: 30
Hice la simulación física de los transistores, y como esta en el diseño no me anda para nada, y probé poniendo el relé en el emisor y puse el colector a negativo y ahí recién me anda bien, y hasta le puse los leds.
Bueno también me puse a medir las tensiones y estos números me boto la medición para el transistor del relé de 12: Vbc=0.752 Veb=0.678 Vec=0.085 Rb=4.7K

Para el relé transistor que controla el relé de 5V: Vbc=0.827 Veb=0.687 Vec=0.139 Rb=1.5K

Ahora que yo sepa esos valores son bueno, pero la verdad es que no se mucho al respecto, haber si me pueden ayudar al respecto.

El transistor que use es el bc548


Y todavía debo preguntar si los relés de las botoneras tienen que llevar diodos de protección.

Gracias por responder.

pdta: viendo en inter y viendo la hoja de datos del bc548 la configuracion que tengo es erronea, por lo que la conexion de la simulacion esta bien echa ( C B E ), esa es la configuracion del bc548 :S
 
Última edición:
Revisa con un tester la configuracion de tu transistor ya que puede ser que tenga la Base en medio o en alguno de sus extremos, estaba viendo tu simulacion pero realmente te la estas complicando mucho a mi punto de vista por que no le pones 3 switch y que en cada piso exista una punta que presione uno de los 3 asi tendrias el estado de en que piso estas
000 << todos apagados ascensor en movimiento
001 << parqueado en el piso 1
010 << parqueado en el piso 2
con eso te saltas casi todos los reles solo te quedaria manejar el rele de subida y de bajada, para los botones que van en cada piso que llaman al ascensor usaria solo 1 boton en lugar de 2 cuando ya esten adentro del ascensor alli presionen a que piso vas y lo validas por software si el piso pulsado es valido, otra sugerencia podria ser usar optoplactores para poder enviar mas voltaje y evitar las caidas de voltaje por el largo del cable.

Bueno son solo sugerencias.. saludos
 
Saludos albertoxx

bueno, si te fijas arriba ya puse que es un ascensor montacargas, por lo que el comando se lo debe hacer desde afuera.

Y lo del opto pues busque, pero la verdad ando un poco confundido de donde va la salida del pic al opto o como polarizar el transistor de opto, si me ayudas, lo tomo en cuenta, la verdad ni se que preguntar respecto al opto. También simule algunos circuitos con opto, pero no me salio nada.

bueno, si encontre vrios capitulos de como poner un opto ( http://sputnik.epsj23.net/~eserra/elect/pics/sensorspic.html ) ahora no se si me dices que los ponga o a la salida o a la entrada del micro

gracias desde ya y saludos
 
Última edición:
Yo en mi caso uso mucho el A817 aqui te envio el link de la hoja de datos y es tan facil de usar como prender un LED bueno de echo eso es si lo usas para manejar salidas entonces digamos un output_high(PIN_A1); luego el pin se lo conectas al pin 1 del opto y el pin 2 a una resistencia de 200 y luego a tierra con eso ya tienes tu salida super aislada con eso las pastas 3 4 del opto quedan algo asi como en corto con eso puedes manejar lo que quieras con mayor seguridad. Para ponerlo como entrada es lo mismo solo que al revez.

Te mandaria el esquema pero mi proteus no trae el opto de 4 pines y no lo he logrado conseguir para emularlo pero con unos minutitos seguro que te funciona, yo en mi caso los uso para proteger las entradas y mis salidas.

http://www.alldatasheet.com/datasheet-pdf/pdf/52887/FAIRCHILD/H11A817.300.html

No habia entendido entonces lo del montacargas, pero en todo caso seria casi igual con los switches que le indicen al pic en que piso esta actualmente el montacargas el algoritmo seria mas o menos asi

Control del piso 3 (2 botones nada mas o va al uno o va al dos) al pueto de entrada 1 y 2
Control del piso 2 al puerto de entrada 3 y 4
Control del piso 1 al puerto de entrada 5 y 6
Detector de en que piso esta al puerto de entrada 7 8 9
Variable Modo = 0 parado 1 bajar 2 subir 3 accion
Variable PisoDestino = 0
while(1)
si modo = 0 y detector de piso <> 0 y pisodestino = 0
si piso = 1
si puerto 1 esta activo (aqui una persona del piso 3 quiere el monta carga)
pisodestino = 3
modo = 2 subir
si puerto ... asi sucesivamente
si modo = 2
activar puerto salida para iniciar trabajo del motor para subir
modo = 3 accion
si modo 3
si pisodestino = 1 y detectordepiso = 001
detener puertos de salida tanto de subida cmo de bajada
pisodestino = 0
modo = 0
si pisodestino = 2 y detectordepiso = 010
detener puertos de salida tanto de subida cmo de bajada
pisodestino = 0
modo = 0
asi sucesivamente....


Algo asi espero que te ayude la idea
 
Pero que tonto!!!
Tenia que haber echo eso desde el principio!!!!

Ahora que lo pienso por una idiotez mía cambie sin querer la programación esta, bueno, al ver los pulsadores armados en proteus me confundí y lo fui armando así como quedo ahora, que desgracia la mía, lo voy a ver y capaz así como me recomendaste me sale menos complicado, gracias por la ayuda y voy a ver si en el comercio hay este tipo de optos
Aunque te comento que alguna ves me acerque y el que mas hay es el MOC3041 no se si este sirva
Viendo el data…….. creo que es un triac o tiristor lo que activa el Led, ahora no se si el armado del mismo sea el mismo que me recomendaste.
Si me cruzo con algún problema sigo posteando y gracias por la ayuda albertoxx
y a todos claro
 
Código:
albertoxx

una pregunta mas, tendras la formula para el calculo de las resistencias y la forma de conexion, para los botones quiero ponerle 24V, y bueno, para el pic los 5V no, jeje
 
El MOC3041 es un optoplactor para controlar un triac, ese no creo que te sirva, necesitas un optoplactor con phototransitor: 4N25,4N26...4N36, KP1010 hay bastantes modelos.

Si pues se te dificulta con los optoplactores, segui usando relevadores y si los quieres usar como entrada para el pic a 24V usa relays para ese voltaje te adjunto la imagen
 

Adjuntos

  • circuitobasico.JPG
    circuitobasico.JPG
    6.5 KB · Visitas: 18
Quiero ponerle el opto pero no encuentro la bendita formula para encontrar el valor de las resistencias, de las paginas que encuentro ya vienen puestas y con el voltaje correspondiente, el dataste del 4n26, 26, etc (http://pdf1.alldatasheet.com/datasheet-pdf/view/2849/MOTOROLA/4N28.html)
Igual ya ponen la resistencias
Ahora no se si ponerle proporcional, según el data a 10V se le pone al transistor un res de 100ohm.
Entonces según yo (y mi mala lógica) debería ponerle una res de 200omh???

Ayuda porfa!!!

Una cosa mas, de todas manera para algunas partes estaría usando los relevadores, ahora, al diagrama que pones se le pone diodos en contracorriente?? O ya no son necesarios???
 
Hola marcotronic

La formula se define teniendo los siguientes parámetros:
Del emisor de Luz:
Reverse Voltage = Vr 3 Volts.
Forward Current — Continuous = If 60 mAmp.
Forward Voltage (IF = 10 mA) = Vf 1.15 Volts.
Del Sensor De Luz:
Collector–Emitter Saturation Voltage (IC = 2 mA, IF = 50 mA) = VCE(sat) 0.15 Volts.
COUPLED

Output Collector Current (IF = 10 mA, VCE = 10 V) = IC (CTR)(2) 7 (70) mA (%)
(2.) Current Transfer Ratio (CTR) = IC/IF x 100%.


Para el emisor de luz es relativamente sencillo:
(Vcc – Vf) / If = R
Vcc= 5 Volts.
Vf = 1.15 Volts
If = 10 mAmp.

5 – 1.15 = 3.85 Volts.
3.85 / 0.010 = 385 Ohms = R.
Para El 4N26.

Considerando que el Opto acoplador trabajará en un ambiente con una temperatura de 25°C.
Tomamos esa curva a 25°C de la figura 1.
Nota que 60 mAmp. Es la Máxima corriente que se le podría aplicar al LED del Opto Acoplador. De ahí en adelante solo corriente pulsante se le podría aplicar.

Para el sensor de luz es algo más complejo:
Analiza la figura 2 que viene en las hojas de datos.
Nota que haciendo pasar una corriente de 10 mAmp. por el emisor de luz la corriente de colector en el sensor de luz (Ic) llega a 1 mAmp. Si ésta corriente es suficiente para “Mover” lo que esté conectado al colector entonces estamos bien.

Ve el parámetro Vce(Sat) en las hojas de datos.
Dice que el voltaje de saturación entre colector y emisor es de 0.15 Volts.
Pero cuando La Ic es de 2 mAmp y La If De 50 mAmp.

Analiza la grafica en la figura 3 que viene en las hojas de datos.
Supón que requieres una corriente de colector de 24 mAmp. Sigue la curva If = 10 mAmp.
En esas condiciones el Vce (Voltaje colector- emisor) sería de aprox. 6.8 Volts.

Así que si este es el punto donde va a trabajar el opto acoplador ya solo tienes que calcular la resistencia de colector, pero al circuito se le debe aplicar algo así como 10 a 12 Vcc.

Lo de los diodos en paralelo con las bobinas de los relevadores es mejor ponerlos ya que al des-energizar o energizar a estas se producen picos de voltaje que pudieran ir dañando al dispositivo que sirve para.... exacto, energizar o des-energizar las bobinas.

saludos
a sus ordenes
 
En el diagrama que te puse donde se usan relays no necesitas ningun diodo de proteccion ya que cuando pulsas el boton se activa la bobina que trae dentro del relay esa solo consume lo que necesita. La super explicacion de MrCarlos esta muy bien ponele una resistencia de 300 yo le he puesto de 200 para 5V y funciona re bien.
 
Atrás
Arriba