Curso de programación de PIC en PICBasic Pro

Si lo que quieres es hacer un Roger Beep, mira el proyecto que adjunto.
Es un Roger Beep pero de Tonos Quindar
La base del sistema para el control del PTT te puede servir.
 

Adjuntos

  • 12F629 Quindar Roger Beep.rar
    31 KB · Visitas: 38
Hola amigo,tengo una pregunta sobre el Hex de tonos del roger beep que expones,me puedes decir como se puede simular dichos tonos si es que se puede y de cuantos tonos consta el Hex?.
No tengo la suerte de saber programar,pues mi idea seria incorporar tonos originales a dicho pic.
Un saludo

Citar
Denunciar
 
Posiblemente tenga algo que agregar el tocayo. Si te refieres al último archivo subido(que está completo).

Al activar el PTT genera un tono de 2.525Hz durante 250 ms(1/4 seg) y al soltar el PTT 2.475Hz durante el mismo tiempo.

be.JPG
Sacado del archivo subido.

Simular, esta incluido el archivo con el esquema para hacerlo(DSN) en el Ares de Proteus en el mismo archivo ".rar" subido.

be1.JPG
 
Última edición:
Gracias de nuevo Ricbevi,pero no es lo que busco,comento hay un enlace en youtube al cual me dirigí y a un amigo del foro de muchos años al cual estoy muy agradecido(Moises Calderon)me gustaría saber si entre todos este llamador al cual me refiero,ya que esta diseñado solo para principio y no al soltar PTT que es lo que busco y personalizar el sonido que yo quiera.Mis conocimientos son los justos veo construyó y sueldo componentes pues es una pasión cacharrear.Bueno no me alargo mas pongo el enlace del youtuber.
Saludos
 
Última edición:
Buenas noches amigos de Foros de electronica, si me estoy metiendo en un tema que ya se a tocado en esta pagina, por favor me disculpan y a la vez ruego que me deriven a ese tema, es que no se la verdad con que nombre encontrar el problema que quiero solucionar.

Estoy programando en pic basic pro y quiero darle RUN a un programa, que anteriormente eh configurado dos variables con tiempos diferentes, como por ejemplo:

tiempo 1 = 5min 10 seg
tiempo 2 = 10 min 20seg

y cuando le doy RUN, los tiempos empiezan a descernder, y cuando el tiempo1 llega a 0, el tiempo 2 continua hasta llegar a cero tambien.

eh hecho una pruebas y lo que me pasa es que cuando eñ primer timpo llega a cero el segundo tiempo sigue bajando y el primer tiempo baja a 59:59 y no se posiciona en 0.

espero no molestar con mi pregunta tonta.

gracias
 
Ya encontré la solución de el por que decrementa de 0 a 55,54,53 y no como debe ser: 0,59,58,57,:
es en una comparación :
minut=minut-1
if minut = 255 then mint = 59
en el 255 esta la clave. Gracias.
Ahora estoy en cómo hacer para que el primer tiempo cuando llega a cero se quede estático y el otro tiempo 2 Llegue hasta cero también.

Pude avanzar, pero no logro detener en cero el primer tiempo, donde estará mi error verdad?. Allí dejo el programa pbp e isis esquema. Gracias
 

Adjuntos

  • preguntas.rar
    8.8 KB · Visitas: 16
Te adjunto un ejemplo, pero sólo con 4 CD4094. Ya posteriormente lo podrás expandir.

Nota: Por ser simulación, no usé resistencias para los displays.

En el ejemplo que envias, me esta dando problemas al momento de trasladar tu ejemplo a mi pic 18f2550.

Sobre todo por esta línea en negrita.

Display:
x Var Byte
Index Var Byte
Numero Var Byte

For x = 0 To 3
Index = R:LOL:ata[x] -48 ; Convertir el dato a número.
; Obtener el número correspondiente.
LookUp Index,[63,6,91,79,102,109,124,7,127,103], Numero
; Enviar cada número a los registros de desplazamiento
ShiftOut pin_Data, pin_Clock, MSBFIRST, [Numero]
Next x
 
