Documentos de Académico
Documentos de Profesional
Documentos de Cultura
MATANZA
ELECTRÓNICA DE POTENCIA
PROYECTO
Medición de corriente sobre una carga enchufada a
la red domiciliaria
Año: 2022
Universidad Nacional de la Matanza Electrónica de Potencia
Índice
Descripción.............................................................................................................. 2
Funcionamiento ....................................................................................................... 3
Cálculo de componentes ......................................................................................... 4
Modos de funcionamiento ....................................................................................... 5
Pruebas realizadas .................................................................................................. 6
Prueba del sensor – Tensión de salida sin corriente............................................ 6
Medición del tiempo de conversión del ADC (predeterminado) ........................... 6
Toma de muestras de corriente ........................................................................... 7
Cálculo del valor medio, valor eficaz, mínimo y máximo (corriente alterna) ....... 11
Cálculo del período y la frecuencia .................................................................... 12
Rectificador de media onda ............................................................................... 14
Software ................................................................................................................ 15
Prueba del sensor – Tensión de salida sin corriente.......................................... 15
Medición del tiempo de conversión del ADC (predeterminado) ......................... 16
Toma de muestras de la corriente...................................................................... 17
Código final ........................................................................................................ 18
Esquemático.......................................................................................................... 25
ANEXO 1: Imágenes adicionales .......................................................................... 27
ANEXO 2: Videos .................................................................................................. 29
1
Universidad Nacional de la Matanza Electrónica de Potencia
Descripción
Este proyecto consiste en la medición de la corriente que circula a través de una
carga conectada a la red eléctrica domiciliaria. Originalmente este proyecto incluía
el diseño de un rectificador controlado, pero por cuestiones de tiempo, no se ha
podido implementar físicamente. No obstante, se ha incluido un diodo rectificador
en el circuito para implementar un rectificador de media onda, junto con un
interruptor para conmutar entre la señal rectificada y la señal de CA.
La medición de corriente se realizará con un sensor de corriente por efecto Hall
ACS712, el cual estará conectado en serie con la carga. Se utilizará la versión de
este sensor que permite medir una corriente de ±5 A.
2
Universidad Nacional de la Matanza Electrónica de Potencia
Por otro lado, se empleará un optoacoplador tipo PC817 para la detección del cruce
por cero de la señal de CA. A su vez, se utilizará un microcontrolador Arduino Nano
para muestrear la señal de corriente y graficarla a través del serial plotter (graficador
serie). El microcontrolador también realizará los cálculos del valor medio y valor
eficaz para luego mostrar dichos valores a través del monitor serie.
Funcionamiento
La carga se enchufa a la tensión de la red domiciliaria de 220 V. Debido a que la
carga es resistiva, la forma de onda de la corriente en la carga coincide con la forma
de onda de la tensión. El sensor de corriente, como dijimos antes, se conecta en
serie con la carga.
En paralelo con la carga se conecta el optoacoplador. El fotodiodo se conecta a la
tensión alterna de 220 V mediante un resistor cerámico de potencia de 10 W, el cual
permite limitar la corriente que circula sobre el fotodiodo para que no supere el valor
máximo especificado en la hoja de datos. Por otro lado, el fototransistor se conecta
a una tensión continua de 5 V mediante un resistor común de ¼ W, que limita la
corriente sobre el colector del transistor. A su vez, se conecta el fototransistor a un
transistor bipolar externo BC548, el cual permite obtener una señal cuadrada para
ser detectada por el microcontrolador.
El optoacoplador realiza la detección de cruce por cero de la siguiente manera:
cuando se produce el cambio del semiciclo positivo al semiciclo negativo de la señal
de CA, la salida del optoacoplador (que se toma del colector del fototransistor) pasa
de 0 a 5 V, debido a que el fotodiodo deja de conducir y por ende el fototransistor
se apaga. Esto se traduce en un flanco ascendente de la señal del optoacoplador,
el cual genera una interrupción por flanco ascendente que es leída por el
microcontrolador. Por otro lado, en el cambio del semiciclo negativo al semiciclo
positivo de la señal de CA, la salida del optoacoplador pasa de 5 a 0 V, ya que el
fotodiodo empieza a conducir. Esto corresponde a un flanco descendente de la
3
Universidad Nacional de la Matanza Electrónica de Potencia
señal del optoacoplador, generando una interrupción por flanco descendente la cual
es leída por el microcontrolador. Estas dos interrupciones permiten calcular el
período y la frecuencia de la señal de CA, como veremos más adelante.
El sensor de corriente entrega una tensión analógica equivalente a la corriente
muestreada. Según la hoja de datos del sensor, la tensión de salida es de 2,5 V
para una corriente de 0 A. Cuando la corriente sobre la carga es positiva, la tensión
de salida es superior a 2,5 V; en cambio, cuando la corriente es negativa, la tensión
de salida es inferior a 2,5 V. La corriente sobre la carga se puede calcular a partir
de la tensión de salida y la sensibilidad del sensor.
El microcontrolador toma muestras de la corriente repetidamente para luego calcular
el valor medio y valor eficaz de la corriente sobre la carga. Se debe tomar una
cantidad considerable de muestras por ciclo para que el cálculo sea lo más preciso
posible. La toma de muestras de corriente es iniciada por el usuario, ya sea
enviando algún comando a través del monitor serie o presionando algún pulsador.
Cálculo de componentes
Como dijimos anteriormente, se utilizará un optoacoplador PC817, cuyo fotodiodo
está conectado en serie con un resistor cerámico de potencia para limitar la
corriente. Para seleccionar el resistor, debemos tener en cuenta la máxima corriente
que puede circular por el fotodiodo.
Según la hoja de datos del PC817, la corriente máxima del fotodiodo en directa (IF)
es de 50 mA. Si tomamos este valor como valor pico, la tensión eficaz máxima es
de aprox. 35 mA. Suponiendo que la caída del tensión del fotodiodo polarizado en
directa es de aprox. 0 V, podemos calcular la máxima potencia que debe disipar el
resistor:
0,05 𝐴
𝑃 =𝑉 𝐼 = 220 𝑉 ∗ = 7,778 𝑊
√2
Esto significa que debemos seleccionar un resistor capaz de disipar 7,778 W de
potencia. Elegimos entonces un resistor de 10 W.
Hallamos ahora la resistencia que debe tener el resistor, a partir de la potencia
máxima del resistor seleccionado (10 W):
𝑉 𝑉 220 𝑉
𝑃 = →𝑅 = = = 22 𝑘Ω
𝑅 𝑃 10 𝑊
Esto significa que debemos seleccionar una resistencia de 22 kΩ. Sin embargo,
debido a que no había disponible un resistor cerámico de ese valor, se optó por
utilizar dos resistores de 47 kΩ en paralelo, de manera que la resistencia
equivalente da como resultado 23,5 kΩ, un valor cercano al calculado
anteriormente.
4
Universidad Nacional de la Matanza Electrónica de Potencia
Hallamos la corriente eficaz y la corriente pico que circula por el fotodiodo con ese
valor de resistencia:
𝑅 = 𝑅 //𝑅 = 23,5 𝑘Ω
𝑉 220 𝑉
𝐼 = = = 9,36 𝑚𝐴
𝑅 23,5 𝑘Ω
𝐼 =𝐼 √2 = 13,237 𝑚𝐴
Como vemos, los valores de corriente sobre el fotodiodo se encuentran por debajo
del máximo de corriente que puede soportar.
Para el fototransistor y el transistor externo, se debe conectar entre el terminal de 5
V y el colector un resistor que limite la corriente que circula por ambos dispositivos
cuando se encuentran en conducción. Se elige un resistor de carbón de 10 kΩ y ¼
W, de manera que la corriente de colector del fototransistor y el transistor externo
es de 0,5 mA cuando se encuentran en conducción.
𝑉 5𝑉
𝐼 = = = 0,5 𝑚𝐴
𝑅 10.000 Ω
Ahora procedemos a hacer los cálculos correspondientes para elegir el diodo
rectificador. Calculamos la corriente media sobre la carga conectada al rectificador
de media onda:
𝑉 𝑉
𝐼 = =
𝑅 𝜋𝑅
La resistencia de la plancha (RL) fue medida con el multímetro, obteniéndose un
valor aproximado de 63 Ω.
𝑉 311 𝑉
𝐼 = = ≅ 1,571 𝐴
𝜋𝑅 𝜋 ∗ 63 Ω
Debemos elegir un diodo rectificador que soporte una corriente media de 1,571 A.
A su vez, el diodo debe soportar una tensión pico inversa de 311 V (que es la tensión
pico de la red domiciliaria). Elegimos el diodo BY399, el cual soporta una tensión
máxima de pico inverso de 800 V y una corriente media rectificada de 3 A.
Modos de funcionamiento
La carga puede conectarse directamente a la tensión de red de CA sin rectificar, o
bien puede conectarse a la salida de un rectificador monofásico de media onda
(RMMO) o un rectificador monofásico de onda completa (RMOC). Para conmutar
entre estos tres modos de funcionamiento, es necesario utilizar un circuito adicional
que contiene dos relés. Uno de los relés permite conmutar entre el modo rectificador
y la señal sin rectificar, mientras que el otro relé permite conmutar entre RMMO y
RMOC.
5
Universidad Nacional de la Matanza Electrónica de Potencia
Pruebas realizadas
Se realizaron distintas pruebas para verificar el funcionamiento del sistema. A
continuación se hará una descripción de las distintas pruebas realizadas. Luego, en
la sección de software, se mostrará el código fuente de Arduino correspondiente a
dichas pruebas.
Prueba del sensor – Tensión de salida sin corriente
La primer prueba del sensor de corriente realizada consistió en hallar la tensión
media de salida que entrega el sensor cuando no circula corriente sobre la carga.
Si bien como dijimos anteriormente el sensor entrega una tensión de salida de 2,5
V cuando la corriente que circula es 0 A, dicha tensión puede experimentar
variaciones en torno a ese valor (la tensión medida puede ser 2,48 V, 2,49 V o 2,51
V). Para el cálculo de la corriente a partir de la tensión muestreada, se requiere
conocer la tensión de salida del sensor cuando la corriente es nula (V0). Si tomamos
una V0 de 2,5 V y el valor real de V0 es, por ejemplo, de 2,52 V, la corriente calculada
no será lo suficientemente precisa.
Para el cálculo del valor medio de la tensión V0, se toman 100 muestras de dicha
tensión, y luego se promedian dichas muestras. La tensión media V0 se representa
a través del monitor serie para visualizar el valor obtenido. Dicho valor luego se
utiliza para realizar los cálculos de corriente.
Medición del tiempo de conversión del ADC (predeterminado)
Para saber la cantidad máxima de muestras que podemos tomar en un ciclo
completo de la señal de CA, es necesario saber cuánto demora el ADC en tomar
una sola muestra. Para ello debemos medir el tiempo de conversión.
6
Universidad Nacional de la Matanza Electrónica de Potencia
7
Universidad Nacional de la Matanza Electrónica de Potencia
8
Universidad Nacional de la Matanza Electrónica de Potencia
9
Universidad Nacional de la Matanza Electrónica de Potencia
ciclo para lograr mayor precisión. Para lograr esto, es necesario aumentar la
velocidad de conversión del ADC.
Para aumentar la velocidad de conversión, se realiza una modificación del registro
interno correspondiente al ADC. Dicho registro es el ADC Control and Status
Register A (Registro de estado y control del ADC). Se trata de un registro de 8 bits
en el cual los tres bits menos significativos (2:0) corresponden a los bits de selección
del prescaler, los cuales determinan el factor de división entre la frecuencia del reloj
del sistema y el reloj de entrada al ADC. Configuramos dicho registro de manera tal
que aumentamos el tiempo de conversión a 12 µs por medición.
Luego de configurar dicho registro, otra modificación que hacemos al programa es
quitar el cálculo de la corriente equivalente al momento de tomar la muestra. En su
lugar, se hará solamente el cálculo de la tensión muestreada a partir del valor entero
cuantificado por el ADC (valor entre 0 y 1023), y los valores de tensión se irán
guardando en un vector. Esto permitirá agilizar el programa para tomar la mayor
cantidad de muestras posible. La corriente equivalente se obtiene luego a partir de
la tensión al momento de mostrar las mediciones por pantalla, o al momento de
realizar los cálculos de valor medio y eficaz, como veremos más adelante.
Hechas estas modificaciones, procedemos a graficar la corriente instantánea en la
plancha:
10
Universidad Nacional de la Matanza Electrónica de Potencia
2
∑𝑁
𝑘=0 𝑖𝑘
𝐼 =
𝑁
Por otro lado, el valor máximo corresponde al valor pico de la señal de corriente,
mientras que el valor mínimo correspondiente al valor pico negativo de la corriente.
Comparamos la corriente eficaz sobre la carga con el valor teórico:
𝑉 220 𝑉
𝐼 = = = 3,492 𝐴
𝑅 63 Ω
11
Universidad Nacional de la Matanza Electrónica de Potencia
12
Universidad Nacional de la Matanza Electrónica de Potencia
𝑇 =𝑡 −𝑡
𝑇 =𝑡 −𝑡
tintf1: Instante en que se recibe una interrupción por flanco descendente en el
1° ciclo de la señal cuadrada
tintr1: Instante en el que se produce una interrupción por flanco ascendente en
el 1° ciclo de la señal cuadrada
tintr2: Instante en el que se produce una interrupción por flanco descendente
en el siguiente ciclo de la señal cuadrada
El período de la señal de CA se obtiene como la suma de los tiempos en alto y en
bajo de la señal cuadrada (cuyo período coincide con el de la señal senoidal),
mientras que la frecuencia es la inversa del período:
𝑇=𝑇 +𝑇
1
𝑓=
𝑇
Para mostrar en pantalla el tiempo en alto, tiempo en bajo, el período y la frecuencia,
el usuario debe enviar un comando a través del monitor serie. En este caso, el
comando enviado debe ser la letra ‘B’.
13
Universidad Nacional de la Matanza Electrónica de Potencia
Software
A continuación se mostrará el código fuente correspondiente a las pruebas
realizadas y el código fuente final.
Prueba del sensor – Tensión de salida sin corriente
#define A0 0
#define N 100
15
Universidad Nacional de la Matanza Electrónica de Potencia
float sumvol0=0;
int cant=0;
void setup() {
void loop() {
*/
sumvol0=sumvol0+vol0[cant];
cant++;
if(cant==(N-1)){
vol0prom=sumvol0/N;
cant=0;
sumvol0=0;
Serial.print(vol0prom,2);
Serial.println(" V");
#define A0 0
16
Universidad Nacional de la Matanza Electrónica de Potencia
void setup() {
void loop() {
/* Para saber la cantidad de muestras que debemos tomar para el cálculo del valor
medio y eficaz de la corriente, debemos saber cuánto tiempo demora el ADC en
*/
inicioconversion=micros();
intconversion=micros()-inicioconversion;
Serial.print(intconversion);
Serial.println("us");
#define sensibilidad 0.185 // Sensibilidad del sensor de corriente (185 mV/A o 0.185 V/A)
#define V0 2.50 // Tensión de salida del sensor de corriente cuando la corriente es nula
17
Universidad Nacional de la Matanza Electrónica de Potencia
int i=0;
void setup() {
ADCSRA &= B11111000; // Realizamos una máscara para modificar los últimos tres bits
del registro ADCSRA (AD Status and Control Register)
ADCSRA |= B011; // Modificamos los últimos tres bits para aumentar la velocidad
de conversión a 12 us
void loop() {
/* Tomamos una determinada cant. de muestras de la tensión que entrega el sensor, las
convertimos a corriente y las guardamos en un vector.
for(i=0;i<N;i++){
for(i=0;i<N;i++){
Serial.println(i0);
Código final
#define A0 0 // Entrada analógica A0 (para la toma de muestras del sensor de corriente)
#define sensibilidad 0.185 // Sensibilidad del sensor de corriente (185 mV/A o 0.185 V/A)
#define V0 2.49 // Tensión de salida del sensor de corriente cuando la corriente es nula
18
Universidad Nacional de la Matanza Electrónica de Potencia
bool flag_ascendente; // Bandera para indicar que llegó una interrupción por flanco
ascendente
bool flag_descendente; // Bandera para indicar que llegó una interrupción por flanco
descendente
float instascendente; // Instante en que llegó una interrupción por flanco ascendente
float instdescendente; // Instante en que llegó una interrupción por flanco descendente
void setup() {
* - Int. por flanco ascendente --> Cruce por cero al pasar del semiciclo positivo al
semiciclo negativo
* - Int. por flanco descendente --> Cruce por cero al pasar del semiciclo negativo al
semiciclo positivo
*/
attachInterrupt(digitalPinToInterrupt(D2),IRQ_Handler_Rising,RISING);
attachInterrupt(digitalPinToInterrupt(D3),IRQ_Handler_Falling,FALLING);
ADCSRA &= B11111000; // Realizamos una máscara para modificar los últimos tres bits
del registro ADCSRA (AD Status and Control Register)
19
Universidad Nacional de la Matanza Electrónica de Potencia
ADCSRA |= B011; // Modificamos los últimos tres bits para aumentar la velocidad
de conversión a 12 us
void loop() {
if(flag_ascendente==1){
flag_ascendente=0;
if(flag_descendente==1){
flag_descendente=0;
20
Universidad Nacional de la Matanza Electrónica de Potencia
switch(caracter){
case 'A':{
/* Se toman muestras y luego se informa por pantalla los valores medio, eficaz,
mínimo y máximo de la corriente en la carga,
TomarMuestras();
i0prom=ValMedyValRms(1);
i0rms=ValMedyValRms(0);
i0max=MaxyMin(1);
i0min=MaxyMin(0);
MostrarCorriente(i0prom,i0rms,i0max,i0min);
break;
case 'B':{
MostrarTiempos(TH,TL,T,f);
break;
case 'C':{
TomarMuestras();
int i=0;
for(i=0;i<N;i++){
i0=(vol0[i]-V0)/sensibilidad;
Serial.println(i0);
break;
21
Universidad Nacional de la Matanza Electrónica de Potencia
/* Función que toma muestras de la tensión de salida del sensor y las guarda en un vector
*/
void TomarMuestras(){
int i=0;
for(i=0;i<N;i++){
/* Función que calcula el valor eficaz y el valor medio de la corriente. Retorna el valor
medio si le enviamos como parámetro un 1, y devuelve el
int j=0;
float sumi0=0; // Suma de todas las muestras de corriente (para el cálculo del valor
medio)
float sumsqi0=0; // Suma del cuadrado de las muestras de corriente (para el cálculo del
valor eficaz)
float prom;
float sqprom;
for(j=0;j<N;j++){
i0=(vol0[j]-V0)/sensibilidad;
sumi0=0;
sumsqi0=0;
if(num==1){
22
Universidad Nacional de la Matanza Electrónica de Potencia
return prom;
else {
return sqprom;
/* Función que calcula el valor máximo y valor mínimo de corriente. Retorna el valor
máximo si le mandamos como parámetro un 1, y retorna el
int k=0;
float maxi;
float mini;
/* Para calcular el valor mínimo y el valor máximo, se toma como referencia el primer
valor de corriente muestreado, y luego se comparan
maxi=(vol0[0]-V0)/sensibilidad;
mini=(vol0[0]-V0)/sensibilidad;
for(k=0;k<N;k++){
i0=(vol0[k]-V0)/sensibilidad;
if(maxi<i0){
maxi=i0;
if(mini>i0){
mini=i0;
if(tipo==1){
return maxi;
else {
return mini;
23
Universidad Nacional de la Matanza Electrónica de Potencia
/* Función que muestra a través del monitor serie los parámetros vinculados con la
corriente sobre la carga, junto con la cantidad de muestras
* por ciclo */
int cant=N;
Serial.print("Imed: ");
Serial.print(med,2);
Serial.println(" A");
Serial.print("Irms: ");
Serial.print(rms,2);
Serial.println(" A");
Serial.println(cant);
Serial.print("Imax: ");
Serial.print(maximo,2);
Serial.println(" A");
Serial.print("Imin: ");
Serial.print(minimo,2);
Serial.println(" A");
/* Función que muestra a través del monitor serie los parámetros temporales de la señal
senoidal de CA (período, frecuencia, tiempo
Serial.print(th,0);
Serial.println(" us");
Serial.print(tl,0);
Serial.println(" us");
Serial.print("Período: ");
Serial.print(per,0);
24
Universidad Nacional de la Matanza Electrónica de Potencia
Serial.println(" us");
Serial.print("Frecuencia: ");
Serial.print(frec);
Serial.println(" Hz");
void IRQ_Handler_Rising(){
void IRQ_Handler_Falling(){
Esquemático
Se realizó el esquemático del circuito completo del proyecto en KiCad. En él se
incluyen los componentes utilizados para las pruebas (sensor de corriente,
optoacoplador, etc.) así como también los componentes necesarios para que el
circuito pueda funcionar como un RMMO o RMOC (puente de diodos, relés, etc.).
El circuito conmutador entre los tres modos de funcionamiento descritos
anteriormente no se ha implementado físicamente. A su vez, se incluye en el
esquemático el Arduino Nano junto con los pines utilizados para la conexión de
componentes.
26
Universidad Nacional de la Matanza Electrónica de Potencia
Imagen 15. Vista del optoacoplador montado sobre una placa universal,
junto con el sensor de corriente y el tomacorriente para enchufar la plancha
Imagen 16. Vista del Arduino Nano montado sobre un protoboard junto con
el regulador de tensión
27
Universidad Nacional de la Matanza Electrónica de Potencia
28
Universidad Nacional de la Matanza Electrónica de Potencia
Imagen 19. Vista de todos los componentes utilizados para las pruebas
ANEXO 2: Videos
Se realizaron varios videos para verificar el correcto funcionamiento del sistema.
Dichos videos se encuentran en una lista de reproducción de Youtube, denominada
“Proyecto Electrónica de Potencia – 1°C 2022 – UNLAM”. A continuación se adjunta
el link de la lista de reproducción:
Proyecto Electrónica de Potencia - 1°C 2022 - UNLAM - YouTube
29