Autor Tema: Temporizador programable  (Leído 9593 veces)

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

Desconectado Helena

  • PIC10
  • *
  • Mensajes: 30
Temporizador programable
« en: 22 de Abril de 2006, 19:11:07 »
Hola chicos,

Primero quiero decirles que soy nueva en esto de los pics pero tengo un gran entusiasmo por aprender pues considero que este tipo de tecnología es bastante interesante.

Quiero pedirles un gran favor y es el siguiente, tengo en mente hacer un temporizador que funcione asi:


tengo 3 leds ubicados en RB0,RB1.RB2 y un pulsador ubicado en RB3 quiero que cada vez que lo oprima aumente en 5 minutos, es decir si lo oprimo 1 vez temporiza 5 min, 2 veces 10 min y 3 veces 15 minutos, y una vez finalizado el tiempo escogido me encienda un led en RB7.

Quiero utilizar un pic16f628 o alguno similar, lo cierto es que no he podido iniciar el código y tampoco se por donde comenzar pues mi bloc de notas ya se esta acabando de tanto borrarlo.

Si alguno de ustedes puede ayudarme sería fantástico, por cierto no he visto en el foro a otra mujer chicos.


Muchas gracias


Helena









Desconectado Chaly29

  • Moderador Global
  • DsPIC33
  • *****
  • Mensajes: 4315
Re: Temporizador programable
« Respuesta #1 en: 22 de Abril de 2006, 20:05:23 »
Hola Helena, felicidades por haberte registrado en el foro, si miras bien en la lista de usuarios podrás ver que hay varias mujeres, entre ellas esta elena2000 y paola09, que son las que más participan, espero que tu también participes con cierta constancia.

Antes de poderte darte una mano necesitaríamos saber que lenguaje de programación usaras (asembler, basic o C), y viendo las especificaciones que nos as dado no nos comentas que método usaras para que el PIC sepa cuando empezar la temporización, ya que solo tenemos 1 pulsador y este lo usas para programar el tiempo a temporizar.

Bueno, nuevamente felicidades, un saludo.

Atte. CARLOS.

La teoría es cuando se sabe todo y nada funciona. La práctica es cuando todo funciona y nadie sabe por qué.

Desconectado olotill

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 249
Re: Temporizador programable
« Respuesta #2 en: 22 de Abril de 2006, 20:16:34 »
Que tal Helena... un gusto..

Pues bien primero decir en que lenguaje vas a trabajar, como veo que posteaste en PBP y Proton, supongo que en uno de los dos... pues bien aca te envio un codigo sencillo para hacer lo que tu quieres...


Código: [Seleccionar]
'****************************************************************
'*  Name    : UNTITLED.BAS                                      *
'*  Author  : [select VIEW...EDITOR OPTIONS]                    *
'*  Notice  : Copyright (c) 2006 [select VIEW...EDITOR OPTIONS] *
'*          : All Rights Reserved                               *
'*  Date    : 22/04/2006                                        *
'*  Version : 1.0                                               *
'*  Notes   :                                                   *
'*          :                                                   *
'****************************************************************
led1 var portb.0
led2 var portb.1
led3 var portb.2
led4 var portb.7
boton var portb.3
x var word    ' variable de control del timer
i var word

x = 3000

main:
    if boton=0 then goto inicio               'al pulsar el boton se iniciara
                                              'el temporizador por default 5 min
goto main

inicio:    
    if boton=0 then inicio               'al pulsar el boton se iniciara
    if x=3000 then high led1
    if x=6000 then high led2
    if x=9000 then high led3
    for i=0 to x                        'aca va a encerarse en el ciclo hasta
        if boton =0 then gosub tiempo
        pause 100                       'que termine el tiempo que necesites
    next
    goto fin
goto inicio

fin:
    low led1:low led2:low led3   'apaga los leds
    high led4                    'enciende el led de fin durante 5 segundos
    pause 5000
    low led4
goto main

tiempo:
    if boton =0 then goto tiempo   'no hace nada hasta q se suelta el boton
    x=x+3000
    if x>9000 then x=3000
    if x=3000 then
        high led1:low led2:low led3:
    endif
    if x=6000 then
        high led2:low led1:low led3
    endif
    if x=9000 then
        high led3:low led1:low led2
    endif