No mencionas qué problema, pero supongo que todo se debe a las configuraciones del PIC18F2550.
Este PIC tiene algunos registros especiales que sin los conocimientos adecuados el programa no funcionará correctamente.
18F2550 y 4 CD4094.jpg
Adjunto el mismo programa pero modificado para el PIC18F2550 (FOsc = INTOSC @ 8 MHz.)
 

Adjuntos

  • 18F2550 CD4094 DSP 7 segs.rar
    23.5 KB · Visitas: 21
Hola, como andan? Tengo una consulta... Estoy haciendo unos calculos de frecuencia respiratoria y me estan fallando las pocas matematicas basica que me permite PBP...
La formula original es:

Enriquecido (Código BB):
;ie=Inhalacion y Exhalacion
;delay_i_e = retardo de inhalacion y exhalacion
;delay_pausa=Tiempo muerto entre periodo de Inhalacion y Exhalacion

periodo = 600/frecuencia   ; 10 minimo - 30 maximo
i_e = periodo *0,6   
delay_i_e=i_e * 1000/100 ; me entrega el valor en milisegundos
pausa=periodo *0, 4           
delay_pausa=pausa * 1000 / 100  ; me entrega el valor en milisegundos

Como no puedo trabajar directamente con esas lineas, opere multiplicando por 10 y luego dividiendo de esta forma:

Enriquecido (Código BB):
;ie=Inhalacion y Exhalacion
;delay_i_e = retardo de inhalacion y exhalacion
;delay_pausa=Tiempo muerto entre periodo de Inhalacion y Exhalacion

periodo = 600/frecuencia   ; 10 minimo - 30 maximo
i_e = periodo *6   
delay_i_e=i_e * 10000/1000 ; me entrega el valor en milisegundos
pausa=periodo *4           
delay_pausa=pausa * 10000 / 1000  ; me entrega el valor en milisegundos

El tema esta en que no me da un resultado estable para hacer los tiempos de los periodos... esta desbordando? Alguien ve el error aqui? se les ocurre aguna manera de hacerlo.

Tengo un error... Es 60/frecuencia....
Igual no me funciona
 
Última edición por un moderador:
Hola. ¿Qué tal, Torres? A ver si puedo ayudar un poco con mi poco conocimiento que tengo.
Entiendo que en la primera línea de tu código:
Periodo = 600 / Frecuencia ; 10 mínimo - 30 máximo
En esta línea "Periodo" toma un valor como mínimo de 10 y un máximo de 30
Si es así entonces "Frecuencia" toma un valor comprendido entre 20 y 60
1- 20 para un periodo máximo igual a 30, ya que al dividir 600 / 20 = 30 máximo.
2- 60 para un periodo mínimo igual a 60. 600 / 60 = 10 mínimo.

Espero haber ayudado y que sea lo que pude comprender.
 
Hola amigo, anteriormente comenté que tenia un error de tipografia; Nones 600, es 60. Vamos a otro concepto para entender mejor lo que se necesita calcular.
Interpretemos como periodo a la accion de Inhalar y Exhalar. La cantidad de sucesiones dentro de 60 segundos, la definiriamos como la frecuencia respiratoria. Hasta aqui seria todo facil, peronla mecanica respiratoria tiene otro punto mas a tener en cuenta: " el tiempo muerto", que basicamente es cuando completamos un periodo. Con esto podemos entonces definir que la inhalacion y exhalacion absorbe del tiempo total un 70% aproximadamente, y el 30% y un poco menos tambien, elntiempo muerto.
El calculo que se esta queriendobhacer, es para obtener los tiempos basicos (tiempo inhala - tiempo exhala - tiempo muerto) para determinada frecuencia respiratoria seleccionada. Esto seriabtan solo un pequeño avance en el proyecto, ya que esta señal despues iria con un sincronismo que lo ejerce el mismo cuerpo y se sensa con in sensor de presión. Te agradezco tu participación
Acá alguien implementa la misma formula
 
Última edición:
Atrás
Arriba