TODOPIC

FORO TÉCNICO => Telefonía, GPS y Microcontroladores => Mensaje iniciado por: Von_Fausto666 en 26 de Marzo de 2008, 19:46:13

Título: PIC16F877A Y GENERADOR DTMF HT9200B
Publicado por: Von_Fausto666 en 26 de Marzo de 2008, 19:46:13
Hola buen dia les comento, hice un marcador telefonico por dtmf utilizando un pic16f877a y el ht9200b, el acople a la linea telefonica lo hago mediante un puente de diodos y simulo que el telefono esta descolgado colocando una resistenica de 580 ohm entre las terminales ring y tip de la linea, ya probe el circuito descolgando el telefono se escuchan bien clarito los numeros que se van marcando, sin embargo no se realiza la llamada, en este punto estoy atorado, alguien tiene alguna sugerencia.

SALUDOS!!!!!!!!!!1
Título: Re: PIC16F877A Y GENERADOR DTMF HT9200B
Publicado por: RICHI777 en 26 de Marzo de 2008, 21:24:49
Para realizar una llamada es necesario esperar el tono de invitacion a discar, si no lo detectas, realiza un delay de 1 o 2 segundos antes de empezar a discar.
Saludos !
Título: Re: PIC16F877A Y GENERADOR DTMF HT9200B
Publicado por: flacoclau en 26 de Marzo de 2008, 21:29:59
Otro tema es que cuando tomes la línea y estés por enviarle los datos, recién le des el ENABLE al ht9200, sino mientras mantenlo con deshabilitado porque te puede tomar cualquier ruido como un pulso de reloj y ya se te cambiaron los datos.
Título: Re: PIC16F877A Y GENERADOR DTMF HT9200B
Publicado por: poseidon20 en 27 de Marzo de 2008, 00:25:55
Von_Fausto666, como estas, si no fuera molestia, si pudieras poner el esquematico que usas para acoplar el HT9200b con la linea telefonica, ya que en la mayoria de proyectos de este mismo tipo usan un transformador chico.
Título: Re: PIC16F877A Y GENERADOR DTMF HT9200B
Publicado por: micro_cadaver en 27 de Marzo de 2008, 02:20:22
como estas disparando los tonos dtmf? usas el off dtmf entre los tonos o lo dehabilitas con el CE.
Título: Re: PIC16F877A Y GENERADOR DTMF HT9200B
Publicado por: Von_Fausto666 en 28 de Marzo de 2008, 13:16:18
HOla buen dia
dusculpen el no haber seguido el dia de ayer el hilo del tema ya que estube fuera de la ciudad.

sobre el software para controlar el ht9200b, se marca el numero al presionar un boton que esta conectado al pin B0 del pic, los datos (pines D0->d3 del ht9200b) se manejan de forma paralela mediante los pines del pic C0->C3 . el CE del ht9200b se controla mediante el pin E0 del pic.

cada vez que se marca un numero primero se manda el digito a las terminales D0->D3 del ht9200b, se hace un delay y luego se manda el CE, se hace una delay y se desabilita el CE.

en mi caso solo marco 4 digitos ya que estoy marcandole al comapeñero que tengo a un lado de mi.

adjunto el software para que quede mas claro, tambien el diagrama (oupsss ,me falto ponerle en el dibujo la resistencia de 580 ohm entre ring y tip para simular el descolgado de la linea).

#include<16f877a.h>
//#device ICD=TRUE
#use delay(clock=20000000)
//#use i2c(MASTER, SDA=PIN_C4, SCL=PIN_C3)
//#use rs232(baud=9600, xmit=PIN_C6, rcv=PIN_C7)
#fuses HS, NOWDT, NOLVP, NOBROWNOUT, PROTECT
#include <string.h>
//#include <lcd.c>
//#include <input.c>

#define CE PIN_E0          //ENABLED DEL HT9200
#define DIAL PIN_B0        //MARCA NUMERO
#define RE PIN_E1          //ACTIVA RELAY CONECTADO A LA LINEA

void main(void)
{
   int i;
   int num[4]={4,1,0,6};
   set_tris_e(0);
   set_tris_c(0);
   set_tris_b(0xff);
   port_b_pullups(TRUE);
   output_e(0x01);
   delay_ms(3000);
   while(true)
   {
      //////////////////////////////////
      if(!input(DIAL))   //SECUENCIA 1
      {
      //   delay_ms(5);
      //   output_high(RE);
         delay_ms(10);
         for(i=0; i<4; i++)
         {
            output_c(num);
            delay_ms(80);
            output_low(CE);
            delay_ms(150);
            output_high(CE);
            delay_ms(300);
         }
         //output_low(RE);
      }
      //////////////////////////////////
   }
}




