Il microcontrollore Arduino Nano ha 14 ingressi di I/O digitali D0-D13 e 8 ingressi analogici A0-07. Tutti i segnali (sia digitali, sia analogici) lavorano nel range da 0 a VCC (che noi abbiamo fissato a 5 Volt).
Questo costituisce un primo problema: il segnale SGN va limitato a 5 Volt di picco al massimo di tensione (presumibilmente 250 Volt in ingresso primario). Questo si ottiene con un partitore di tensione come mostrato in Fig.4.
Si è scelto di mettere una resistenza variabile per permettere una taratura (per esempio in modo da avere circa 3.5 Volt nel punto P, se la tensione in ingresso è di 230 Volt).
Si noti che il punto P viene collegato all' ingresso analogico A0, ma anche all'ingresso digitale D2, programmato come ingresso. Di seguito, sarà spiegata la funzione del segnale D2.
Nel caso del segnale in uscita V dal sensore di corrente occorre realizzare un offset, che innalzi la tensione V dal suo valore nell'intervallo +/- 1 Volt ad un valore nell'intervallo compreso tra 0 e VCC, accettabile per il microcontrollore.
Ciò è realizzato da un partitore di tensione fra VCC e GND, con riferimento alla Fig.4, che nel punto E genera una tensione di VCC/2, cioè di circa 2.5 Volt, a cui il segnale V viene sommato.
il segnale in ingresso ad A2 oscillerà perciò nell'intervallo (+1.5 V, +3.5 V), misurabile dal microcontrollore. Il condensatore da 10 microFarad serve a filtrare eventuali disturbi di misura.
Fig.4 |
In Fig.4 è anche visibile il collegamento del display per la visualizzazione delle misure di tensione e potenza istantanea.
Una taratura per la tensione è necessaria perchè il rapporto di trasformazione fra primario e secondario del trasformatore di alimentazione (con riferimento alla Fig.3), anche se le tensioni nominali sono date, ha una sua propria tolleranza; inoltre, anche le resistenze impiegate nel partitore hanno una loro propria tolleranza.
Stesse considerazioni valgono per il circuito di misura della corrente.
Conviene eseguire separatamente la taratura di tensione e corrente. In Fig.5 viene mostrato il circuito di taratura della tensione ideale.
Fig.5 |
Di seguito, un possibile codice di misura della tensione al variare dell'alimentazione del Power Controller.
Nessun codice disponibile |
Il microcontrollore trasforma il valore di tensione all'ingresso A0 in un numero compreso fra 0 e 1023 (codifica a 10 bits); al numero 0 corrisponde 0 Volt, a 1023 corrisponde VCC.
La taratura consiste nel correlare il valore da 0 a 1023 letto dal microcontrollore al valore della tensione in ingresso al primario del trasformatore di alimentazione del Power Controller.
Con il variatore di tensione si impongono valori di tensione d'ingresso nel range 200-250 Volt (misurati con il Voltmetro digitale) e si legge il numero corrispondente dato dal microcontrollore.
Se non si dispone di un Variatore di Tensione, sfruttando la linearità del sistema di misura, può essere sufficiente misurare a 0 e alla tensione di rete di quel momento.
Una stima della tensione al secondo è senz'altro una precisione temporale più che accettabile: questo significa che occorre produrre un valore di tensione ogni 50 cicli della tensione d'ingresso. Il software di misura calcola su un ciclo (identificato dal segnale di sincronismo Sync) il numero massimo letto (si calcola che il microcontrollore effettui qualche decina di misure nei 20 millisecondi di un ciclo) e ne esegue la media sui 50 cicli che compongono un secondo.
Dopo di che, manda sulla seriale il valore medio calcolato e la stima della tensione che ne segue con dei coefficienti di tentativo. Con successive iterazioni si possono calcolare i coefficienti in maniera soddisfacente.