Autor Tema: Activar un Relé con el PIC  (Leído 7589 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado umalrovi

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 158
    • Aplicaciones Electrónicas
Activar un Relé con el PIC
« en: 13 de Julio de 2006, 09:57:18 »
Buenas, me estoy iniciando a la programación con el PIC en C ya que la veo mucha más sencilla. He estado mirando ejemplos que hay por esta página que me han aclarado mucho las ideas. Soy un poco inesperto y me gustaría si alguno de vosotros me podría ayudar para realizar el programa en C. Lo que deseo realizar es mediante la RS232 activar un relé con el pic, pero prefiero empezar activando el relé con un pulsador y hacer el programa y luego más adelante ir completándolo.

Me podéis dar alguna sugerencia o postear de como realizar el código fuente.Se activaría el relé por la RB0 con un pulsador conectado a la RB1. El PIC que voy a usar el el 16f877.

Muchas gracias y espero vuestras respuestas.
Aplicaciones Electrónicas
http://www.neoingenia.com/

Desconectado vszener

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2395
Re: Activar un Relé con el PIC
« Respuesta #1 en: 13 de Julio de 2006, 12:29:25 »
Buenas!!! la programacion que tu necesitas es el control del estado de un pin del microcontrolador mediante un pulsador, si el estado es alto, '1' logico, pues pone cierto pin en alto (a '1' logico), y si se vuelve a pulsar el boton, pues permutara el estado del pin de salida a nivel bajo ('0' logico), el montaje hardware del rele es cosa aparte, te aconsejo que te revises este post, donde hay un par de programas que resvisan el estado de un pin (en el cual hay conectado un boton) y segun se pulse el boton o no, pues encendera o apagara un led, aqui el post:
http://www.todopic.com.ar/foros/index.php?topic=12789.0
En tu caso, es similar, simplemente que en vez de apagar un led o encenderlo, se activara un rele o se desactivara.

De todas formas, tu pides que el boton este conectado al pin B1, y en caso de pulsarse pues ponga en alto el pin B0, yo te aconsejo que lo hagas al reves, aproveches la interrupcion externa del pic, conectes el boton al pin B0 y el rele al pin B1, asi el microcontrolador no hara nada hasta que se pulse el boton, aqui te dejo el codigo de ejemplo con su simulacion en proteus:
Código: C
  1. ////////////////////////////////////////////////////////////////////////////////////
  2. //                                                      VsZeNeR'06             
  3. //                                                  13/Julio/06
  4. //                                              vszener@gmail.com
  5. //
  6. //      Programa:       Activar rele mediante pulsador
  7. //      Version:        0.0
  8. //
  9. //      Dispositivo: PIC 16F877                         Compilador:      CCS vs3.249
  10. //      Entorno IDE: MPLAB IDE v7.40            Simulador:       Proteus 6.7sp3
  11. //
  12. //      Notas: Este programa activa un rele cuando s epulsa un boton, si dicho
  13. //                 boton es nuevamente pulsado, se desactivara el rele.
  14. //
  15. //                 Conexiones:          B0 -> Boton                  
  16. //                                                      B1 -> Rele     
  17. //////////////////////////////////////////////////////////////////////////////////
  18. #include <16f877.h>                                             //pic a utilizar                       
  19. #fuses XT,NOWDT,NOPROTECT,PUT,NOLVP             //ordenes para el programador
  20. #fuses NOBROWNOUT,NOCPD,NOWRT,NODEBUG
  21. #use delay (clock=4000000)                              //Fosc=4Mhz
  22. #use fast_io(B)
  23. #bit RB1=0x06.1                                                 //pin donde estara el rele conectado
  24.  
  25. ///FUNCION DE INTERRUPCION EXTERNA
  26. #INT_EXT
  27. void funcion(){                                 //Interrupcion para activar el rele
  28.         while(!input(PIN_B0));          //elimina rebotes
  29.  
  30.         RB1=!RB1;                                       //activamos/desactivamos rele
  31. }
  32.  
  33. ///PROGRAMA
  34. void main(void)
  35. {
  36.         set_tris_b(0b00000001);                 //puertb salida menos el pin B0 entrada
  37.  
  38.         enable_interrupts(INT_EXT);             //activamos int. externa...
  39.         EXT_INT_EDGE(H_TO_L);                   //..de alto a bajo
  40.         enable_interrupts(GLOBAL);              //permiso de las interrupciones
  41.        
  42.         RB1=0;                                                  //rele off de inicio
  43.  
  44.         for(;;){}                                               //bucle infinito       
  45. }


Suerte!!! :wink:
« Última modificación: 13 de Julio de 2006, 12:32:39 por vszener »
· Nos vemos en los bares!!!!!
· Mi Blog: Aqueronte

Desconectado umalrovi

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 158
    • Aplicaciones Electrónicas
Re: Activar un Relé con el PIC
« Respuesta #2 en: 18 de Julio de 2006, 03:51:28 »
VsZener, muchisssimas gracias por todo, entiendo el programa a la perfección junto con el manual del CCS. Eres un makina, lo siento por preguntar coas tan básicas pero es que me estoy iniciando.

Muchas veces me he puesto a simular circuitos con el proteus, pero me dan errores cuando los pongo en funcionamiento. Estoy bajandome ejemplos que posteas a la gente por internet junto con su simulación y veo como lo haces. En este ejemplo he visto que en la simulación en vez de pasarle el archivo .hex le has pasado el archivo .conf, ¿porqué? Por cierto hay por la red algún manual para iniciarse con el proteus, configuraciones, etc..


Te lo agradezco mucho VSzener estoy aprendiendo bastante, yo programaba hace tiempo en ensamblador y era horrible hasta que descubrí el C :-))

