RF modulo (XY MK 5V)+ Pic 18F4550

Hola a todos! tengo el siguiente problema, poseo modulo emisor/receptor RF XY MK 5V(
images
)

y lo curioso es lo siguiente:

logre que envie el estado de pulsadores (presionados o no) conectados al PIC emisor y que el PIC receptor prenda los LEDS correspondientes.
Ahora cuando en lugar de enviar "infinitamente" un byte (8bits, estado puerto entrada), quiero enviar un string (char *) no funciona. Ahora bien, quito los modulos y conecto un cable entre los pines TX y RX de los PICs y anda como deberia.

¿Que puede estar pasando?


PD: tengo el siguiente proyecto PC->PIC PIC->PC por USB HID y una app de C#.
 
puede ser el ancho de banda de los modulos

baja la velocidad de los baudios hasta conseguir algo estable, cuando tu mandas un char en el osciloscopio se ve bien la forma de onda pero cuando envias un string se ve aparente mente igual pero el tiempo de STOP y START se ve disminuido y se empiezan a perder datos.

no se que velocidad estes manejando pero bajala hasta poder hacer un enlace
 
puede ser el ancho de banda de los modulos

baja la velocidad de los baudios hasta conseguir algo estable, cuando tu mandas un char en el osciloscopio se ve bien la forma de onda pero cuando envias un string se ve aparente mente igual pero el tiempo de STOP y START se ve disminuido y se empiezan a perder datos.

no se que velocidad estes manejando pero bajala hasta poder hacer un enlace

Estaba trabajando a 4800bps. Voy a intentar con menos. Muchas gracias por responder !!!
 
Hola a todos!!! Gracias por sus respuestas. les cuento un poco, cambie la velocidad a 300 baud. La cosa curiosa es la siguiente, dentro del while(true):

Código:
if(usb_enumerated())
{
            i = 'z';
				
            if(usb_kbhit(1))
            {
               receive(recibe);
               send(recibe);	   
               i = recibe[2];
	    }
			
	   putc(i);
}
es decir que deberia enviar el ASCII de la 'z' o un caracter de lo que reciba por USB. Si conecto el TX con RX de los PIC's recibo esa 'z' , ahora bien si conecto los módulos recibo '/', ademas la distancia es 10cm como mucho entre ellos.
Cosa rara!

No se si tendra que ver que estoy haciedo las pruebas sobre la misma PC (distintos puertos USB).
 
es que no se si estas conciente de la trama

cuando tu envias un dato por cable es logico que viene casi limpio con algo de ruido pero en los modulos RF hay mucho ruido.

debes hacer un sistema redundante donde envias ese mismo dato digamos 4 veces y comparar que esas 4 veces son iguales si no se descarta.

ademas que si tu pones 2 velocidades diferentes veras caracteres raros.
eso pasa pues puede ser que se pierda un bit o cosas asi relacionadas al ruido.

por que no usas modulos blue tooth eso si te seriviria
 
Hola ! Gracias por las respuestas. Todavia no logro comprender cual es la diferencia en implementar codificacion Manchester ni como adaptarlo a mi proyecto.
 
Sacado de wikipedia:

Como ventajas principales se pueden destacar las siguientes:

La codificación Manchester o codificación bifase-L es autosincronizada: provee una forma simple de codificar secuencias de bits, incluso cuando hay largas secuencias de periodos sin transiciones de nivel que puedan significar la pérdida de sincronización, o incluso errores en las secuencias de bits. Por ello es altamente fiable.
Detección de retardos: directamente relacionado con la característica anterior, a primera vista podría parecer que un periodo de error de medio bit conduciría a una salida invertida en el extremo receptor, pero una consideración más cuidadosa revela que para datos típicos esto llevaría a violaciones de código. El hardware usado puede detectar esas violaciones de código, y usar esta información para sincronizar adecuadamente en la interpretación correcta de los datos.
Esta codificación también nos asegura que la componente continua de las señales es cero si se emplean valores positivos y negativos para representar los niveles de la señal, haciendo más fácil la regeneración de la señal, y evitando las pérdidas de energía de las señales.

Las principales desventajas asociadas son las siguientes:

Ancho de banda del doble de la señal de datos: una consecuencia de las transiciones para cada bit es que el requerimiento del ancho de banda para la codificación Manchester es el doble comparado en las comunicaciones asíncronas, y el espectro de la señal es considerablemente más ancho. La mayoría de los sistemas modernos de comunicación están hechos con protocolos con líneas de codificación que persiguen las mismas metas, pero optimizan mejor el ancho de banda, haciéndolo menor.

La implementación la vas a tener que investigar, pero antes vas a tener que tener bien en claro como funciona el módulo RF que estás usando.
 
Atrás
Arriba