TODOPIC

Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: AcoranTf en 03 de Abril de 2012, 13:04:26

Título: Puerta de garaje con PIC16F876
Publicado por: AcoranTf en 03 de Abril de 2012, 13:04:26
¡¡ Que contento estoyyyyyyy!!, que diria Vicky el vikingo.
Bueno ya acabe mi primer proyecto "importante" realizado con un PIC y programado en C.
Como el nombre del hilo indica, se trata de un automatismo para el control de una puerta de garaje con el PIC16F876.
Entre sus caracteristicas:

-Se puede manejar tanto con un solo pulsador, como con tres
-Se puede elegir si enciende la luz del garaje al abrir o no
-Se puede elegir si cierra automaticamente o no tras un periodo de espera
-El periodo de espera es programable de 15 segundos a 4 minutos en saltos de 15 segundos
-Utiliza una fotocelula para detectar durante el cierre si alguien o algo se interpuso en la puerta

Los 8 micros switch sirven para:

1, 2, 3 y 4 - Seleccion del tiempo de cierre automatico
5 - Reserva
6 - Cierre automatico ON/OFF
7 - Luz garaje al abrir ON/OFF
8 - Modo 1 pulsador OFF, o 3 pulsadores ON (En el modo de 1 pulsador, se utiliza solo el de ABRIR)

El resto esta todo documentado sobre el proyecto de simulacion de Proteus.
Por supuesto que aunque lo doy por terminado, agradecere a cualquiera que aporte otras formas de hacer las cosas y/o si detectan algun fallo en el codigo.

Quiero agradecer la ayuda recibida de Suky, Samshield_pic y muy especialmente de Carlos, (Kallitos), sin la cual aun andaria por ahi perdido entre if's, #int y otras cosas.

Y de paso recordar que no me he olvidado de mi otro proyecto pendiente, el de la vitroceramica, el cual tengo medio abandonado. Pero que en breve retomare, ahora con mas fuerza con los conocimientos adquiridos en este proyecto.

Saludos.

P.D.: En la simulacion de proteus, se han sustituido los elementos de salida, (reles), por led's, para hacer posible y vistosa la simulacion.
Título: Re: Puerta de garaje con PIC16F876
Publicado por: Diego E. en 03 de Abril de 2012, 14:36:03
Hola amigo, bueno tu trabajo, te doy un truco para que en los componentes de proteus no aparezca la etiqueta <TEXT>

1- Das doble Click en la etiqueta <TEXT>
2- Seleccionas pestaña "Style"
3- Des-seleccionas la opción "Follow Global"
4- Des-seleccionas la opción "Visible ?"

y listo, saludos.
Título: Re: Puerta de garaje con PIC16F876
Publicado por: AcoranTf en 03 de Abril de 2012, 16:31:20
Muchas gracias Diego, me sera muy util ese truco, como ves yo lo que hacia es arrinconarlos todos donde no me molesten.

Saludos.
Título: Re: Puerta de garaje con PIC16F876
Publicado por: jeremylf en 04 de Abril de 2012, 01:58:31
Felicidades! Seguro en el transcurso encontraras algunas fallas o mejoras, que es lo mas importante.
Título: Re: Puerta de garaje con PIC16F876
Publicado por: AcoranTf en 04 de Abril de 2012, 06:00:24
Felicidades! Seguro en el transcurso encontraras algunas fallas o mejoras, que es lo mas importante.

Gracias jeremylf, en ello estamos.

