Estoy tratando de usar el chip detector de fase AD 8302 para obtener un ángulo de fase entre la antena que recibe una señal de RF debido a la separación vertical de las antenas. Quiero usar el ángulo de fase para calcular la distancia desde el transmisor a las antenas receptoras que se colocan en una plataforma vertical de madera. Estas antenas tienen una separación vertical de 5 pies entre sí. Utilizo cables RF SMA para conectarme al detector de fase y he eliminado cada extremo para crear antenas.
El transmisor funciona en 433 MHz y es el par genérico de transmisor / receptor. El detector de fase me da salida de fase en términos de voltios que tiene un rango de 30 mV a 1,8 V. En la hoja de datos, este rango representa 180 grados a 0 grados. Las salidas del chip detector de fase van al arduino y así es como hago los cálculos para la distancia y el ángulo.
He calculado las longitudes de la antena (antenas de recepción utilizando un cable SMA) para Quarter Wavelength.
Estos son los enlaces relevantes : Chip : enlace
Transmisor / Receptor : enlace
Esto es para calcular la longitud de la antena usando un trozo de cable : enlace
No puedo obtener el ángulo de fase correcto necesario para calcular la distancia desde el transmisor a las antenas.
PIC_1 es la estructura y PIC_2 es el transmisor.
Esteeselcódigoparaeltransmisor:
#definerfTransmitPin12//RFTransmitterpin=digitalpin12#defineledPin13//OnboardLED=digitalpin13voidsetup(){pinMode(rfTransmitPin,OUTPUT);pinMode(ledPin,OUTPUT);}voidloop(){//for(inti=4000;i>5;i=i/800){digitalWrite(rfTransmitPin,HIGH);//TransmitaHIGHsignaldigitalWrite(ledPin,HIGH);//TurntheLEDon//delay(2000);//Waitfor1second//digitalWrite(rfTransmitPin,LOW);//TransmitaLOWsignal//digitalWrite(ledPin,LOW);//TurntheLEDoff//delay(i);//Variabledelay//}}
EsteeselcódigoparaelReceptor:
//#definerfReceivePin8//RFReceiverpin=Analogpin0#definevmagA1#definevphsA0#defineledPin13//OnboardLED=digitalpin13//intvphs=0;//intvmag=1;unsignedintdata=0;//variableusedtostorereceiveddataunsignedintDATA=0;unsignedintdata1=0;unsignedintDATA1=0;constunsignedintupperThreshold=70;//upperthresholdvalueconstunsignedintlowerThreshold=50;//lowerthresholdvalueStringangle="Angle:";
String mag="Vmag:";
String dis="Distance";
void setup(){
pinMode(ledPin, OUTPUT);
pinMode(vmag,INPUT);
pinMode(vphs,INPUT);
analogReference(DEFAULT);
Serial.begin(9600);
}
void loop(){
data = analogRead(vphs); //listen for data on Analog pin 0
data1 = analogRead(vmag);
//data=analogRead(rfReceivePin)
/*Serial.println(((data)/10)*2);*/
/*DATA=*/
Serial.print(angle);
Serial.println((((data)/10)*2)-40);
Serial.print(dis);
Serial.println((5/tan(data)));
delay(500);
/*DATA1*/
Serial.print(mag);
Serial.println(((data1)/30)*2);
delay(500);
//Serial.println(6/tan(DATA*(180/3.14)));
/* if(data>upperThreshold){
digitalWrite(ledPin, LOW); //If a LOW signal is received, turn LED OFF
Serial.println(data);
}
if(data<lowerThreshold){
digitalWrite(ledPin, HIGH); //If a HIGH signal is received, turn LED ON
Serial.println(data);
}*/
}
Por favor, ayuda.