Título: Re: PIC16F877A Y GENERADOR DTMF HT9200B
Publicado por: Von_Fausto666 en 28 de Marzo de 2008, 13:17:59
aqui esta el esquematico, espero haberlo puesto bien sino voy a tener que averiguar como publicarlo
Título: Re: PIC16F877A Y GENERADOR DTMF HT9200B
Publicado por: Von_Fausto666 en 28 de Marzo de 2008, 13:37:38
ouchhhhhhhhh habia unos errores en el dibujito que hice aqui estan corregidos, le agregue la resistencia de 560 ohm entre ring y tip y corregi el error del dibujo para la conexion del oscilador, como les comente descuelgo el telefono y espero al pulso de marcacion, luego presiono el boton en el pin B0 del pic, se escucha como se marca el numero pero al final no pasa naaaaaaaaaaaaaaaaaaa 

por cierto olvide corregir el pin 7 y 8 en el dibujo, la conexion esta bien lo que pasa es que al agregar los numeros de los pines al dibujo dibuje el 7 ene l 8 y el 8 en el 7 pero la conexion si esta bien echa, el pin 7 del ht9200b va al pin C1 del pic y el pin 8 del ht9200b va al pin C2 del pic
Título: Re: PIC16F877A Y GENERADOR DTMF HT9200B
Publicado por: micro_cadaver en 28 de Marzo de 2008, 15:18:36
primera observacion: el cristal que yo uso para el ht9200 es 3.579545 MHz, veo q pones 3.58KHz. esta seguro de ese valor?
Título: Re: PIC16F877A Y GENERADOR DTMF HT9200B
Publicado por: Von_Fausto666 en 28 de Marzo de 2008, 15:33:10
uso el de 3.579545 KHz pero escribi 3.58KHz ke pal caso de redondeo es lo mismo, te comento agregue  teclado de 4x3 y de esta manera al marcar los numeros 1 por 1 si funciona por lo que supongo ke la bronca debe de ser un retardo, porque el problema unicamente se presenta cuando programo que mande todo el chorizero de numeros seguiditos por medio de un boton.

voy a hacer una nueva rutina con nuevos retardos y si funciona les agrego la correccion al foro
Título: Re: PIC16F877A Y GENERADOR DTMF HT9200B
Publicado por: micro_cadaver en 28 de Marzo de 2008, 16:08:16
KHz? estas seguro en el datasheet menciona el cristal en MHz.

otra cosa, en tu programa no entiendo como usas la variable num

       for(i=0; i<4; i++)
         {
            output_c(num);
            delay_ms(80);
            output_low(CE);
            delay_ms(150);
            output_high(CE);
            delay_ms(300);
         }


output_c(num) el compilador que entiende por esto? me parece que esta incorrecto pues "num" es un array de 4 elementos y tienes que especificar que elemento que vas a sacar. supongo que lo queiras hacer con el indice i del bucle for, me parece que seria asi la sintaxis.

Código: C
  1.          for(i=0; i<4; i++)
  2.          {
  3.             output_c(num[i]);
  4.             delay_ms(80);
  5.             output_low(CE);
  6.             delay_ms(150);
  7.             output_high(CE);
  8.             delay_ms(300);
  9.          }
  10.  
saludos. nos comentas tus avances.


edito: utiliza esta herramienta del geshi porque en modo texto normal se desaparece lo que pongas entre corchetes.
Título: Re: PIC16F877A Y GENERADOR DTMF HT9200B
Publicado por: Von_Fausto666 en 28 de Marzo de 2008, 17:49:48
jejeej tienes razon al copiarlo al foro lo copie mal, es:

output_c(num);

en este momento ando ocupadon con algunas cosas del trabajo pero en cuanto tenga un break hago nuevas pruebas y si son buenas noticias les mando mis conclusiones
Título: Re: PIC16F877A Y GENERADOR DTMF HT9200B
Publicado por: aitopes en 28 de Marzo de 2008, 18:24:11
jejeej tienes razon al copiarlo al foro lo copie mal, es:

output_c(num);

en este momento ando ocupadon con algunas cosas del trabajo pero en cuanto tenga un break hago nuevas pruebas y si son buenas noticias les mando mis conclusiones

Hola Von_Fausto666!

Es por esto que te indicaban el tema de usar la herramienta del geshi. Mira, tu escribes

output_c(num[ i ] );  (sin los espacios)

Y se ve como

output_c(num);

Pero con geshi se ve correctamente:

Código: C
  1. output_c(num[i]);

