Autor Tema: Como activar y desactivar un rele con un mismo pulsador?  (Leído 10191 veces)

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

Desconectado Matadoor

  • PIC10
  • *
  • Mensajes: 41
Como activar y desactivar un rele con un mismo pulsador?
« en: 14 de Abril de 2008, 15:06:25 »
Hola amigos espero no molestar con esta inquietud espero me puedan ayudar con un par de consejos, me preguntaba como seria posible hacer que cuando pulse mun boton se active un rele y se mantenga activado hasta que yo vuelva a pulsar el mismo pulsador casso en el cual el rele dejaria de estar activo, estoy codificando para el pic 16f628A pero estoy teniendo unos problemitas gracias por su ayuda...

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3549
Re: Como activar y desactivar un rele con un mismo pulsador?
« Respuesta #1 en: 14 de Abril de 2008, 16:20:52 »
Hola matadoor, al estar este post aquí debes de trabajar en Basic.
Es muy importante que indiques que Basic usas ya que todos
tienen sus diferencias.
Saludos desde Granada, España.

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: Como activar y desactivar un rele con un mismo pulsador?
« Respuesta #2 en: 14 de Abril de 2008, 17:21:43 »
Hola:

Pues es algo muy simple, necesitas dos pines del pic, ejemplo el RB0 para conectar el pulsador y el RB1 para el relé, configuras el primero como entrada y el segundo como salida, de forma individual o todo el puerto, dependiendo del basic que uses, para PBP puede ser algo como esto:

TRISB=%00000001

Luego solo necesitas declarar una variable:

Cont Var Byte

Esta variable va a ir incrementando su valor dependiendo de como vayas pulsando el botón, así por ejemplo:

Cont Var Byte
TRISB=%00000001
cont=0
inicio:
  If PORTB.0=1 then ' si el pulsante es presionado 
    cont=cont+1
  endif
  if cont=1 then
    high portb.1 'activa el relé
  endif
  if cont=2 then
    low portb.1 'desactiva el relé
    cont=0
  endif
goto inicio

Eso sería todo y lo puedes adaptar perfectamente al basic que estés usando.

Desconectado Matadoor

  • PIC10
  • *
  • Mensajes: 41
Re: Como activar y desactivar un rele con un mismo pulsador?
« Respuesta #3 en: 14 de Abril de 2008, 22:03:27 »
Hola LordLafebre a los tiempos........ gracias por tu ayuda ya la voy a cargar a mi pic, estaba haciendo esto mediante un contador base 2, pero no me agradaba como me estaba quedando, voy a probar tu solucion, y aprovecho para hacerte otra pregunta de pronto te haya pasado, mira estoy trabajando con unos servos hitec standar que los truque y los he centrado guiandome con un control remoto de un avion que tenia, ya he logrado centrarlo al enviar el pulso PWM a un ancho de 1400 desde el pic, con una anchura de 800 tengo el giro continuo en un sentido y a 1400 en el otro sentido, pero cuando envio que primero gire en un sentido y luego al otro sentido el servo se me queda girando solo en el sentido que setie primero, no se por que sucede esto tienes alguna sugerencia y justamente trabajo con el PBP, por cierto me habian comentado que C para pic es bastante potente que piensas tu al respecto? Gracias por tu tiempo y por tu ayuda.

Saludos desde Riobamba.....

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: Como activar y desactivar un rele con un mismo pulsador?
« Respuesta #4 en: 15 de Abril de 2008, 11:49:12 »
Hola:

Pues será mejor que abras otro hilo, lo expliques mejor y seguimos por ahí, respecto al C pues si lo es no entiendo a que viene esa pregunta en este tema.

Desconectado Matadoor

  • PIC10
  • *
  • Mensajes: 41
Re: Como activar y desactivar un rele con un mismo pulsador?
« Respuesta #5 en: 15 de Abril de 2008, 15:02:57 »
Hola, si , no tenia animos de ofender, solo queria conocer alguna opinion sobre "Cpara pics" , sobre los servos ya lo solucione estube trabajando toda la tarde pero al final cambie el pack de baterias con las que estaba haciendo las pruebas y ahora todo va de maravillas con los servos.....

Desconectado Conguito

  • PIC10
  • *
  • Mensajes: 13
Re: Como activar y desactivar un rele con un mismo pulsador?
« Respuesta #6 en: 30 de Abril de 2008, 17:01:02 »
Me voy a entrometer con toda mi ignorancia de novato.......pero, si usa un pulsador, ¿no es más fácil cambiar el estado del pin de salida con la orden TOGGLE?
Y perdón si he dicho alguna burrada, pero creo que sería más simple que usar una rutina IF......THEN
Salu2.

Desconectado KALLITOS

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1256
Re: Como activar y desactivar un rele con un mismo pulsador?
« Respuesta #7 en: 30 de Abril de 2008, 19:39:42 »
Me voy a entrometer con toda mi ignorancia de novato.......pero, si usa un pulsador, ¿no es más fácil cambiar el estado del pin de salida con la orden TOGGLE?
Y perdón si he dicho alguna burrada, pero creo que sería más simple que usar una rutina IF......THEN
Salu2.



Creo seria un poco mas facil como mencionas pero hay que tener en cuenta que despues de la pregunta se deberia colocar una pausa para evitar los rebotes y detectar que se dejo de pulsar el boton, entonces el codigo quedaria asi:


Código: [Seleccionar]
define osc x
TRISB = %00000001
portb.1 = 0
INICIO:
IF portb.0 = 1 THEN
    toggle portb.1
    soltar:
        pause 50
        IF portb.0 = 1 THEN GOTO soltar
ENDIF
GOTO inicio
END
A un microcontrolador hay que sacarle hasta el ultimo byte....(YO)

Cómo puede ser que un pic24EP512 me quede corto de memoria, señores de MICROCHIP saquen pics con más memoria flash

Más de 45 mil lineas de codigo y aun no termino el equipo, asu mare!!

S34ML08G1TFI200 no necesito mas memoria externa.

Desconectado 16f

  • PIC12
  • **
  • Mensajes: 73
Re: Como activar y desactivar un rele con un mismo pulsador?
« Respuesta #8 en: 30 de Abril de 2008, 20:49:15 »
amigos creo que los ejemplos dados  tienen un problema si mantengo el pulsante activo, estara eternemente el rele cambiando de estado, se debe detectar el flanco no el pulso.

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: Como activar y desactivar un rele con un mismo pulsador?
« Respuesta #9 en: 01 de Mayo de 2008, 12:04:16 »
Hola:

Eso se soluciona fácil y puede ser así:

  If PORTB.0=1 then ' si el pulsante es presionado 
    cont=cont+1
    while PORTB.0<>0
    wend
  endif

El momento que es cero, es decir cuando ya no es presionado quiebra el while y sigue el programa.

Desconectado KALLITOS

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1256
Re: Como activar y desactivar un rele con un mismo pulsador?
« Respuesta #10 en: 01 de Mayo de 2008, 14:51:50 »
amigo 16f prueba mi codigo y veras que no sucede  :)
A un microcontrolador hay que sacarle hasta el ultimo byte....(YO)

Cómo puede ser que un pic24EP512 me quede corto de memoria, señores de MICROCHIP saquen pics con más memoria flash

Más de 45 mil lineas de codigo y aun no termino el equipo, asu mare!!

S34ML08G1TFI200 no necesito mas memoria externa.

Desconectado electronando

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 427
Re: Como activar y desactivar un rele con un mismo pulsador?
« Respuesta #11 en: 01 de Mayo de 2008, 16:01:54 »
Código: QBasic/QuickBASIC
  1. Device = 16F628A
  2. XTAL 4
  3. Symbol BOTON=PORTA.0
  4.  
  5. CMCON=7 'porta modo digital
  6. TRISA.0=1
  7. TRISB=0
  8. PORTB=0
  9.  
  10. INICIO1:
  11. IF BOTON=0 THEN
  12.    DelayMS 20
  13.    IF BOTON=0 THEN
  14.       ESPERA1:
  15.       IF BOTON=0 THEN ESPERA1
  16.       PORTB=%11111111
  17.       GOTO INICIO2
  18.    EndIf
  19. EndIf
  20. GOTO INICIO1
  21.  
  22. INICIO2:
  23. IF BOTON=0 THEN
  24.    DelayMS 20
  25.    IF BOTON=0 THEN
  26.       ESPERA2:
  27.       IF BOTON=0 THEN ESPERA2
  28.       PORTB=%00000000
  29.       GOTO INICIO1
  30.    EndIf
  31. EndIf
  32. GOTO INICIO2
  33.  


SERVIDO :mrgreen:
« Última modificación: 01 de Mayo de 2008, 16:47:42 por un Moderador »

Desconectado dogflu66

  • Moderador Local
  • DsPIC30
  • *****
  • Mensajes: 3549
Re: Como activar y desactivar un rele con un mismo pulsador?
« Respuesta #12 en: 02 de Mayo de 2008, 08:37:22 »
Se puede hacer de muchas maneras, una seria, una pulsación corta para ON y una pulsación mas larga para OFF.
Y no menos importante colocar un condensador de un valor no inferior a 1nF en paralelo con el pulsador.

Otro tema es usar "pause" para comprobar si la tecla se pulso durante un tiempo, pero esto rompe el flujo normal
del programa. No tiene mucho sentido, por ejemplo, trabajar a 20Mhz y luego insertar "pause" en el programa ya
que mientras estas ejecutando un "pause" no puedes hacer otra cosa. Se puede utilizar un contador que se incrementa
mientras esta la tecla pulsada y se hace Reset cuando se deja de pulsar y, en el caso que el contador llega al valor
deseado se da como valida la pulsación de la tecla.

PD. Pause = Delay = Wait = etc, segun version de Basic
Saludos desde Granada, España.


 

anything