return

Aca te dejo el circuito simulado en proteus.. y los archivos de PBP y el hex

"La imaginación es más importante que el conocimiento"  A. Einstein..

Desconectado Helena

  • PIC10
  • *
  • Mensajes: 30
Re: Temporizador programable
« Respuesta #3 en: 22 de Abril de 2006, 21:42:55 »
Hola Chicos Carlos y olotill,

Que pronta respuesta!... pues yo tengo el PBP se ma olvido decirles y gracias por su oportuna ayuda, lo que dices Carlos es cierto pensaba utilizar un solo pulsador para definir el tiempo 5, 10 o 15 minutos creo que puedo colocar un retardo entre cada tiempo escogido, por ejemplo al pulsar una vez configuro los 5 minutos y espero 1 segundo para que arranque la temporización.

Olotill, el código puede configurar los tres tiempos?... me puedes explicar un poquito como funciona?.

Bueno voy a estudiar el código y hacer el montaje en el board y les cuento luego.


Un gran beso


Helena :g)

« Última modificación: 24 de Abril de 2006, 11:29:28 por LordLafebre »

Desconectado Helena

  • PIC10
  • *
  • Mensajes: 30
Re: Temporizador programable
« Respuesta #4 en: 22 de Abril de 2006, 22:11:38 »
Hola Olotill,

Descargue tu código pero cuando trato de abrirlo con el proteus me da un error, me dice que la version en la que hiciste el diagrama no es compatible con la mía, yo tengo el PROTEUS PROFESIONAL que puedo hacer?.

Saludos

Helena

« Última modificación: 24 de Abril de 2006, 11:31:02 por LordLafebre »

Desconectado Helena

  • PIC10
  • *
  • Mensajes: 30
Re: Temporizador programable
« Respuesta #5 en: 22 de Abril de 2006, 22:34:14 »
Hola a todos,

Les explico mejor lo que quiero, al encender el circuito todos los leds RB0,RB1,RB2 y RB7
estan off, al oprimir el pulsador 1 vez configuro 5 minutos y el led en RB0 se enciende
indicando que lo configure para 5 min y que ha comenzado la temporización, si oprimo 2 veces
el pulsador configuro para 10 minutos y el led en RB1 se enciende pero el led en RB0 tambien
permanece encendido indicando que se ha sumado otros 5 minutos, al oprimir el pulsador 3
veces he configurado para lo 15 minutos y lo 3 leds permanecen encendidos.

Sería muy bueno que los leds se apagaran asi:

Cuando comienza el conteo en 15 minutos y terminan los primeros 5 minutos se apague el
led en RB2, cuando terminen los 10 minutos se apague el led en RB1 y cuando termine el
conteo total se apague el led en RB0 y es entonces cuando se enciende el led en RB7.

No fui muy clara pero esto es lo que quiero hacer, si es posible hacerlo?.



Muchas gracias de nuevo


Helena    :g)

Desconectado olotill

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 249
Re: Temporizador programable
« Respuesta #6 en: 22 de Abril de 2006, 23:56:31 »
Que tal Helena..

Pues bien yo tengo el proteus profesional 6.7 sp3... tal vez tu tengas una version inferior ahi esta el problema... ahora que has explicado un poquito mejor lo que quieres hacer pues habra que modificar un poquito el codigo agregando unas lineas mas...

Pero bueno te comento que hace el programa, asi puedes seguir programando y pues subes el codigo que vayas obteniendo hasta que logres la meta  :-/ :-/ :-/

Por ahora el programa que te puse lo que hace es esto... Al inciar todos los leds estan apagados, si pulsas el boton se prende el led de 5 min, y empieza el conteo.... este conteo es simplemente un lazo for de va desde 0 a 300000 ms, que serian 5 min (300000 ms=300 s=5min), ahora ves que existe un pause de 100 ms dentro del for pues es el que se encarga de detectar si pulsas otra vez el boton que al hacerlo pues el contador subira a 10min ... y se encendera el led de 10 min pero se apagaran los otros (esto es sencillo de modificar).... y asi con los 15 min...

