Intentando obtener un ángulo de fase usando el chip detector de fase AD 8302

0

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.

    
pregunta Pree

0 respuestas

Lea otras preguntas en las etiquetas