Lo studio delle Linee di Trasmissione, e del loro comportamento al variare della R di carico applicata alla sua terminazione, può essere effettuata con tecniche diverse. applicando all’ingresso un generatore di treno di impulsi oppure un’onda quadra.
La misura che effettueremo con Arduino è di quest’ultimo tipo.
Alla terminazione di una Linea di trasmissione il segnale trasmesso può subire, a seconda del tipo di Resistenza di carico applicata alla linea, una Riflessione parziale o totale con conseguente perdita di segnale sul carico.
Tale Riflessione dipende dal valore della Rl di carico sulla linea: se tale valore è uguale alla Impedenza caratteristica della linea, cioè adattamento del carico (nel nostro caso 50 ohm), si aveva totale Rifrazione, e quindi Riflessione nulla, con totale passaggio del segnale al carico. Se invece il valore di Rl è disadattato (nel nostro caso 220 ohm) si ha parziale Riflessione del segnale trasmesso, che ritorna verso l’ingresso della linea.
Nel caso limite di Rl=infinito (linea aperta) si ha totale Riflessione.
Gli Indici di Riflessione IRFl e di Rifrazione IRFr sono il rapporto % tra la Tensione Vi di ingresso e la VRFl o VRFr:
IRFl = VRfl/Vi*100
IRFr = VRfr/Vi*100
La linea sulla quale effettueremo le misure è un Cavo Coassiale di lunghezza 11 m avente impedenza caratteristica uguale a 50 ohm.
Applichiamo all’ingresso della linea un generatore di Onda Quadra di 3v di picco, con periodo molto maggiore del ritardo introdotto dalla linea, nel nostro caso f = 500 KHz, ed alla sua terminazione, in modo alternato gestito da Arduino, una Rl = 50 ohm (Linea Adattata) ed una Rl > 50 ohm (Linea Disadattata, nel nostro esempio Rl = 220 ohm).

Il compito di Arduino è quello di acquisire sull’ingresso analogico A2 i valori del segnale in ingresso alla linea senza riflessione (caso Linea adattata) e con segnale parzialmente riflesso (caso Linea disadattata), e di gestire l’inserimento dell’una o dell’altra Rl con tempi prefissati usando le uscite digitali A0 e A3 che controllano l’eccitazione dei relè di inserimento.
Segnali che oltre ad essere acquisiti vengono anche visualizzati su Oscilloscopio digitale.

Come si può notare dalla FIG.1B è possibile anche misurare il tempo di percorrenza del segnale nella linea dal momento in cui il segnale entra a quello in cui ritorna all’ingresso sommandosi dopo la riflessione (2t), e quindi la sua velocità di propagazione nella linea.
Alla scheda Arduino UNO è stato collegato un modulo Relè per l’inserimento delle due diverse resistenze di carico


Il codice del programma Arduino:
/* * Programma per la Misura degli Indici di Rifrazione e Riflessione di una Linea Coassiale * * Il programma controlla l'nserimento delle diverse R di carico (adattata->50ohm, disadattata->220ohm) * e, variandole in modo automatico, legge il valore di acquisizione del segnale entrante nella Linea. * Utilizzando la componente Riflessa che viene a sommarsi con Rl->disadattata, calcola * l'Indice IRFR e IRFL della linea coassiale. * * Corso Informatica e Telecomunicazioni - IIS "Cattaneo - Dall'Aglio" * FunLab: funlab.info */ const int R50 = A0; const int R220 = A3; const int Vin = A2; float ValoreVin50 = 0; float ValoreVin220 = 0; float VRifl = 0; float VRifr = 0; float IRifl = 0; float IRifr = 0; float IRifl_percent = 0; float IRifr_percent = 0; void setup() { pinMode(R50, OUTPUT); pinMode(R220, OUTPUT); Serial.begin(9600); } void loop() { while (!Serial) { ; // wait for serial port to connect. Needed for native USB port only } // Leggo il valore della Vin con R0=50 digitalWrite(R50, HIGH); digitalWrite(R220, LOW); delay(100); //Ritardo necessario per permettere la commutazione delle RL ValoreVin50 = analogRead(Vin); //Serial.print("Vin50 = "); //Serial.println(ValoreVin50); delay(1000); // Leggo il valore di Vin + VRiflessa con R0=220 digitalWrite(R50, LOW); digitalWrite(R220, HIGH); delay(100); //Ritardo necessario per permettere la commutazione delle RL ValoreVin220 = analogRead(Vin); //Serial.print("Vin220 = "); //Serial.println(ValoreVin220); // Calcolo il valore di Indice Riflessione VRifl = ValoreVin220 - ValoreVin50; VRifr = (2*ValoreVin50) - ValoreVin220; IRifl = VRifl / ValoreVin50; IRifr = VRifr / ValoreVin50; IRifl_percent = IRifl*100; IRifr_percent = IRifr*100; Serial.println(""); Serial.println("VALORI DEGLI INDICI DI RIFLESSIONE E RIFRAZIONE LINEA COASSIALE"); Serial.println("---------------------------------------------------------------"); Serial.print("Indice Riflessione = "); Serial.println(IRifl); Serial.print("Indice Riflessione = "); Serial.print(IRifl_percent); Serial.println(" %"); Serial.print("Indice Rifrazione = "); Serial.println(IRifr); Serial.print("Indice Rifrazione % = "); Serial.print(IRifr_percent); Serial.println(" %"); Serial.println(""); delay(9000); }
Una volta caricato lo sketch su Arduino, aprendo il Monitor Seriale, vengono visualizzati i valori degli Indici di Riflessione e Rifrazione relativi e percentuali.