Amperometro con Arduino e SCT-013-030: corrente e potenza stimata
Misuriamo la corrente alternata con un sensore non invasivo SCT-013-030 e visualizziamo sul display LCD 16×2 I2C la corrente RMS e una stima della potenza.
Il sensore SCT-013-030
L’SCT-013-030 è un sensore di corrente non invasivo a pinza. Il modello utilizzato è progettato per misurare correnti fino a 30 A e fornisce un’uscita proporzionale al valore rilevato.
Sensore SCT-013-030 utilizzato con Arduino. L’immagine mantiene una larghezza massima di 314 px.
📄 Scarica il datasheet SCT-013-030
Cosa imparerai
- come funziona un trasformatore di corrente a pinza;
- come leggere una corrente alternata con Arduino;
- come utilizzare la libreria EmonLib;
- come calcolare la corrente RMS;
- come stimare la potenza apparente partendo da tensione e corrente;
- come visualizzare i valori su un LCD 16×2 I2C.
Materiale necessario
🧰 Kit Arduino consigliato
Un kit completo è utile per avere breadboard, cavetti, resistenze e molti componenti di base per sperimentare con Arduino.
👉 Guarda il kit Arduino consigliatoLink di affiliazione Amazon: in qualità di Affiliato Amazon ricevo un guadagno dagli acquisti idonei, senza alcun costo aggiuntivo per te.
📘 Vuoi imparare Arduino passo dopo passo?
Se vuoi approfondire e realizzare progetti più completi, puoi dare un’occhiata anche ai miei libri dedicati ad Arduino. All’interno troverai spiegazioni semplici, schemi chiari e molti progetti pratici pensati per chi parte da zero.
👉 Scopri i miei libri su ArduinoLink di affiliazione Amazon: in qualità di Affiliato Amazon ricevo un guadagno dagli acquisti idonei, senza alcun costo aggiuntivo per te.
Schema di collegamento
Schema del circuito. L’immagine mantiene una larghezza massima di 749 px.
Perché bisogna inserire un solo filo nella pinza
Se fase e neutro attraversano insieme il sensore, le correnti scorrono in versi opposti e i rispettivi campi magnetici tendono ad annullarsi. Il sensore deve quindi abbracciare un solo conduttore.
Il circuito di polarizzazione
Arduino non può leggere direttamente una forma d’onda alternata centrata attorno a 0 V. Le due resistenze da 10 kΩ e il condensatore da 100 µF creano il riferimento necessario per mantenere il segnale all’interno del campo leggibile dall’ingresso analogico.
Librerie necessarie
Il progetto utilizza EmonLib per il calcolo della corrente RMS e newLiquidCrystal per il display LCD I2C.
⬇️ Scarica EmonLib ⬇️ Scarica newLiquidCrystal
Codice Arduino commentato
/*
AMPEROMETRO CON ARDUINO E SCT-013-030
Sensore SCT-013-030 -> A1
Display LCD 16x2 I2C -> bus I2C
Il sensore SCT-013-030 misura la corrente alternata
senza interrompere il conduttore.
ATTENZIONE:
la potenza calcolata come V x Irms è una stima della
potenza apparente. Coincide con la potenza attiva solo
quando il fattore di potenza è circa 1.
*/
#include "EmonLib.h"
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
// Display I2C utilizzato nel progetto
LiquidCrystal_I2C lcd(
0x27,
2, 1, 0,
4, 5, 6, 7,
3, POSITIVE
);
EnergyMonitor emon1;
// Tensione nominale della rete
const float TENSIONE_RETE = 230.0;
// Ingresso analogico del sensore
const byte SCT_PIN = A1;
// Costante di calibrazione usata per SCT-013-030
const float CALIBRAZIONE_CORRENTE = 29.0;
void setup() {
Serial.begin(9600);
lcd.begin(16, 2);
lcd.clear();
// Configura EmonLib:
// pin analogico + costante di calibrazione
emon1.current(SCT_PIN, CALIBRAZIONE_CORRENTE);
lcd.setCursor(0, 0);
lcd.print("Corr.(A):");
lcd.setCursor(0, 1);
lcd.print("Pot.(VA):");
}
void loop() {
// Calcola la corrente RMS campionando il segnale
double correnteRms = emon1.calcIrms(1480);
// Potenza apparente stimata:
// S = V x I
double potenzaApparente =
correnteRms * TENSIONE_RETE;
// ------------------------------
// Monitor Seriale
// ------------------------------
Serial.print("Corrente RMS: ");
Serial.print(correnteRms, 3);
Serial.print(" A");
Serial.print(" Potenza apparente: ");
Serial.print(potenzaApparente, 1);
Serial.println(" VA");
// ------------------------------
// Display LCD
// ------------------------------
lcd.setCursor(9, 0);
lcd.print(" ");
lcd.setCursor(9, 0);
lcd.print(correnteRms, 2);
lcd.setCursor(9, 1);
lcd.print(" ");
lcd.setCursor(9, 1);
lcd.print(potenzaApparente, 1);
delay(1000);
}
Come funziona lo sketch
1. Configurazione di EmonLib
Il sensore viene letto su A1. La chiamata emon1.current() associa l’ingresso analogico alla costante di calibrazione utilizzata dal circuito.
2. Calcolo della corrente RMS
calcIrms(1480) acquisisce una serie di campioni del segnale e restituisce il valore efficace della corrente alternata.
3. Visualizzazione della corrente
Il valore RMS viene mostrato sia sul Monitor Seriale sia sulla prima riga del display LCD.
4. Stima della potenza
Moltiplicando la tensione nominale per la corrente RMS otteniamo:
Con una rete nominale di 230 V, ad esempio, una corrente di 2 A corrisponde a circa 460 VA.
230 × Irms fornisce la potenza apparente in VA. Per conoscere la potenza attiva reale in watt bisogna misurare anche la forma d’onda della tensione e tenere conto del fattore di potenza. Con un carico quasi puramente resistivo, VA e W possono risultare molto vicini.Calibrazione del sensore
La costante utilizzata nello sketch è:
const float CALIBRAZIONE_CORRENTE = 29.0;
La calibrazione dipende dal modello esatto di trasformatore di corrente e dal circuito d’ingresso. Per migliorare l’accuratezza, confronta la misura con uno strumento affidabile usando un carico noto e regola gradualmente la costante.
Impostare la tensione della rete
Nel codice è presente:
const float TENSIONE_RETE = 230.0;
Questo valore viene usato soltanto per la stima della potenza apparente. Se vuoi una stima più vicina alla situazione reale puoi sostituirlo con una tensione misurata, ricordando comunque che la tensione di rete varia nel tempo.
Risultato sul display
Visualizzazione dei valori misurati sul display LCD.
Scarica i file
⬇️ Scarica lo sketch ⬇️ EmonLib ⬇️ newLiquidCrystal
Debug rapido
- se leggi sempre circa zero, controlla che nella pinza passi un solo conduttore;
- verifica il collegamento del sensore all’ingresso A1;
- controlla la polarità del condensatore da 100 µF;
- se il display resta vuoto, verifica indirizzo I2C e libreria;
- se la corrente differisce molto da uno strumento di riferimento, calibra EmonLib;
- non confondere la potenza apparente in VA con la potenza attiva in watt.
Varianti del progetto
- aggiungere un modulo SD per registrare i consumi nel tempo;
- aggiungere un RTC per associare data e ora alle misure;
- trasmettere i dati via Wi-Fi con ESP32;
- creare un grafico dei consumi;
- aggiungere una soglia di allarme;
- misurare anche la tensione per ricavare potenza attiva e fattore di potenza;
- calcolare energia nel tempo in Wh o kWh.
Cosa devi ricordare
- Il sensore utilizzato è SCT-013-030.
- La lettura viene effettuata sull’ingresso A1.
- EmonLib calcola la corrente RMS.
- La pinza deve abbracciare un solo conduttore.
- La costante di calibrazione influenza direttamente la precisione.
- Il prodotto tensione × corrente RMS fornisce potenza apparente, non necessariamente potenza attiva.
Domande frequenti
Posso mettere nella pinza l’intero cavo con fase e neutro?
No. Le correnti nei due conduttori producono campi magnetici opposti che tendono ad annullarsi. La pinza deve circondare un solo conduttore.
Il valore mostrato in potenza è realmente in watt?
Non necessariamente. Moltiplicando tensione nominale e corrente RMS ottieni la potenza apparente in VA. Per la potenza attiva reale serve anche l’informazione sulla fase tra tensione e corrente.
Perché devo calibrare EmonLib?
Il rapporto del sensore, il circuito d’ingresso e le tolleranze dei componenti influenzano la conversione. La calibrazione permette di adattare il calcolo al circuito realmente costruito.
Posso usare un altro modello SCT-013?
Sì, ma rapporto di trasformazione, uscita, burden e costante di calibrazione possono cambiare. Lo schema e il codice vanno adattati al modello specifico.