Saludos!
Título: Re: PIC16F877A Y GENERADOR DTMF HT9200B
Publicado por: Von_Fausto666 en 07 de Abril de 2008, 18:07:15
ya lo hice funcionar!!!!!!!!1111    :-/
Título: Re: PIC16F877A Y GENERADOR DTMF HT9200B
Publicado por: micro_cadaver en 07 de Abril de 2008, 19:19:09
que bien, y cual fue el problema y como lo solucionastes?   :-/ saludos
Título: Re: PIC16F877A Y GENERADOR DTMF HT9200B
Publicado por: Von_Fausto666 en 07 de Abril de 2008, 19:23:17
pues bien facil lo unico que hice fue leer con atencion los specs del ht9200 y ahi vi mi error, tambien hice una modificacion al circuito que simula el swich hook porque eso de andar poniendo relevadores con resistencias pa puentear las lineas de tip y ring me parece una jalada (ouppppsssssss hay disculpen el lenguage)
Título: Re: PIC16F877A Y GENERADOR DTMF HT9200B
Publicado por: micro_cadaver en 07 de Abril de 2008, 20:53:38
q significa jalada ?  :5}
Título: Re: PIC16F877A Y GENERADOR DTMF HT9200B
Publicado por: Von_Fausto666 en 08 de Abril de 2008, 10:50:47
sorry por la mala explicacion, el punto es que como no tenia a la mano relevadores para poder hacer el circuito del switch hook y me daba flojera ir a comprar unos, opte por otra opcion
Título: Re: PIC16F877A Y GENERADOR DTMF HT9200B
Publicado por: tinchosalamero en 18 de Julio de 2008, 11:19:37
von fausto, podes poner como quedo el esquematico al final

muchas gracias
Título: Re: PIC16F877A Y GENERADOR DTMF HT9200B
Publicado por: Von_Fausto666 en 18 de Julio de 2008, 19:09:40
hola tincho, si de echo lo subire a peticion del publico (weno tu as sido el unico que lo a pedido), le agregue al circuito algunas otras monerias y funciones, lo termine ya ace algun tiempo, por lo que tengo que buscar en donde deje los esquematicos y el codigo fuente, por lo que creo que asta el proximo dia lunes lo subire ya que el dia de hoy estoy en el trabajo y pues el fin de semana estare ocupado, pero a partir del lunes ire publicando todo.

SALUDOS!!!   8)
Título: Re: PIC16F877A Y GENERADOR DTMF HT9200B
Publicado por: tinchosalamero en 18 de Julio de 2008, 21:01:09
Bueno fausto, muchas gracias lo voy a estar esperando, de mas esta decirte que si necesitas algo no hay problema

gracias
Título: Re: PIC16F877A Y GENERADOR DTMF HT9200B
Publicado por: ITRO en 02 de Enero de 2009, 22:45:47
Que tal Von_Fausto666, me podrias pasar el diagrama de tu marcador telefonico?, consegui uno pero no lo puedo hacer funcionar.

Saludos :-)
Título: Re: PIC16F877A Y GENERADOR DTMF HT9200B
Publicado por: Marck_21 en 26 de Abril de 2010, 02:05:16
Ya eh logrado hacer funcionar tanto el decoder y  el generador de tonos. en cuanto al acople a la linea ya eh encontrado como hacerla sin necesidad de colocar un tranformador con relacion 1:1 como lo piden varios diagramas por la red. es muy sencillo y barato el acople si alguien aun le interesa por aqui andamos.

QUe buen foro.. :-/
Saludoss
Título: Re: PIC16F877A Y GENERADOR DTMF HT9200B
Publicado por: mga78 en 13 de Mayo de 2010, 19:01:29
Hola Marck, puedes poner tu esquema para el acople sin transformador? GRACIAS.
Título: Re: PIC16F877A Y GENERADOR DTMF HT9200B
Publicado por: cj_carli_13 en 02 de Septiembre de 2010, 17:34:33
hola amigo marck_21 me podrias poner el diagrama del ckto por favor en verdad nos serviria mucho
Título: Re: PIC16F877A Y GENERADOR DTMF HT9200B
Publicado por: lalolk12 en 08 de Marzo de 2011, 00:07:05
que tal amigo, podrias poner el esquema como ha quedado al final..?? lo que pasa es que quiero hacer algo similar para una alarma que es un proyecto que tengo que presentar en la escuela... te lo agradeceria muchooo :D    sería de muchisima ayuda XD
Título: Re: PIC16F877A Y GENERADOR DTMF HT9200B
Publicado por: hypnos00 en 03 de Julio de 2011, 19:02:33
alguien que me ayude ando perdido con eso del HT9200B si estas por ai vonfausto manifiestate para que me ayudes porfavor jeje, saludos a todos
Título: Re: PIC16F877A Y GENERADOR DTMF HT9200B
Publicado por: Marck_21 en 26 de Julio de 2011, 01:06:47
Hola! Un poco tarde pero no sabia que había respuestas xD pense qeu llegaba alguna especie de notificación al correo, buen en fin para quien aún esté interesado en el acople de la señal del generador de tonos a la línea telefónica sin transformador 1:1 por aqui adjunto el esqumático que utilice... es de lo más sencillo con tan solo dos capacitores un transistor. Saludos!!

(http://i250.photobucket.com/albums/gg266/malfeitorXVII/Esquematico.jpg)