TODOPIC

Microcontroladores PIC => Lenguaje Basic para microcontroladores PIC => Mensaje iniciado por: hsen en 03 de Abril de 2006, 06:04:00

Título: Ayuda con temporizador
Publicado por: hsen en 03 de Abril de 2006, 06:04:00
Hola amigos del foro:Hace dos dias hice, o mejor dicho copíe y modifique un ejemplo
posteado por LORDLAFEBRE.(tengo 65 años), pero aunque me cuesta más que a ustedes, pienso
que nunca es tarde  para aprender.
"****************************************************************
"*  Name    : temporiz.BAS                                      *
"*  Author  :  Copiado y modificado por Hugo Senosiain          *
"*  Notice  : Copyright (c) 2006 [select VIEW...EDITOR OPTIONS] *
"*          : All Rights Reserved                               *
"*  Date    : 01/04/2006                                        *
"*  Version : 1.0                                               *
"*  Notes   : Este es un temporizador  para calefaccionar una   *
"*          :resistencia, tiempo total 7 segundos, a los        *
"*          :5 seg.se epaga led testigo.                        *
"*          : Despues de los 7 seg.corta el relay pero destella *
"*          : cada segundo para mantener la resistencia sin     *
"*          :enfriarse, pero sin pasarla de temp.dado que tiene   *
"*          : una tension menor debido a la intermitencia.      *              
"*          :                                                   *
"****************************************************************
   
inicio:
High 1        "enciende relay
high 2        "enciende led restigo
pause 5000    "pausa de 5 segundos
low 2         "apaga led
pause 2000    "pausa de 2 segundos
low 1         "apaga relay
pause 1000    "pausa 1 segundo  
high 1        "enciende relay           (a partir de aqui tengo el problema)
pause 1000    "pausa de 1 segundo
low 1         "apaga relay
pause 1000    "pausa de 1 seg.
high 1        "enciende relay
pause 1000    "pausa de 1 seg
low 1         "apaga relay
pause 1000    "pausa de 1 seg.
high 1        "enciende relay
pause 1000    "pausa de 1 seg.
low 1         "apaga relay        
end    
Creo habrá una manera más facil de producir dicha intermitencia.
talvez con un loop o algo asi, pero no se como hacerlo y asignarle un tiempo
determinado,ya que como está ahora y quisiera que funcionara 30 o 40 segundos
tendria que teclear muchas veces.
Desde ya, muchas greacias por vuestra posible ayuda.

Un saludo desde Rocha Uruguay.
Título: RE: Ayuda con temporizador
Publicado por: josemyzm en 03 de Abril de 2006, 08:23:00
Hola hsen, realmente es muy facil usar PicBasic pero no te preocupes, siempre cuesta un poquito ver lo que hay disponible.

Te modifico la parte de encendido/apagado intermitente, tal y como te muestro ahora se quedaría toda la vida apagandose/encendiendose cada segundo.


Codigo:

inicio:
High 1 "enciende relay
high 2 "enciende led restigo
pause 5000 "pausa de 5 segundos
low 2 "apaga led
pause 2000 "pausa de 2 segundos
low 1 "apaga relay



bucle:

pause 1000  "pausa 1 segundo
toggle 1 " cambia estado del rele

goto bucle

end




Si lo que quieres es que estas intermitencias del rele duren un periodo de tiempo determinado solo hay que cambiar    bucle:  y  goto bucle  por  la instrucción  FOR ... NEXT, con la que indicaras el numero de veces que quieres que se repita algo.

Algo bueno al principio es mirar la ayuda del programa para ver las instrucciones que tenemos disponibles, aunque solo sea por encima, (son pocas).

Un saludo.
Título: RE: Ayuda con temporizador
Publicado por: josemyzm en 03 de Abril de 2006, 08:32:00
perdón, se me olvidaba:
bucle: - indica un punto dentro del programa. Le hemos llamado bucle pero podemos dar cualquier otro nombre.

Goto bucle - Indica al programa que salte al punto bucle

El efecto es que repetimos indefinidamente esa parte del programa.

