Misuratore di campo

Per conoscere l’intensità del campo elettromagnetico ecco un semplice misuratore di campo. In particolare questo modello legge valori elettromagnetici per frequenze SHF, quindi anche per la telefonia mobile, 5G incluso.

Il progetto richiede pochi componenti, si basa su Arduino, e si realizza in breve tempo.

In questa prima parte viene illustrato il circuito dal quale sarà possibile prelevare il valore del campo per poi trasferire il dato magari su un PC e creare quindi un grafico con andamento temporale.

IL CIRCUITO

Le due antenne sono degli spezzoni di filo lunghi uno 12 e l’altro 6 cm.

Le due induttanze, uguali, sono costituite da 6 spire diametro 20mm con file da 1mm. I due condensatori sono dei ceramici da 47pF.

Il led è un comune led a cui viene collegata la resistenza da 1K.

PROGRAMMA

Il programma legge i valori analogici di due porte e invia il valore alla porta USB. Nella seconda parte vedremo come registrare il valore per inserirlo in un foglio elettronico.

Sulla porta seriale (USB) verra scritta una stringa composta dai valori separati da “;”. I valori sono:

  • porta A
  • porta B
  • media A e B
/*
fablabway.com
file: som_lab45_01.ino
project: lab45 -
description: 
author: Mauro Rossolato
licence: Creative Commons BY-NC-ND
when who what
-----------------------------------
19.03.2018 mr creates
*/


// include
//NONE

// pins assignment
#define PINRADIOA 0 // 1st radio channel
#define PINRADIOB 1 // 2nd radio channel
#define PINLED 5

// literal kostants
#define MPGMID "FLW, LAB45 - field streght meter, 2024 - v.1.0"
#define FIELDSEP ";"
#define READDELAYMS 2000
#define WNUMREADS 5

// global vars
char wline[50];

// objects
//NONE

void setup() {
Serial.begin(9600);
Serial.println(MPGMID);
pinMode(PINRADIOA, INPUT); // define direction
pinMode(PINRADIOB, INPUT); // define direction
pinMode(PINLED, OUTPUT); // define direction
}

void loop() {
int wradioa, wradiob,wcnt;
float warvala, warvalb;
wcnt = 0;
warvala =0;
warvalb = 0;
while (wcnt < 5) {
wradioa = analogRead(PINRADIOA); // reads 1st radio ch
wradiob = analogRead(PINRADIOB); // reads 1st radio ch
warvala = warvala +(float) wradioa;
warvalb = warvalb +(float) wradiob;
wcnt++;
} 
digitalWrite(PINLED,HIGH);
Serial.print(FIELDSEP);
Serial.print(1024-wradioa);
Serial.print(FIELDSEP);
Serial.print(1024-wradiob); 
Serial.print(FIELDSEP);
Serial.println((warvala+warvalb)/10.0); 
delay(300); 
digitalWrite(PINLED,LOW);
delay(READDELAYMS); 
}

 

COLLAUDO

Collegare Arduino e compilare. Aprire il “Serial Monitor”  e verificare che appaiano i valori. Nel frattempo verificare che il LED si accenda per un breve istante: ciò indica la ciclicità delle letture.

Prendere un cellulare e posizionarlo a mezzo metro dalla scheda. Eseguire una chiamata e nel contempo leggere i valori sul “Serial Monitor”: devono variare tendendo a 1024, quando il campo è massimo.

Nel caso il segnale sia sempre verso il massimo è possibile ridurne il valore tramite partitore (nella prossima parte).

 

 

wp_12994621

Learn More →

Lascia un commento