TODOPIC
Microcontroladores PIC => Lenguaje C para microcontroladores PIC => Mensaje iniciado por: zagoaristides en 29 de Abril de 2010, 16:01:20
-
Bueno, hola gente. Deseo apelar a la experiencia de los que hicieron alguna comunicación inalámbrica a fin de hacer una placa de transmisión y otra de recepción. Los códigos para cada una y la posibilidad de que sean fácilmente utilizables para reciclarlas y aplicarlas en cualquier proyecto.
Los códigos en la página de Microchip que es la que más info contiene al respecto son como todos saben en assembler la mayoría de las veces, y este es el caso.
Los pdf y archivos de ejemplos en assembler se encuentran en el siguiente link:
http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=1406&dDocName=en010060
En el foro de CCS no encontré información ni ejemplos y en este momento no dispongo de demasiado tiempo. Y como dicen el que no tiene tiempo tiene plata (bueno en mi caso no tengo ni uno ni otro :P). Pero estoy dispuesto a regalar unos de estos pares de micros (en la frecuencia que desee) a quien pueda ayudarme a realizar esto que ayudará a todos los que necesitan un enlace inalámbrico sencillo.
Si estoy equivocado y esto ya fue hecho (y yo no lo encontré) espero alguien pueda iluminarme.
Desde ya espero esto prospere.
-
Hola, yo iba a hacer pruebas con los rfpic pero me desanimé porque sólo son transmisores y no pueden comunicarse con otros rfpics.
Ahora tengo un par de MRF49XA y no los he podido probar porque se me olvidó comprar un cristal extra de 10MHz :(
Suerte en tu proyecto ;-)
-
Claro que se puede comunicar con otro Rfpic.. sino, que gracia tendría.. el pic que recibe debe tener las siglas RX en su nomenclatura por ejemplo el RFRXD0920 es un receptor.
-
Claro que se puede comunicar con otro Rfpic.. sino, que gracia tendría.. el pic que recibe debe tener las siglas RX en su nomenclatura por ejemplo el RFRXD0920 es un receptor.
Pero el pic que recibe no puede responder, sólo recibir. :huh:
-
Claro que se puede comunicar con otro Rfpic.. sino, que gracia tendría.. el pic que recibe debe tener las siglas RX en su nomenclatura por ejemplo el RFRXD0920 es un receptor.
Pero el pic que recibe no puede responder, sólo recibir. :huh:
Es así? O sea no son tranceivers? Yo quiero más info. Estuve viendo en ebay y las placas para control con control remoto son baratas, pero eso es solo para control simple, no hay comunicación full duplex. Alguien que sepa más?
-
Según leí, los rfpic no son transceivers.
http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en010385
Sólo sirven para transmitir.
-
hola , yo mr dedico a fabricar radios , y justamente estoy haciendo unos con protocolo de comunicacion que usan DNP3 , pero tu quieres hacerlo por hobby ,o para algun proyecto ?, que distancia pretendes cubrir ? que frecuencias quieres utilizar ? hay una amplia gama de posibilidades , desde algunos metros a decenas de kilometros, podrias especificar cual es tu idea ? tal vez pueda ayudarte
-
Es para hobby, quiero saber que nivel de agua tiene la cisterna de mi casa ya que siempre nos quedamos con la bomba seca y se suele quemar. Pero quisiera que se alimente con una batería el transmisor, ponerle un sensor mpx2010 por ejemplo y que cada tanto me mande la info. Alguna idea? Por cierto, el tema de los componentes que van en las placas (bobinas, capacitores y demàs) tienen idea donde comprarlos? Gracias.
-
te dejo un ejemplo que hicimos el semestre pasado ...
TX
///////////////////////////////////
#include "TX_4550.h"
#include <stdlib.h>
#byte portb = 0xF81
int8 dat1, dat2=0xFF,i,j;
int16 data;
int32 send[18];
int32 start[3]={50,50,50};
char data1[5];
void main()
{
set_tris_b(0xFF);
while (TRUE)
{
i=0;
j=0;
dat1=portb;
data= MAKE16(dat2,dat1);
itoa(data,10,data1);
for(i=0;i<=2;i++)
{
send=start;
}
for (i=0;i<=4;i++)
{
send[i+3]=data1;
}
for(i=0;i<=4;i++)
{
send[i+8]=data1;
}
for(i=0;i<=4;i++)
{
send[i+13]=data1;
}
for (j=0;j<=17;j++)
{
printf ("%c",send[j]);
}
}
}
RX
//////////////////////////////////////////
#include "RX_4550.h"
#include <string.h>
#use standard_io(b)
#define ready PIN_B7
int i,j,k,x,y,z,d;
int32 start[3]={'A','B','C'};
int32 dato[18];
int32 bandera[3];
int32 dat1[5];
int32 dat2[5];
int32 dat3[5];
void main()
{
set_tris_b(0xFF);
while(TRUE)
{
d=0;
do
{
dato[d]=getc();
if(dato[d]=='A')
{
dato[0]= 'A';
d=0;
}
d++;
}
while(d<=17);
//copia la bandera de inicio del dato recibido
for(k=0;k<=2;k++)
{
bandera[k]=dato[k];
}
//copia en dat1 del dato recibido
for(x=0;x<=4;x++)
{
dat1
}
//copia en dat2 el resto de la bandera
for(y=0;y<=4;y++)
{
dat2[y]=dato[y+8];
}
for(j=0;j<=4;j++)
{
dat3[j]=dato[j+13];
}
if(!strcmp(bandera, start))
{
if (!(strcmp(dat1,dat2))&&!strcmp(dat1,dat3))
{
OUTPUT_HIGH(ready);
for(z=0;z<=4;z++)
{
printf("%c",dat3[z]);
}
printf("\r");
}
}
else
{
printf("\f");
printf("Esperando...");
OUTPUT_LOW(ready);
}
}
}