Saludos.
Título: Re: Puerta de garaje con PIC16F876
Publicado por: AcoranTf en 08 de Abril de 2012, 17:26:18
Bueno estos dias estuve realizando el montaje real de este proyecto. Realice la PCB y la monte.
En principio funciono todo bien, pero probando una de las cosas que hice fue proteger el codigo contra lectura y despues no podia borrar el PIC para reprogramar. Lo que ocurria es que puse los microswitch en el puerto B, un gran fallo, porque ahi estan las lineas de datos y clock para el ICSP y justamente el micro de la linea de datos lo puse en on, o sea el pin RB7 a masa. Lo tendre en cuenta para futuros proyectos, cosas de novato.
Adjunto unas fotos de la placa acabada, como podreis ver las pistas no me quedaron muy alla, ya que me pase en el tiempo de revelado y quedaron "tocadas" y algunas tuve que arreglarlas con pequeños puentes. Aunque en esto no soy novato, esta vez me confie demasiado y el revelador estaba nuevo y ataco como leon hambriento.
Comentar tambien que la placa esta enteramente realizada con el Ares de Proteus.
Bueno espero os guste mi montaje.

Saludos.

P.D.: Gracias samshield_pic, las subi a mi servidor. Ahora voy a intentar reducirlas, para que no se vean tan grandes.

(http://www.yaitana.es/temp/Componentes.jpg)

(http://www.yaitana.es/temp/Pistas.jpg)
Título: Re: Puerta de garaje con PIC16F876
Publicado por: samshiel_pic en 08 de Abril de 2012, 18:41:41
yo tengo una cuenta en Photobucket (http://photobucket.com/) y cuelgo alli las fotos y despues las enlazo en el foro con esto (http://www.todopic.com.ar/foros/Themes/default/images/bbc/img.gif) en la barra de herramientas del mensaje.
Título: Re: Puerta de garaje con PIC16F876
Publicado por: jeremylf en 09 de Abril de 2012, 04:56:38
Te falto poner tu .hex en tu adjunto para la simulacion  :P

Por otro lado, me gustaria ver tu esquema REAL, no de simulacion. Seguro que con el esquema se te puede dar algunos consejos de hardware. Por ejemplo, viendo tu foto, me parece que no has puesto diodos de protecion contra voltaje inverso en los reles, muy importante: evita interferencias en todos lados y protege a tus reles.

Por tu codigo, en un vistazo rapido, veo que no haces uso del WDT. Es casi obligatorio que habilites esto, ya sabes, no querras que se te quede colgador por algun imprevisto. Tantea que tiempo es el optimo.

El PUT tambien es muy recomendable, usalo.
Título: Re: Puerta de garaje con PIC16F876
Publicado por: dogflu66 en 09 de Abril de 2012, 09:07:37
Felicidades por el proyecto.
Llevo un rato observando la placa y no veo el condensador de desacople de alimentación del pic.
Título: Re: Puerta de garaje con PIC16F876
Publicado por: AcoranTf en 09 de Abril de 2012, 15:04:31
Te falto poner tu .hex en tu adjunto para la simulacion  :P

Bueno el hex no lo puse, pero si el fuente, seria solo compilar con el CCS.

Citar
Por otro lado, me gustaria ver tu esquema REAL, no de simulacion. Seguro que con el esquema se te puede dar algunos consejos de hardware. Por ejemplo, viendo tu foto, me parece que no has puesto diodos de protecion contra voltaje inverso en los reles, muy importante: evita interferencias en todos lados y protege a tus reles.

Si estan los diodos, pero no se ven, al estar hecha la foto con un angulo sobre la vertical, quedan ocultos justo entre las resistencias de 8K2 y cada rele

Citar
Por tu codigo, en un vistazo rapido, veo que no haces uso del WDT. Es casi obligatorio que habilites esto, ya sabes, no querras que se te quede colgador por algun imprevisto. Tantea que tiempo es el optimo.

Tienes razon, lo deje comentado para activarlo al final y me olvide.

Citar
El PUT tambien es muy recomendable, usalo.

¿Que es el PUT y que funcion tiene?.

Gracias por tus comentarios


Felicidades por el proyecto.
Llevo un rato observando la placa y no veo el condensador de desacople de alimentación del pic.


Pues es cierto que no lo hay, en la primera revision lo incluyo, por si acaso.
Gracias por tu apoyo.

Saludos a ambos.
Título: Re: Puerta de garaje con PIC16F876
Publicado por: AcoranTf en 09 de Abril de 2012, 16:52:40
Jeremylf, aqui dejo el esquema real, tal como comentabas en tu anterior respuesta.
Podras observar que se ha cambiado el transistor que controla la alimentacion de la celula fotoelectrica, antes era un PNP y lo he cambiado por un NPN, con la finalidad de unificar todas las salidas. Al mismo tiempo como es logico he modificado el software.
Comentar tambien porque el conector del motor tiene 6 pines y esas conexiones tan "raras", es simplemente porque lo he hecho con idea de utilizar tanto en motores de CC y poca potencia, como en motores de CA, tanto monofasicos como trifasicos. En este ultimo caso, evidentemente habria que añadir dos contactores externos a la placa.
Tambien he modificado la fuente, ya que tal como esta en este esquema, al conectar el transformador de 220/24, (en realidad es de 220/28), la tension en puntas del condensador de 1000 micros es de 38 V. y el 7805 soporta como maximo 30 V. de entrada. Por ello ha agregado una etapa con transistor BDX53 y zener de 24 V. que reduce los 38 V. a 24 V., que a su vez el 7805 reduce a 5 V. para el PIC.
Por ultimo vereis que los valores de resistencias no coinciden con los de la placa, es simplemente porque no tenia suficientes del valor inicial previsto y las sustitui por otras de valor aproximado, ya que en este uso no es critico dicho valor, (las de 10 K sustituidas por 8K2 y las de 1 K por 820 Ohm.

Saludos.
Título: Re: Puerta de garaje con PIC16F876
Publicado por: jeremylf en 10 de Abril de 2012, 15:15:54
El Power Up Timer (PUT) es un tiempo (por hardware) de 72ms aprox. que se le da al PIC para que se estabilice cosas como el oscilador primario. Luego de ese tiempo arranca tu main.
Título: Re: Puerta de garaje con PIC16F876
Publicado por: MerLiNz en 10 de Abril de 2012, 20:12:48
No veo diodos en los reles  8)

Sobre el tiempo yo lo haria con un potenciometro y un ADC asi queda mas curioso y facil de hacer.

Si quieres meter ahi un motor de corriente alterna, o incluso uno de continua puede que tengas problemas de ruidos, lo has probado ya con algun motor de similares caracteristicas al real? No se muy bien como irian conectados, pero supongo que utilizas los reles para conmutarlos no? O los reles son para conmutar un driver externo para los motores?
Título: Re: Puerta de garaje con PIC16F876
Publicado por: AcoranTf en 10 de Abril de 2012, 21:05:00
Hola Merlinz, los reles si que llevan diodos, concretamente el 1N4148, lo que ocurre es que estan justo entre los transistores y los reles y los tapa el propio rele, por el angulo en que tome la foto.
Respecto al ruido, aun no lo probe con motor, el jueves lo hare y ya vere si da problemas.
Los reles controlan directamente el motor si es de CC o CA monofasico, en caso de CA trifasico, se necesitan dos contactores externos.
Si el motor es de CC, se realizan sendos puentes entre las dos parejas de terminales de los extremos del conector y en los dos terminales del centro va el motor. Si fuese de CA, no lleva puentes y se aplicaria la tension al segundo terminal de cada extremo, el condensador entre uno de alterna y otro del motor y el motor igual que antes a los dos terminales del centro.

Sobre el tiempo yo lo haria con un potenciometro y un ADC asi queda mas curioso y facil de hacer.

Pero menos vistoso y preciso, aunque aqui la precision no es critica. Yo lo prefiero asi, porque el usuario no lo tocara tanto al no saber como va.

Saludos.
Título: Re: Puerta de garaje con PIC16F876
Publicado por: MerLiNz en 10 de Abril de 2012, 22:15:28
Y cuantos A circularan por los reles? Lo digo porque veo un poco finas las pistas, supongo que lo habras tenido en cuenta no?

Hombre, preciso si podria ser, depende del potenciometro que le pongas, incluso los hay de estos que lo vas girando y van dando pasos, le dibujarias una circunferencia y alrededor los tiempos, por ejemplo cada rallita que sea 2 minutos o algo asi.

Antes de nada prueba lo de los motores, me da la sensacion que tendras problemas de ruidos, ya he visto problemas en el foro de cosas similares y siempre habia un motor de por medio, incluso circuitos mas aislados.

Título: Re: Puerta de garaje con PIC16F876
Publicado por: Suky en 10 de Abril de 2012, 22:28:38
Antes de nada prueba lo de los motores, me da la sensacion que tendras problemas de ruidos, ya he visto problemas en el foro de cosas similares y siempre habia un motor de por medio, incluso circuitos mas aislados.

+1

Falta capacitor de desacople... Es bueno implementarlo la alimentación de la siguiente manera:

(http://picmania.garcia-cuervo.net/electronica_basica_interf_archivos/image036.jpg)

Podrías agregarle un resistencia y capacitor a cada rele.. Busca info en el foro, se ha tratado el tema  ;-)
Título: Re: Puerta de garaje con PIC16F876
Publicado por: AcoranTf en 13 de Abril de 2012, 19:23:54
Antes de nada prueba lo de los motores, me da la sensacion que tendras problemas de ruidos, ya he visto problemas en el foro de cosas similares y siempre habia un motor de por medio, incluso circuitos mas aislados.

+1

Falta capacitor de desacople... Es bueno implementarlo la alimentación de la siguiente manera:

(http://picmania.garcia-cuervo.net/electronica_basica_interf_archivos/image036.jpg)

Podrías agregarle un resistencia y capacitor a cada rele.. Busca info en el foro, se ha tratado el tema  ;-)

Gracias a ambos por las sugerencias.
Merlinz, las pistas estan reforzadas, aunque hasta que no lo pruebe en "vivo" no podre saber si suficientemente o no. En realidad no se exactamente el consumo del motor, pero creo que anda por los 2 Amp. aproximadamente.
Suky el condensador de desacoplo del PIC esta puesto directamente sobre los pines de dicho PIC, es un smd de 100 nF. Respecto al aislamiento y filtrado de la fuente, en cuanto reciba el LM 2574, que tengo pedido, realizare pruebas para implementar la tension del PIC, con dicho LM. Con ello quedara mas aislada de ruidos e interferencias procedentes de la alimentacion general, ademas de quedar mas optimizada y calentarse menos que le sistema actual de doble reductor, mediante transistor/zener el primer paso y con un 7805 el segundo.
Los reles no me dan problemas, eso ya esta probado, me queda solo probar con el motor conectado y en funcionamiento real.

Saludos.

P.D.: En otro montaje que hice con PIC y que si me daba muchos problemas de inestabilidad, posiblemente por interferencias y ruidos, la solucion que me quito el problema fue realizar la PCB con placa de doble cara, pero diseño de una sola cara, dejando la cara de componentes integramente como pantalla y condensador de desacoplo, conectada al GND por varias "vias" realizadas con puentes entre-caras.

Título: Re:Puerta de garaje con PIC16F876
Publicado por: AcoranTf en 26 de Octubre de 2016, 05:55:45
Como pasa el tiempo, cuatro años y medio ya...  :D :D
Bueno reabro el tema para comentar que como varios de vosotros me advirtieron, tuve muchos problemas de ruidos y reinicios del PIC en las pruebas reales.
Los solucione sacando completamente la fuente que alimenta al motor del circuito impreso e implementando la de la logica con un LM2574. Tambien agregue contactores externos para evitar una corriente elevada en los reles.
Por lo demas quede bastante satisfecho con el funcionamiento general. Solo me queda cambiar el grupo de microswich a otro puerto donde no afecten al ICSP.
Agradezco de nuevo toda la ayuda y comentarios recibidos.

Saludos.