⚡ Arduino • SCT-013-030 • EmonLib

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.

DifficoltàIntermedia
Tempo30–40 minuti
Cosa impariCorrente RMS e sensori CT
In poche parole: il trasformatore di corrente SCT-013-030 si chiude attorno a un solo conduttore e genera un piccolo segnale proporzionale alla corrente alternata. Arduino lo campiona tramite EmonLib e mostra il valore RMS sul display.

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.

Amperometro Arduino con sensore SCT-013-030

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

🔌 Arduino Uno
🖥️ Display LCD 16×2 I2C
⚡ Sensore SCT-013-030
🔋 Condensatore elettrolitico 100 µF 16 V
Ω 2 resistenze da 10 kΩ
🔗 Cavetti di collegamento
🧩 Breadboard

🧰 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 consigliato

Link 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 Arduino

Link di affiliazione Amazon: in qualità di Affiliato Amazon ricevo un guadagno dagli acquisti idonei, senza alcun costo aggiuntivo per te.

Schema di collegamento

Schema Arduino SCT-013-030 amperometro

Schema del circuito. L’immagine mantiene una larghezza massima di 749 px.

Sicurezza: la pinza SCT-013 deve essere installata attorno a un solo conduttore, fase oppure neutro. Non modificare o lavorare su conduttori di rete sotto tensione se non possiedi le competenze e le attrezzature adeguate. La rete elettrica a 230 V è pericolosa.

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.

Condensatore elettrolitico: rispetta la polarità indicata nello schema. Un condensatore polarizzato collegato al contrario può danneggiarsi.

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

Arduino + SCT-013-030 + LCD I2C
/*
  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:

S ≈ V × I

Con una rete nominale di 230 V, ad esempio, una corrente di 2 A corrisponde a circa 460 VA.

Potenza attiva o apparente? il semplice prodotto 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 è:

Costante EmonLib
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:

Tensione nominale
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

Display Arduino corrente e potenza SCT-013

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.