Alarma de casa con pic 12F675 y comunicacion por RF (dudas)

Hola, este es mi primera publicacion en el foro aunque ya hace tiempo lo vengo viendo porque me ha sido muy util. Les cuento que empece un proyecto para entretenerme en el verano que vendria siendo una alarma de casa con una central, control remoto y detectores por IR.

Paso a explicarlo y presentar las dudas:

En general el circuito funciona bien los simule en proteus y me funciono aun que nose si sera problema de mi PC pero al simular con los 3 PICs (central, control y sensor) se traba bastante, la cuestion que lo simule usando wire y diodos para evitar errores en el proteus pero yo quiero pasar el codigo y todo lo que tengo echo a comunicacion por RF con modulos de señales economicos como me han dicho que son los (TWS/RWS)-435.

La comunicacion en el proteus la hice usando la interrupciones por cambio de estado del pin y utilzando codigo binarios (con los estados) y delay_ms(). El tema que nose si se podra hacer lo mismo con RF o si se tiene que usar otra manera.

He leido bastante pero no logro entenderlo del todo por eso queria saber si alguien me podia ayudar con esto y tambien dar recomendaciones para el circuito que toy haciendo y los codigos de los programas de los pics (estan en C).

Aca les dejos el circuito de proteus y los 3 codigos de los 3 pics para que el que quiera ayudarme lo pueda ver! (estan en zip xq no me dejaba subirlo por archivo)

Desde ya muchas gracias!
 

Adjuntos

  • Alarma.zip
    19.4 KB · Visitas: 96
Última edición:
mi problema es que necesito saber si desde un pic12F675 se puede enviar 0 y 1 logicos directamente al pin del TWS o algun modulo Transmisor de RF y estos 0 y 1 recividos por un Reseptor de RF y traducidos directamente por otro pic12F765

El siguiente codigo es el que uso para enviar datos por un pin que seran recivido por el otro, en forma directa, es decir, conectado con un wire(en proteus) anda bien pero nose si se puede hacer lo mismo con la RF.

PHP:
#byte IOC  = 0x96
#bit toggle= 0x05.0
#bit alert = 0x05.1
#bit date1 = 0x05.4

#int_RA
void RA_isr()
{
   #ASM    //Código necesario para prevenir falla en una interrupción por cambio de nivel.
   movf 0x05,0
   clrw
   #ENDASM
  
   if( toggle == 1 )
   {      
      // DIRECCION
      date1 = 1;
      delay_ms(190);
      date1 = 1;
      delay_ms(190);
      date1 = 0;
      delay_ms(190);
      date1 = 1;
      delay_ms(190);

      // DATOS
      date1 = 1;
      delay_ms(190);
      date1 = 0;
      delay_ms(190);
      date1 = 0;
      delay_ms(190);
      date1 = 1;     
      delay_ms(300);
      
      // DEAFULT
      date1 = 0;
   }
}
 
Última edición:
Hola darckbaston, la verdad que no leí el código, desde mi escaso conocimiento te comento que tenes dos opciones. (suponiendo que el pic que usas tiene modulo usart)

La primera es conectar directamente la salida serie del pic a la entrada de datos del emisor y la salida del receptor a la entrada serie del pic. Con esto tenes que tener algunas precauciones, configurar los usart de cada pic para que trabajen a la misma velocidad (baudios), tratá de que los códigos que envíes no sean parecidos porque cualquier ruido puede que te haga lío. Eso serìa lo mas significativo por lo menos desde mi experiencia.

La segunda opción es usar unos codificadores que van entre los micros y los módulos RF: codificador entre pic y emisor (encoder) HT12E y decodificador entre receptor y pic (decoder) HT12D.
Para usar estos módulos no tenes que usar comunicación serie de los pic, ya que tienen varias entradas, las cuales deberán ser excitadas desde las salidas comunes del pic y el solo lo manda en serie al emisor, este lo manda por aire, el receptor lo recibe en serie y se lo pasa al deco y este lo decodifica en las mismas salidas que vos le excitaste en el pic del emisor (hay mucha info sobre ellos en google) Tengo comentarios de que andan muy bien.
No se si fui claro con la explicación, cualquier cosita, encantado de poder ayudarte.
 
Muchas gracias por la respuesta, antes habia leido las dos formas pero no queria compra otros integrados (codificador-decodificador) y queria probar de una manera asi como tu dices con modulo usart pero el problema que me parece que el pic12F675 no tiene modulo usart (o ninguno de 8 patitas o por lomenos no encontre ninguno) y para los pocos pines que uso no tiene sentido usar uno de 18 patitas me parece ami. Ensi si se puede mandar 0 y 1 logicos por el trasmisor directamente desde el pic, seria genial!

Nose si se me entiende! Claro que si no hay una manera posible asi como digo, voy a hacerlo con el HT12E y el HT12D.
 
Hola soy yo de nuevo! Devido a que la publicacion que hice hace unos dias nadie la contesto porque capas que lahice re larga nose :LOL: y no me deja editarlo asique ahora voy con algo mucho mas puntual. ...........

Eso que hiciste va en contra de :

Normas del Foro 2.4 No está permitido iniciar dos o más temas con respecto al mismo tópico o asunto, ni publicar dos o más mensajes cuyos contenidos coincidan dentro de un mismo foro o en vários foros. Dichos temas o mensajes publicados podrán ser eliminados o unidos sin aviso previo o posterior.

No lo repitas.
 
Perdon,queria editarlo al otro pero no me deja entonces lo hice de nuevo :S! No importa no se va a volver a repetir


PD: Si podes borrar el primer post y dejar solo el segundo te lo agradeceria mucho.
 
Última edición:
Atrás
Arriba