Título: RE: Ayuda con temporizador
Publicado por: hsen en 03 de Abril de 2006, 09:45:00
[cita title=Escrito originalmente por josemyzm]perdón, se me olvidaba:
bucle: - indica un punto dentro del programa. Le hemos llamado bucle pero podemos dar cualquier otro nombre.

Goto bucle - Indica al programa que salte al punto bucle

El efecto es que repetimos indefinidamente esa parte del programa.

[/ Gracias Josemynz:Creo que eso justamente es lo que quería seber.
Esta noche voy a leer el manual sobre la instruccion FOR...NEXT, y te cuento como
me vá, creo que bien por que fuiste muy claro.(Hace 2 o tres meses que estoy ojeando
el foro,y me gustó mucho).Ese fue mi primer programa.

Saludos desde Rocha-Uruguay.  cita]
Título: RE: Ayuda con temporizador
Publicado por: josemyzm en 03 de Abril de 2006, 12:05:00
Un placer, espero que consigas dominarlo.

Un saludo.
Título: RE: Ayuda con temporizador
Publicado por: hsen en 04 de Abril de 2006, 12:03:00
Escrito originalmente por josemyzm
perdón, se me olvidaba:
bucle: - indica un punto dentro del programa. Le hemos llamado bucle pero podemos dar cualquier otro nombre.

Goto bucle - Indica al programa que salte al punto bucle

El efecto es que repetimos indefinidamente esa parte del programa.


Hola josemynz y otros amigos del foro, despues de leer en el manual pbp
sobre la instruccion FOR...NEXT crei entender que mi programa sería así:


high 1           "enciendo relé
high 2           "enciendo led
pause 5000       "pausa 5 segundos
low 2            "apago led
pause 2000       "pausa 2 segundos
low 1            "apago relé
for i=1 to 15    "de aqui en adelante pretendo
pause 1000       "hacer un loop para activar relé
toggle 1         "una vez cada segundo 15 veces,pero
next i           "no me funciono, da error de sintaxis
end              "en lineas 18 y 21 al tratar de compilar...?
Título: RE: Ayuda con temporizador
Publicado por: LordLafebre en 04 de Abril de 2006, 12:37:00
Hola:

Tienes que declarar la variable que estas utilizando.

Ej.

i var byte

suerte...!!! Sonrisa Gigante
Título: RE: Ayuda con temporizador
Publicado por: hsen en 04 de Abril de 2006, 15:16:00
Hola LORDLAFREBLE:Gracias por tu respuesta, intentare solucionarlo .
He seguido tus post, y en base a eso hice mi primer pequeño programa. hace unos dias. Lo estoy tratando de mejorar, lo cual me ayuda a aprender.

Saludos desde Rocha -(Uruguay
Título: RE: Ayuda con temporizador
Publicado por: Mario en 04 de Abril de 2006, 18:51:00
Hola Hsen.

Yo hice alguna vez un control parecido para un compañero de la escuela.

Menciona qué es lo que quieres hacer (ya se que está escrito al principio del foro) de una manera manera como esta:

Mi amigo quería:

1.- Prender un LED.
2.- Accionar un relevador durante 10 minutos.
3.- Apagar el LED.
4.- Apagar el relevador durante 2 ½ minutos.
5.- Hacer todo de nuevo.

Si puedes colocar la idea quizá pueda ayudar a realizar el programa.
Título: Re: Ayuda con temporizador
Publicado por: hsen en 08 de Abril de 2006, 07:22:49
Hola:Gracias a la colaboracion de los muchachos del foro, hice funcionar mi pequeño programa(la mayor parte es copiado
y adaptado de ejemplos posteados en este foro)
Tambien gracias, Reppuken por que me ayudo en privado,  cuando  el foro estaba cerrado.
No sé si debo postear el ´codigo para que sea un ejemplo más o dejar de dar tnta lata.

Un saludo, desde Rocha (Uruguay)
Título: Re: Ayuda con temporizador
Publicado por: LordLafebre en 08 de Abril de 2006, 11:20:40
Hola:

hsen, Si gustas puedes postear el codigo, y tranquilo que aqui nadie da "lata"  :D, todos estamos aqui para aprender... :mrgreen: