CONTENUTO ►
Il sensore di tensione CA per Arduino ZMPT101B è un modulo basato su un trasformatore step-down che consente di misurare la tensione CA fino a 250V. Per rendere il sensore leggibile, viene utilizzato un amplificatore operazionale installato sul modulo. Per funzionare, è necessario collegare un’alimentazione di 5 Volt da Arduino al modulo, applicare la tensione CA al trasformatore e collegare l’uscita analogica al pin analogico del microcontrollore.
Per questa attività sono necessari:
- Arduino Uno / Arduino Nano / Arduino Mega
- sensore di tensione CA ZMPT101B
- LED e resistenza
- breadboard
- cavi di collegamento
- libraria EmonLib.h
Modulo sensore di tensione CA ZMPT101B datasheet, pinout
Con il sensore ZMPT101B è possibile misurare la tensione CA nella rete domestica e trasmettere in modo sicuro le letture all’ingresso del microcontrollore. Il modulo si basa su un trasformatore a bassa potenza, grazie al quale le letture seguono la forma del segnale di tensione CA. Il sensore è sicuro in quanto isolato galvanicamente dall’ingresso ad alta tensione. Per calibrare le letture, il modulo zmpt101b è dotato di una resistenza di trim.
Caratteristiche del sensore di tensione ZMPT101B:
- Alimentazione: 5 V
- Corrente nominale: 2 mA
- Modello trasformatore: ZMPT101B
- Intervallo di tensione misurata: 195-250 V
- Intervallo di temperatura operativa: da -40 °C a +70 °C
- Dimensioni: 51 × 21 × 21 mm
L’elemento principale del modulo è il trasformatore ZMPT101B. Fondamentalmente, per modificare la tensione CA, sono necessari un resistore limitatore sul circuito primario e un resistore sul circuito secondario. Il resto del circuito del modulo amplifica e sposta la tensione misurata sul lato positivo, in modo che non vi sia tensione negativa. Attenzione alle alte tensioni! Osservare le precauzioni di sicurezza quando si lavora con il sensore!
Come collegare modulo ZMPT101B con Arduino
Per collegare il modulo a tensione variabile ZMPT101B ad Arduino è necessario collegare l’uscita analogica OUT del sensore al pin analogico A1 di Arduino, quindi collegare i pin GND e VCC dell’alimentazione ai pin GND e +5V del microcontrollore. Successivamente, è possibile collegare la parte di alimentazione; a questo scopo i pin L e N del modulo sono collegati alla rete a 220 volt. Vedere lo schema di collegamento nell’immagine qui sopra.
Programma Arduino per sensore di tensione ZMPT101B
void setup() { Serial.begin(9600); } void loop() { Serial.println(analogRead(A1)); delay(100); }
Spiegazione del codice per modulo sensore ZMPT101B Arduino:
- dopo aver caricato il programma nel microcontrollore, aprire la scheda “Strumenti” nell’IDE Arduino e fare clic su “Plotter Seriale”;
- ruotare il potenziometro sul modulo per ottenere l’onda sinusoidale più perfetta, come nell’immagine seguente.
Programma Arduino per modulo ZMPT101B senza libreria
double sensorValue1 = 0; double sensorValue2 = 0; int crosscount = 0; int climb_flag = 0; int val[100]; int max_v = 0; double VmaxD = 0; double VeffD = 0; double Veff = 0; void setup() { Serial.begin(9600); pinMode(A1, INPUT); } void loop() { for (int i=0; i<100; i++) { sensorValue1 = analogRead(A1); if (analogRead(A1) > 511) { val[i] = sensorValue1; } else { val[i] = 0; } delay(1); } max_v = 0; for ( int i = 0; i < 100; i++ ) { if ( val[i] > max_v ) { max_v = val[i]; } val[i] = 0; } if (max_v != 0) { VmaxD = max_v; VeffD = VmaxD / sqrt(2); Veff = (((VeffD - 420.76) / -90.24) * -210.2) + 210.2; } else { Veff = 0; } Serial.print("Voltage: "); Serial.println(Veff); VmaxD = 0; delay(100); }
Spiegazione del codice per modulo ZMPT101B Arduino senza libreria:
- il programma trova prima la tensione massima (valore di picco) e la converte in valore RMS.
Nell’esempio che segue, collegheremo inoltre un LED al pin 10 del microcontrollore Arduino e utilizzeremo la libreria EmonLib.h nel programma. La libreria può essere scaricata dal nostro sito web; il link per il download è riportato sopra. Dopo aver assemblato il circuito, caricare il seguente sketch sulla scheda. Potrebbe essere necessario modificare le condizioni dell’istruzione if per accendere/spegnere automaticamente il LED.
Programma Arduino per ZMPT101B con la libreria EmonLib.h
#include "EmonLib.h" EnergyMonitor emon1; void setup() { Serial.begin(9600); pinMode(10, OUTPUT); emon1.current(A1, 111.1); // input pin, calibrazione } void loop() { double Irms = emon1.calcIrms(1480); Serial.print(Irms*230.0); Serial.print(" "); Serial.println(Irms); if (Irms*230.0 < 230) {gigitalWrite (10, HIGH);} else {digitalWrite (10, LOW);} }
Spiegazione del codice per modulo ZMPT101B con la libreria EmonLib.h:
- l’uso della libreria EmonLib.h semplifica notevolmente il programma.
Conclusione. Il sensore di tensione CA zmpt101b può essere utilizzato nei progetti Arduino per la misurazione della tensione per le prese intelligenti, per la commutazione automatica dell’UPS quando la tensione nominale scende e viene ripristinata, per la contabilizzazione del consumo di energia (in combinazione con il modulo di misurazione del consumo).
Lascia un commento