Bueno espero te haya quedado un poco claro y que sigas probando hasta obtener resultados... tengo una pequeña duda respecto al tamaño de la variable i de tipo word, creo que tengo que revisar cual es el limite al que puede llegar aunque si ves en el codigo veras que va de 3000, 6000 o 9000 que esta dentro del rango de WORD...

Bueno un abrazo y espero que todo salga bien  :mrgreen:
"La imaginación es más importante que el conocimiento"  A. Einstein..

Desconectado Helena

  • PIC10
  • *
  • Mensajes: 30
Re: Temporizador programable
« Respuesta #7 en: 23 de Abril de 2006, 10:45:00 »
Buenos días Olotill,

Pues respecto del proteus tengo la version 6.3 SP1 por eso no lo puedo abrir tu me puedes decir donde encuentro la version que tu tienes (por un privado), ya entendi lo que hace tu codigo voy a poner mi cabezita atrabajar hoy para ver que puedo lograr y luego te cuento me voy a esforzar al máximo.

Muchas gracias de nuevo por tu ayuda.

Besos  :g)

Helena
« Última modificación: 24 de Abril de 2006, 11:33:23 por LordLafebre »

Desconectado olotill

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 249
Re: Temporizador programable
« Respuesta #8 en: 23 de Abril de 2006, 13:17:20 »
Que tal Helena...

Puedes bajar una version demo de la misma pagina de labcenter...... Ahora para tutoriales y mucho mas date una vuelta por la pagina de Yoel...

http://proyectosfie.tk

No olvides agradecerle a el todo su esfuerzo  :-/

Un abrazo

"La imaginación es más importante que el conocimiento"  A. Einstein..

Desconectado BLACKPIC

  • Colaborador
  • PIC16
  • *****
  • Mensajes: 129
Re: Temporizador programable
« Respuesta #9 en: 23 de Abril de 2006, 21:33:53 »
hola:
bueno amiga aki te dejo un ej. que hice para ver si tesirve de algo, la cual espero que tesirva...

'****************************************************************
'*  Name    : TEMPORIZADOR.bas                                  *
'*  Author  : BLACKPIC                                          *
'*  Notice  : Copyright (c) 2006 [select VIEW...EDITOR OPTIONS] *
'*          : All Rights Reserved                               *
'*  Date    : 23/04/2006                                        *
'*  Version : 1.0                                               *
'*  Notes   : ESTE EJ. ES PARA LA AMIGA HELENA                  *
'*          : ESPERO QUE TE AYUDE                               *
'****************************************************************
led0 var portb.3 'led de B3 para el conteo
led1 var portb.4 ' led que indica que el conteo fue de 0 a 5
led2 var portb.5  'led que indica que el conteo fue de 0 a 9
boton var portb.0 ' pin de entrade
i var byte        ' i variable para el conteo
 
TRISB=%10000111

inicio:
if boton=0 then
   for i=0 to 4   'el led de B3 contara 5 veces y una ves terminado prende B4.
      led0=1
      pause 250
      led0=0
      pause 250
      high led1 
   if boton=0 then gosub conteo ' cuando presiones 2 veces seguigo va a la etiqueta conteo
      pause 1
      next i
      endif
      goto inicio
      end
conteo:   
      for i=0 to 9 'el led de B3 contara 10 veces y una ves terminado prende B5.
      led0=1
      pause 250
      led0=0
      pause 250
      high led2
      next i
      return
 
como principiante que soy espero verte ayudado en algo y otro cosa cuando le des el segundo pulso (oprimas 2 veces botn), haslo seguidamente y veras como te funciona amiga..

bye... :-/ :-/
Saludo desde Rep.Dom ( BLACKPIC )..
La ciencia es el arte del ensayo y el error, su producto más importante es la razón...

Desconectado Helena

  • PIC10
  • *
  • Mensajes: 30
Re: Temporizador programable
« Respuesta #10 en: 23 de Abril de 2006, 22:38:20 »
Hola chicos,

Primero que todo quiero agraceder a todos pues me han ayudado enormemente, hoy estuve tratando de hacer lo que expuse en mi último post pero nada de nada  :x :x :x se que debo esforzarme más para lograr lo que quiero, el código de olotill  :mrgreen: es muy bueno.