GRACIAS
Aplicaciones Electrónicas
http://www.neoingenia.com/

Desconectado vszener

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2395
Re: Activar un Relé con el PIC
« Respuesta #3 en: 18 de Julio de 2006, 16:14:39 »
Buenas!!! me alegro q te valga el programita con su simulacion!!!, se carga el archivo .cof para poder hacer el debug paso a paso en codigo C, mientras estes simulando el ejemplo, dale al boton de pausa, y veras que te sale una ventana con el codigo la cual podras seguir tu programa paso a paso.

Para configurar el PROTEUS con el compilador, aqui puse un tutorial: [MANUAL] Integrar CCS en PROTEUS


Suerte!!! :wink:
· Nos vemos en los bares!!!!!
· Mi Blog: Aqueronte

Desconectado umalrovi

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 158
    • Aplicaciones Electrónicas
Re: Activar un Relé con el PIC
« Respuesta #4 en: 19 de Julio de 2006, 06:05:28 »
OK perfecto, ya me he mirado el manual y ahora si que me fuciona las simulaciones. Esto es una pasada  :-/ .

Muchisssimas gracias.

Respecto al programa ya lo he simulado y lo he construido y funciona perfectamente. Ahora lo que he terminado hacer es lo mismo pero en vez de activar el relé con un pulsador activarlo mediante la RS232. He hecho un pogramita en Labview mediante un pulsador mando un dato y activo o desactivo el relé.

Si os interesa os lo puedo postear, me ha serviso muchsssssimo la ayuda de VsZenar y de RedPIC, os lo agradezco. Todo lo que desarrolle lo iré posteando aquí y si os interesa lo pondré en la web.

Otra vez os digo GRACIAS por ayudar a la gente que lo necesita.
Aplicaciones Electrónicas
http://www.neoingenia.com/

Desconectado vszener

  • Moderador Local
  • PIC24H
  • *****
  • Mensajes: 2395
Re: Activar un Relé con el PIC
« Respuesta #5 en: 19 de Julio de 2006, 11:22:12 »
De nada hombre, para eso estamos!!! es buena idea que postees lo que hagas, seguramente alguien del foro le sera de utilidad


Suerte!!! :wink:
· Nos vemos en los bares!!!!!
· Mi Blog: Aqueronte