Hola,
pido vuestra ayuda porque quiero conectar mi PIC16F84A con un PC mediante módulos de Xbee pro. He buscado por internet, me he informado y he montado la placa pero sigue sin funcionar la conexión inalámbrica.
Yo conecto directamente el pin RA1 del PIC (para recibir datos) con el pin 2 del Xbee pro, y el RA0 del PIC con un montaje de resistencias al pin 3 del Xbee pro. He colocado el resto de elementos como el regulador para convertir tensión, etc. ¿La conexión es así de fácil no? Sé que se utiliza un MAX232 para pasar a puerto serie, pero en este caso no me haría falta.
Sin embargo tengo dudas respecto al programa en C, ya que yo sigo utilizando mi orden RS232:
#include "C:\Documents and Settings\David Crespo Ramírez\Escritorio\Uni\Robótica\ROVI\ROVI C\ROVI_h"
#include <stdio.h>
#BYTE TRISA=0x85
#BYTE PORTA=0x05
#BYTE TRISB=0x86
#BYTE PORTB=0x06
void main()
{
char orden;
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1);
orden='5';
TRISB=0b00000000; /*Para envío de órdenes a los motores*/
TRISA=0b00000010; /*Activo el pin RA1 para recepción de los bits mandados por ZigBee y pin RA0 Para transmitir información al ZigBee*/
printf("Adelante ROVI");
while(TRUE)
{
orden=getc();
/*RB3 RB2 RB1 RB0*/
/*IA ID DA DD*/
if (orden=='8') PORTB=0b00000101; /*00101*/
if (orden=='2') PORTB=0b00001010; /*01010*/
if (orden=='4') PORTB=0b00001001; /*01001*/
if (orden=='6') PORTB=0b00000110; /*00110*/
if (orden=='5') PORTB=0b00000000; /*00000*/
putc(orden);
}
}
Con el .h
#include <16F84A.h>
#FUSES NOWDT //No Watch Dog Timer
#FUSES HS //High speed Osc (> 4mhz)
#FUSES NOPUT //No Power Up Timer
#FUSES NOPROTECT //Code not protected from reading
#use delay(clock=8000000)
#use rs232(baud=19200,parity=N,xmit=PIN_A0,rcv=PIN_A1,bits=8,invert)
¿Podéis aclararme la conexión? Creo que en esto influye también mi programa.
Gracias.