Termino el día con los pics debajo de mi almohada ji ji ji ... se que solo me falta un pasito para lograr lo que quiero basada en el código de olotill.

Besos a todos  :g) :g) :g)

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: Temporizador programable
« Respuesta #11 en: 24 de Abril de 2006, 01:27:19 »
Hola:

Veamos, Helena, que es lo que te hace falta a parte del codigo que ya te puso Fabian? Ahora entre semana estoy mas constante por aqui y te puedo hechar un cable...  :mrgreen:

Desconectado Helena

  • PIC10
  • *
  • Mensajes: 30
Re: Temporizador programable
« Respuesta #12 en: 24 de Abril de 2006, 10:04:22 »
Hola Lord,

El còdigo que posteo olotill trabaja bien pero quiero adicionarle lo que expuse en mi ùltimo post y es:

_____________________________________________________________________________________

Hola a todos,

Les explico mejor lo que quiero, al encender el circuito todos los leds RB0,RB1,RB2 y RB7
estan off, al oprimir el pulsador 1 vez configuro 5 minutos y el led en RB0 se enciende
indicando que lo configure para 5 min y que ha comenzado la temporización, si oprimo 2 veces
el pulsador configuro para 10 minutos y el led en RB1 se enciende pero el led en RB0 tambien
permanece encendido indicando que se ha sumado otros 5 minutos, al oprimir el pulsador 3
veces he configurado para lo 15 minutos y lo 3 leds permanecen encendidos.

Sería muy bueno que los leds se apagaran asi:

Cuando comienza el conteo en 15 minutos y terminan los primeros 5 minutos se apague el
led en RB2, cuando terminen los 10 minutos se apague el led en RB1 y cuando termine el
conteo total se apague el led en RB0 y es entonces cuando se enciende el led en RB7.

No fui muy clara pero esto es lo que quiero hacer, si es posible hacerlo?.

_____________________________________________________________________________

Pues como ves esto es lo que quiero, de antemano gracias por la ayuda que puedas brindarme.



Helena :g) :g)


Hola:

Veamos, Helena, que es lo que te hace falta a parte del codigo que ya te puso Fabian? Ahora entre semana estoy mas constante por aqui y te puedo hechar un cable...  :mrgreen:
« Última modificación: 24 de Abril de 2006, 13:17:07 por Helena »

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: Temporizador programable
« Respuesta #13 en: 24 de Abril de 2006, 16:49:02 »
Hola:

Veamos si es esto lo que necesitas:

Código: [Seleccionar]
led1 var portb.0
led2 var portb.1
led3 var portb.2
boton var portb.3
led4 var portb.7
aviso var porta.0
cont var byte
x var word
i var word

cont=0
i=0
loop:
    if boton=0 then
        cont = cont+1
        select case cont
            case 1
                high led1
                x=3000
            case 2
                high led2
                x=6000
            case 3
                high led3
                x=9000
        end select
        pause 200 'antirebote
        if cont>3 then
            cont=1
            x=3000
            high led1:low led2: low led3
        endif
    endif
    pause 10
    if cont<>0 then
        i=i+1
        if i>100 then
            high aviso
            goto inicio
        endif
    endif
    goto loop

inicio:
    for i=x to 0 step -1                       
        pause 100                       
        select case i
            case 6000
                low led3
            case 3000
                low led2
            case 0
                low led1:high led4
        end select
    next i
end

para que no te demores los 15 min en probarlo, quitale un "0" a todos los valores 3000, 6000 y 9000, sino te cansaras de hacer la prueba ja ja  :mrgreen:

Desconectado LordLafebre

  • Moderador Global
  • DsPIC30
  • *****
  • Mensajes: 3529
    • Micros & micros
Re: Temporizador programable
« Respuesta #14 en: 24 de Abril de 2006, 16:53:56 »
Hola:

Se me olvido algo, puse un led mas en A0 para ver cuando entra al bucle de retardo, ese codigo te puede servir y si necesitas algo mas me dices y te ayudo a hacerlo, pero solo indicaciones... ahora te toca postear codigo a ti   :D

Suerte...!!!  :mrgreen: