Equipo Electrónico de Control y Monitoreo de Arreglos de Paneles Solares para Inversores Con Una Entrada DC Mediante Un Interfaz Humano Máquina.
Equipo Electrónico de Control y Monitoreo de Arreglos de Paneles Solares para Inversores Con Una Entrada DC Mediante Un Interfaz Humano Máquina.
Equipo Electrónico de Control y Monitoreo de Arreglos de Paneles Solares para Inversores Con Una Entrada DC Mediante Un Interfaz Humano Máquina.
DISEÑO ELECTROÑICO:
Equipo electrónico de control y monitoreo de
arreglos de paneles solares para inversores
con una entrada DC mediante un interfaz
humano máquina.
AUTOR:
1.1.1 Descripción:
5 https://hetpro- Entendimiento de
store.com/TUTORIALES/i2c/#:~:text=I2C%20es%20un%20puer funcionamiento del protocolo de
to%20y,de%20comunicaci%C3%B3n%2C%20SDA%20y%20SC comunicación I2C.
L.
I2C – Puerto, Introducción, trama y protocolo
7 Revista: Revista del Diseño Innovativo. 2018, 2-2 Factores que afectan la
Autor: TORRES-PACHECO, S., JURADO-PÉREZ, F., producción y eficiencia del
GRANADOS-LIEBERMAN, D. y LOZANO-LUNA, panel fotovoltaico.
Cap: Eficiencia en paneles solares, Pag. 9-21
A considerar que el cableado hacia los sensores, específicamente del sensor de temperatura,
el cual necesita estar en contacto directo con el panel, debe ser canalizado por una vía
diferente a la del cableado de potencia.
Para lograr esto el equipo cuenta con unos sensores de voltaje y corriente en distintos
puntos de nuestro equipo:
Como indica el diagrama, nos vamos a auxiliar del uso de unos relés para entrar y sacar de
funcionamiento las series de los paneles solares, al igual que para el apagado general y las
mediciones del VOC de las series por separado, si el relé de salida general está activo, no
podemos medir el voltaje de las series por individual ya que los voltajes de estas estarán
unidos y se estará midiendo la totalidad de las series.
Las dos flechas (roja y negra) de mayor tamaño, indican la salida de las series ya
combinadas las cuales son medidas nuevamente por un sensor de voltaje y corriente
conectado al bus de comunicación de aquí, se conecta al microinversor, el cual estará
interconectado a la red para completar un sistema “grid tie”.
De la entrada de los paneles solares, la parte de potencia va a los relés de cada una de las
series los cuales tienen la función de sacar de funcionamiento la serie que no esté operando
correctamente. En estas, los sensores de voltaje y corriente estarán tomando los valores,
esta vez, de las series por completo, nuevamente esta información es convertida a digital
para emitirla al procesador.
A partir de este punto llega al relé de salida DC general, encargado de apagar por completo
la salida, lo cual nos sirve para abrir la serie de manera momentánea para tomar los valores
de voltaje en circuito abierto de cada una de las series por separado. Al este estar cerrado se
estará monitoreando el valor de las series ya unificadas, teniendo nuestra salida lista para
acoplarla a nuestro inversor.
Naturalmente, todos los circuitos mencionados, se hacen necesario de una fuente de poder,
en este caso DC, la cual debe tener los requerimientos mínimos de tener salida a 5vdc y
12vdc (1A máximo).
El inicio del funcionamiento del sistema está establecido por el encendido de la fuente de
alimentación DC y la inicialización del software de interfaz humano maquina en la PC. A
partir de este punto se muestran todas funciones apagadas hasta que se pulse el botón de
encendido general.
Se le solicita al usuario, seleccionar dentro de las opciones que hay disponible, seleccionar
un puerto para comunicarse con el equipo, de esta ser efectiva comienza a comunicarse con
nuestro equipo, en caso contrario, se mostrará un mensaje de error y vuelve al paso anterior.
El equipo inicia con las series desconectadas del inversor, al entrar en comunicación con el
interfaz humano máquina, pregunta si está encendido, en caso de que sea así, se procede a
cerrar las series y comienza el ciclo de operación normal de nuestro equipo, el cual cuenta
con dos procesos de manera simultánea:
1. Medir los factores ambientales, enviando los datos nuevamente a la interfaz para
que muestre los datos. Mide los datos eléctricos, se envían nuevamente al bus para
el interfaz. Procesa y compara las informaciones tomadas con estar dando con
referencia a los valores iniciales del panel configurado. Procede a preguntar si los
valores están en rango o no, de ser así, vuelve a comenzar este proceso nuevamente,
en caso contrario, primero saca la serie afectada y notifica a la interfaz para generar
una alerta.
2. Se mantiene evaluando la recepción de datos, la cual tiene tres opciones:
- Señal de cambio manual de las series, ejecutarla y continuar con el proceso.
- Cambio de configuración de los paneles, cambia los valores internos guardados y
continua el proceso.
- Apagar el equipo, con esto se concluye el proceso, apagando las series al iniciar
nuevamente.
Alimentación DC
Se utilizan fusibles de protección para sobre corrientes, uno de 3A para proteger la fuente
de 12v y otro de 1A que es la corriente máxima que soporta el regulador.
El diodo 1N5408 en el positivo protege al LM7805 contra polaridades invertidas. Los dos
capacitores (100nF y 1000uF) en la entrada ayudan a estabilizar la entrada y filtrar los
transitorios.
Por último, una resistencia con un LED en serie está conectada en la salida para indicar la
alimentación del equipo. Este LED indica que la tensión de salida está presente y
proporciona una indicación visual de que el regulador está funcionando correctamente.
Se seleccionó este chip debido a que es capaz de manejar las interfaces de comunicación en
la que está basado el equipo (UART e I2C), aparte de esto, la cantidad de entradas y salidas
disponibles cubre perfectamente con los requerimientos del proyecto, aparte de tener
experiencia previa con su programación.
Este chip está alimentado desde la fuente de alimentación DC antes mostrada y el pin de
RESET está en 5v debido a que este es activo en bajo.
En los pines PC4 y PC5 tenemos conectado nuestro bus de comunicación I2C, en el cual
estarán conectados todos nuestros módulos medidores, estos pines cuentan con una
resistencia Pull-Up se utilizan para mantener un nivel alto en los cables SDA y SCL cuando
no están transmitiendo datos. Esto ayuda a mantener una señal de bus válida y a evitar
errores de transmisión en el bus I2C.
Por lo que, para nuestro prototipo, con los módulos que utilizan tendremos que:
CB INA226= 3pF
CB LM75A= 5pF
CB BH1750= 7pF
CB CJMCU-9515= 9pF
El valor seleccionado de resistencia Pull-up (10k ohms) se encuentra entre los valores
calculados.
Los leds conectados a PB4 y PB5, son para indicar que está funcionando la comunicación y
que el equipo esté encendido respectivamente, esto para conocer estas condiciones de
manera rápida a la hora de hacer pruebas en nuestro prototipo.
Los pines desde el 23 hasta el 26 del Atmega328p, estará siendo utilizados para el pin de
habilitación de los módulos CJMCU-9515, los cuales estarán habilitando el sensor con el
que se desea comunicar, conectando cada uno en su respectivo pin de ENABLE.
TXEN se activa para indicar que el ATmega328P está transmitiendo datos, se envía a 0
para recibir datos desde la PC. RXEN se utiliza para indicar al transceptor que está
conectado a la PC que se estará recibiendo o enviando información. Mientras que,
naturalmente los pines Tx y Rx son por donde se transmite y se recibe la información serial
respectivamente.
Los terminales de control son complementarios entre ellos, lo que quiere decir que, si
tenemos en 1 el TXEN, debemos tener en 0 RXEN.
Basados en dos datos el sensor fue ajustado para aproximaciones reales de las mediciones
de un piranómetro, estos datos son:
En la parte trasera de este módulo hay unos pads con los nombres
de A0, A1 y A2 son pines de direccionamiento que se utilizan para
diferenciar los diferentes módulos que se pueden conectar a un
mismo bus I2C. Al conectar estos pines de manera diferente, cada
módulo tendrá una dirección única en el bus I2C, permitiendo que
hasta 8 módulos puedan funcionar juntos en un mismo sistema. La identificación de cada
uno de los sensores está expresada en una tabla al final del documento.
Para medir la temperatura de los paneles estaremos usando el mismo modelo de sensor que
se mencionó anteriormente, sin embargo, para poder manejar los sensores de temperatura
que llega a los paneles, necesitaremos poder ampliar el alcance de comunicación que
tenemos ya que con el protocolo I2C, tenemos esa limitante, para esto, estaré utilizando el
CJMCU-9515.
En general, se puede decir que la distancia máxima de transmisión con este transceptor en
un bus I2C es de aproximadamente 30 metros. Lo que nos da una distancia más prudente
para poder llegar a los paneles de manera satisfactoria su implementación en el proyecto
dependerá de la magnitud del mismo, por lo que, la cantidad de estos dependerá de manera
exclusiva de cada proyecto en particular.
Cada uno de estos módulos cuentan con un pin de conexión directa al microcontrolador el
cual habilita este transceptor, para poder evitar el conflicto de comunicación que se pueda
presentar entre los módulos.
Partiendo de estos datos y por ley de Ohm tenemos que la resistencia que necesitamos
es:
La potencia máxima por manejar por la resistencia según mis cálculos es de 2v por
10A, lo que nos da un total de 20W, por lo que ara medir corriente estaremos utilizando
una resistencia Shunt de 0.2Ω de 20W, teniendo una capacidad máxima de medida de
corriente por encima de los límites establecidos inicialmente de corriente por serie.
La resolución de medición de un INA226 con una resistencia de 0.2 ohm, una corriente
máxima de 10 A y un voltaje de alimentación de 5 V, se puede calcular utilizando la
siguiente fórmula:
En este caso, el ADC del INA226 tiene 16 bits de resolución, entonces la resolución
sería:
Esto significa que el módulo INA226 puede detectar una variación mínima en la
corriente de 0.244 mA. Esto es, cualquier cambio en la corriente que sea mayor o igual
a 0.244 mA se reflejará en una variación detectable en la señal de salida del módulo.
Para medir el voltaje de estas series se está utilizando un divisor de voltaje, con dos
resistencias del mismo valor, para el caso 300 Ω, de modo que llegue la mitad del
voltaje de entrada al sensor (VBS) ya que la entrada máxima de este módulo es de
36v, de modo que, por las limitaciones inicialmente planteadas por serie, en las
especificaciones, el voltaje no debe sobrepasar los 72v que deberían estar en la entrada
para que sobrepase el voltaje máximo del sensor.
Teniendo como voltaje máximo de entrada es de 72v y las dos resistencias son de
300ohm. La impedancia de entrada del bus de voltaje del INA226 es de 830kohm.
Calculamos la corriente máxima que pasa a través del divisor de voltaje, usando la
siguiente fórmula:
I = 72 / (300 + 2.49)
I = 72 / 302.49
I = 0.2375A
Ahora, podemos calcular la potencia máxima para cada una de las resistencias:
Módulo de conmutadores
Las entradas desde los paneles solares pasan por un fusible de protección y un diodo para
no permitir que se coloque una serie con polaridad invertida, luego de esto, estas pasan por
un relé que controla el funcionamiento o no de dicha serie, lo que a su salida tiene el
módulo medidor de corriente y voltaje INA226, aquí medimos dichos factores de cada
serie.
Luego del módulo de medición tenemos el último relé, en este se interrumpen ambas series
para poder interrumpir la salida total de nuestro equipo.
Para el acople utilizado para la conmutación de los relés tenemos un transistor NPN
2N3904, estos con las respectivas resistencias de base, calculados por el consumo de la
bobina del modelo de relé (bobina equivale a una resistencia de 300 Ω). Se reciben las
señales desde el micro y a través de estos se realizan las conmutaciones.
Para los sensores de temperatura de los paneles se estará utilizando un módulo transceptor, el
cual tiene unos pines de habilitación, estos serán utilizados para poder manejar estos sensores sin
que entren en conflicto con las demás direcciones.
Este PCB pertenece a la tarjeta control principal de nuestro equipo, contiene las etapas de
alimentación, microcontrolador, módulo de comunicación con el interfaz humano máquina
y la comunicación a los módulos medidores, tanto de temperatura, irradiación, voltaje y
corriente.
Las conexiones del bus de comunicación I2C se encuentran en las terminales PC4 (SDA) y
PC5 (SCL), de esta se distribuyen a todos los módulos de comunicación, pasando de
manera directa a los módulos de medición de condiciones ambientales que afectan los
paneles como el LM75A, INA226 y BH1750 de manera directa, a través de un “header”
desde donde se conectarán los cables que van a llevar tanto la alimentación como la
comunicación a dichos módulos. Por otra parte, los módulos de medición de temperatura en
los paneles, como requieren de un transceptor, estas conexiones están hechas directamente
al módulo PCA9515A, el cual, si tiene la salida que va al “header” que comunica con la
entrada de los sensores de temperatura antes mencionado.
Las señales de salida para el control de los actuadores de la etapa de potencia, están
conectados al mismo “header” que están conectados los módulos INA226, de esta forma,
mediante estas señales conectadas a los pines PD5, PD6 yPD7 para controlar las salida
general, serie 1 y serie 2 respectivamente.
En esta tarjeta tenemos 3 leds indicadores donde los colores se dividen de la siguiente
manera:
Esta PCB pertenece a la tarjeta control principal de nuestro equipo, donde tenemos las
entradas de la alimentación DC en el terminal A_U2, los terminales A_U19 y A_U24
perteneces a la alimentación hacia la tarjeta de potencia de los 12v y 5v respectivamente.
Los fusibles están identificados con A_F1 y A_F2, para protección de la entrada total y la
salida del regulador, los valores son de 3A y 1A respectivamente. A_D7 es el diodo de
protección contra polaridad inversa de la alimentación.
El A_U5 es el regulador de voltaje LM7805. Los capacitores A_C3, A_C4 y A_C5 con los
capacitores de acople de la fuente de alimentación.
Los leds están identificados como A_LED4, A_LED1 y A_LED2, los cuales son para
identificar alimentación, comunicación y encendido del equipo respectivamente.
Las resistencias están identificadas con A_R6, A_R29, A_R30, A_R13 y A_R3 estas
pertenecen al pullup de reset, de bus I2C y la limitación de la corriente de los leds
respectivamente.
Los módulos A_U42, A_U40, A_U35 y A_U39 son los módulos transceptores para
comunicar con los sensores de temperatura de los paneles, esto lo hacen a través delos
headers U37, U41, U34 y U25 respectivamente.
La comunicación de las señales de los actuadores está a través del header U38, el sensor de
temperatura e irradiación ambiental se comunican a través de los headers U33 y U36
respectivamente.
Esta PCB pertenece a la tarjeta potencia de nuestro equipo, donde tenemos las entradas de
la alimentación DC en los terminales A_U26 y A_U2 los cuales pertenecen a la
alimentación de la tarjeta de potencia de los 12v y 5v respectivamente.
A_D7 y A_D18 son los diodos de protección contra polaridad inversa de la entrada de las
series de los paneles solares.
Los diodos A_D16, A_D13 y A_D12 están siendo utilizados como freeweelling. Las
resistencias A_R25, A_R27 y A_R31 son las resistencias de la base de los transistores
A_Q11, A_Q13 y A_Q15 respectivamente.
Los relés son los A_U12, A_U13 y A_U14 para la conmutación de las series y de la salida
total de los paneles.
Las resistencias A_R19 y A_R18 son para el divisor de voltaje del INA226 A_M1 y las
A_R16 y A_R17 son para el divisor de voltaje del INA226 A_M2.
Para este diseño se utilizó un registro comercial NEMA 3R con las dimensiones
especificadas, el cual soporta las condiciones climatológicas que se pueden presentar sin
afectar los circuitos que hay internamente. Para conectar los paneles al equipo se utilizan
los terminales “MC4”, el cual, está colocado de manera estratégica a la izquierda de la
tarjeta de control para que los cables de conecten directamente a la misma.
Tanto para la entrada de los cables de los sensores como la salida general de los cables
hacia el inversor se utilizan unos conectores de goma, capaces de mantener las
características de impermeabilidad del registro.
En este punto ya configurado todo, se hace una prueba de comunicación, donde se envía y
se recibe una información desde equipo a la interfaz, en case de que se envíe y se reciba de
manera correcta la información, proporcionamos los valores de especificaciones actuales
que tenemos almacenados en el equipo.
void Configurar_Pines()
Esta función se encarga de configurar los pines de salida de nuestro
microcontrolador (enable de los sensores de temperatura, salida de los leds y
salidas hacia los conmutadores), de igual forma, habilita los pines 27 y 28 como
void Inicializar_Serial()
Esta función se encarga de configurar los registros de la UART, habilitar la
interrupción UART e inicializar como tal la transmisión y recepción de datos de
la UART.
void Inicializar_I2C()
Esta función se encarga de configurar los registros de control del bus I2C y
configurar los parámetros de transmisión del mismo, donde se especificará la
dirección de transmisión de cada módulo, velocidad de transmisión y tamaño de
datos a manejar.
void medir_temperatura_e_irradiación()
Toma las medidas de temperatura tanto de los paneles solares como la
ambiental, esto a través de los módulos LM75A. De igual forma, toma la
medida de irradiación solar mediante el módulo bh1750fvi, ambos módulos por
comunicación I2C, los valores tomados serán guardados en variables que lo
identifiquen para poder ser utilizado posteriormente, estos son enviados por
comunicación serial a la interfaz.
void medir_voltajes_por_series()
En esta función encendemos la serie 1, la 2 la mantenemos apagada, tomamos la
medida de voltaje de cada una mediante su respectivo módulo de medición
INA226, los valores tomados serán llevados a su valor real tomando en
consideración la relación de voltaje de entrada con el voltaje que llega al bus de
voltaje ,los valores tomados serán guardados en variables que lo identifiquen
para poder ser utilizado posteriormente, estos son enviados por comunicación
serial a la interfaz.
void medir_potencia_por_series()
En esta función medimos el voltaje de la serie 1, como están en paralelo, es el
mismo de la serie 2, por lo que, procedemos a medir la corriente de cada serie
mediante el INA226, los valores tomados serán guardados en variables que lo
identifiquen para poder ser utilizado posteriormente, estos son enviados por
comunicación serial a la interfaz.
Como se visualiza en el diagrama de flujo, esta acción se está llevando a cabo con la
recepción de líneas de comandos, donde mediante palabras claves, indica la acción que se
va a realizar directamente.
Para este proceso, para poder medir el voltaje de cada serie se debe apagar una serie, medir
el voltaje de la otra y viceversa, de este modo se tendrá el valor de voltaje real de la serie y
no el equivalente de las series en paralelo.
#include <EEPROM.h>
//Libreria para utilizar la memoria EEPROM, utilizada para guardar valores no volátiles
#include <Wire.h> //libreria para comunicacion I2C
bool comunicando= false; // Definición de variable para indicar al programa que está
comunicando
bool ejecutado = false;
//Definir una variable para saber que los valores por defecto ya se utilizaron una vez
const int T_ref= 25; // Temperatura de referencia del panel solar en condiciones
STC (25 °C) const float irradiacion_ref= 1000; // Radiación de referencia del panel
solar en condiciones STC
float Potencia_esperada1 = 0.0; // Potencia esperada por la serie 1
float Potencia_esperada2 = 0.0; // Potencia esperada por la serie 2
// Modo configuración
void setup() {
//Programa principal
void loop() {
Comparar_temperaturas(Temperatura_Ambiental,Temperatura_Panel_1,Temperatu
ra_Panel_2,Temperatura_Panel_3,Temperatura_Panel_4);
// Comparamos los niveles de temperatura de los paneles
Medir_voltajes_por_serie();
// Medimos los voltajes por serie con su respectiva secuencia de apagado
Comparar_voltajes_de_serie(Voltaje_serie_1,Voltaje_serie_2);
// Comparamos si los niveles de voltaje están correctos
digitalWrite(11, HIGH);
//Encender salida general
Configurar_temporizador_30min();
inspeccion_inicial=true;
else{
Medir_termperaturas_e_irradiacion();
// Medimos los valores ambientales que afectan el equipo
Medir_potencia_por_serie();
// Mide la potencia de cada serie, midiendo corriente y multiplicando por el voltaje
Comparar_produccion_vs_irradiacion_y_temp(Temperatura_Panel_1,Temperatura_
Panel_2,Temperatura_Panel_3,Temperatura_Panel_4,Irradiacion,Coeficiente_Tempe
ratura,potencia,irradiacion_ref,T_ref,Potencia_serie_1,Potencia_serie_2);
//Compara el nivel de producción de los paneles a partir de las variables tomadas
} // End else
} // End While
} // End loop
Introducción de descripción
Debido al tamaño del código, no se pudo colocar completo en este documento, este estará
adjunto en los anexos entregados de manera digital, de igual forma, estará el código de la
interfaz, de modo que estaremos explicando el funcionamiento en general del programa, en
case de ser necesario, estaremos haciendo referencia a una parte del código en específico
para desarrollar su explicación.
Wire: Será utilizada para establecer la comunicación I2C desde este microcontrolador hasta
los módulos de medición
EEPROM: Será utilizada para el manejo de los daos no volátiles que necesitamos
almacenar en el equipo como son los valores de especificaciones del equipo.
Pasamos a declarar las constantes y variables que necesitamos manejar para nuestro
programa, estas son valores de configuración, direccionamiento y declaraciones de
variables de medición y cálculos.
En este punto entramos en nuestro “Setup” donde estaremos realizando las primeras
actividades que se requieren realizar solo una vez por nuestro programa, la secuencia que
sigue es la siguiente:
A partir de este punto entramos en el loop o ciclo principal del programa, el cual se
mantendrá ejecutando mientras que la variable “encendido” permanezca en 1 lógico, de
este modo tendremos que este proceso se estará ejecutando hasta que la interfaz indique que
apague el equipo.
En este punto pregunta por una variable de inspección inicial, la cual solo se realiza una
vez, esta sirve para indicar que ya fue ejecutada la inspección inicial que debe hacer el
equipo al momento de encender, por lo que inicialmente está en 0, se realiza la secuencia de
la inspección que consta de tomar los valores de temperatura y los voltajes por arreglos, de
modo que se pueda determinar alguna situación de falla antes de empezar con la
producción.
Si la variable (inspección inicial) ya es igual a 1, quiere decir que este proceso ya se realizó
al menos una vez, por lo que pasa al proceso normal de funcionamiento, el cual consta de
medir temperatura, irradiación, potencia por serie y realizar las comparaciones de lugar de
cada uno de los aspectos, cada función de estas estará descrita más adelante en la parte de
las funciones.
Menú: En esta solo se muestras las opciones disponibles de formularios que son
especificaciones de arreglos, historial de fallas y el Main (combinador).
Especificaciones de arreglos: En esta se tienen los valores a los que se desea adaptar
nuestro equipo, como la cantidad de paneles en serie y paralelo, la potencia de los paneles y
el coeficiente de temperatura. Este formulario se mantiene, mediante interrupciones del
temporizador, refrescando los valores que son guardados en variables globales que se
almacenan una vez son recibidas mediante comunicación serial, esto con el fin de obtener
los datos por defecto que tiene el equipo cuando enciende, al modificar estos datos y pulsar
guardar se envían mediante comunicación serial al equipo. Las otras funciones generales
son para temas estéticos y de mejora de experiencia para el usuario.
Historial de fallas: En esta se establece conexión con la base de datos creada en Microsoft
Access, la cual contiene la lista de los errores que se han presentado a lo largo del
funcionamiento del equipo, tiene un botón de actualizar para mostrar en una tabla los
valores almacenados en la base de datos.
Main: En esta se establece la comunicación serial, eligiendo el puerto COM al que se desea
conectarse y pulsando conectar, de igual forma, este tiene las visualizaciones de las
variables medidas como la temperatura ambiental, la irradiación solar, voltaje por serie,
corriente por serie, voltaje total y corriente total, también podemos manejar la conmutación
de las series mediante botones habilitados con estas funciones, todo lo realizado con este
formulario es a través de la comunicación serial, el cual estaremos explicando en su
correspondiente módulo.
Todas estas funciones tienen conexión con el módulo de comunicación serial, con el fin de
poder mantener los valores actualizados. De igual forma, cuentan con botones para pasar de
una ventana a otra de los distintos formularios.
Aparte de esto, se realizan las condicionales de recepción que comunican con la base de
datos y especificaciones de los arreglos, para las mediciones de los valores solo almacena
los valores en variables públicas para que se puedan acceder a ellas mediante interrupciones
temporales que se ejecutan con el fin de recoger los valores cada cierto tiempo para
actualizar los valores a mostrar.
¿Para qué sirve? Guardar valores por defecto en espacio de memoria no volátil.
¿Cuál es su tarea? Mediante los parámetros formales, se le indican los valores
almacenados como valores por defecto de los arreglos, esta función tiene la tarea de
tomar esos valores y escribir en la dirección que le corresponde a cada variable, el
valor tomado de los parámetros formales.
¿Qué necesita para hacer la tarea? Necesita que se indiquen los valores de los
parámetros formales y tener acceso a la memoria volátil.
Tipos de datos que se manejan dentro de la función: 3 valores enteros y 2 flotantes,
estos son:
Potencia por defecto: es un valor entero que identifica la potencia por panel del
arreglo, en nuestro caso este valor lo tenemos predefinido como 10W.
Paneles en serie por defecto: Es un valor entero que indica la cantidad de paneles en
serie que tendrá el arreglo.
Paneles en paralelo por defecto: Es un valor entero que indica la cantidad de paneles
en paralelo que tendrá el arreglo.
void EnviarValoresPorDefecto()
¿Para qué sirve? Enviar a la interfaz, mediante comunicación serial, los valores
almacenados en la memoria volátil, estos corresponden a los valores de los arreglos.
¿Cuál es su tarea? En la dirección ya conocida que se encuentran los valores
almacenados, esta función se encarga de tomar esos valores y enviarlos mediante
líneas con formatos predefinidos, a la interfaz mediante comunicación serial
¿Qué necesita para hacer la tarea? Adquirir los valores almacenados en las
direcciones correspondientes de la EEPROM e imprimirla por comunicación serial
con el formato:
“Identificador: Valor”
¿Qué resultados dará? Ninguno
Tipos de datos que se manejan dentro de la función: 3 valores enteros, 2 flotantes
para los datos, sin embargo, no necesita estos datos para operar ya que estos toman
valor dentro de la función.
void serialEvent()
¿Para qué sirve? Para detectar la presencia de información en el puerto serial y
almacenarla para posteriormente ser utilizadas.
¿Cuál es su tarea? Detectar y almacenar la información que llega al puerto serial
para ejecutar las acciones que se requiera según el comando recibido.
¿Qué necesita para hacer la tarea? Que la comunicación serial esté inicializada, que
estén habilitadas las interrupciones, leer el puerto de entrada seria, almacenar el
valor, compararlo con las posibles opciones y ejecutar la acción que se requiera.
¿Qué resultados dará? Ninguno.
Tipos de datos que se manejan dentro de la función: Todos los datos que se manejan
son tipo cadena.
void Medir_termperaturas_e_irradiacion()
¿Para qué sirve? Tomar los valores de temperatura (paneles y ambiental) e
irradiación de nuestra instalación.
¿Cuál es su tarea? Establecer la comunicación con los módulos de mediciones para
posteriormente tomar los datos que estos proporcionen para almacenarlos en sus
respectivas variables y enviar por el puerto serial dichas informaciones.
¿Qué necesita para hacer la tarea? Haber inicializado anteriormente el puerto serial
y la comunicación I2C.
¿Qué resultados dará? Valores de temperatura por panel, ambiente e irradiación
ambiental
Tipos de datos que se manejan dentro de la función: son 6 variables flotantes, 5 de
temperatura y 1 de irradiación.
Fórmula: Irradiación= Luminancia/120;
Este algoritmo parte de la relación que se obtuvo de la prueba experimental tomada,
midiendo al mismo tiempo y en puntos semejantes, la irradiación con un sensor de
irradiación plane y el módulo de irradiancia, donde tenemos que la relación se
mantuvo variando, llegando a una media de /120 el valor de diferencia entre ellos.
void Medir_potencia_por_serie()
¿Para qué sirve? Medir corriente y voltaje por serie en el momento de operación.
¿Cuál es su tarea? Establecer la comunicación con los módulos de mediciones para
posteriormente tomar los datos que estos proporcionen para almacenarlos en sus
respectivas variables y enviar por el puerto serial dichas informaciones.
¿Qué necesita para hacer la tarea? Haber inicializado anteriormente el puerto serial
y la comunicación I2C.
¿Qué resultados dará? Valores de voltaje, corriente y potencia por serie.
¿Cómo retornara los resultados? Variables globales.
Promedio_temperatura_paneles=(Temperatura_Panel_1+Temperatura_Panel_2+Te
mperatura_Panel_3+Temperatura_Panel_4)/4
Se hace una especie de regla de 3 con los valores, teniendo los valores irradiación y
temperatura en los momentos de mayor generación los cuales, al compararse con los
valores actuales, tenemos la relación de que tanto debe subir o bajar según la temperatura y
su coeficiente de temperatura, el cual está especificado en la hoja de datos del fabricante del
panel.
Teniendo este valor como resultado tendremos lo que debe estar produciendo cada panel,
sabiendo cuántos paneles en serie y cuántos en paralelo tendremos, deberemos saber cuál es
en total la potencia que debe producir mediante una sencilla multiplicación.
Para el prototipo en desarrollo se requieren distintos tipos de pruebas. Estas constan más
que nada de poder verificar los distintos elementos que componen el prototipo: el software
y primordialmente, el hardware, por lo que estaremos estableciendo una serie de pruebas
que deben ser realizadas y enfatizaremos el documento a 4 de estas que sean cruciales para
el desarrollo del equipo en cuestión.
Esta prueba consiste en verificar que los relevadores de cada serie y de la salida general, se
activen y desactiven al recibir la señal correspondiente desde el microcontrolador, con una
serie de pruebas que nos ayuden a detectar en qué punto del circuito de su activación se está
produciendo el fallo en caso de que este exista.
En esta se busca poder verificar que los datos que transitan entre la PC y el
microcontrolador no presenten variación, para asegurar que la comunicación será efectiva
en ambos sentidos, es decir, que la información que se envíe desde un punto sea la misma
que se reciba en el otro y viceversa.
En esta se busca validar las medidas desde el módulo de medición INA226 y verificar que
la relación entre el voltaje medido y el real presente una diferencia mínima, al igual que la
corriente medida a través de la resistencia SHUNT guarde relación con la corriente real
atravesando por cada arreglo.
En esta se busca poder verificar las medidas (información en Bytes en el bus I2C) desde los
módulos de medición LM75A de la temperatura a través de los extensores PCA9515A, de
modo que se pueda seleccionar el sensor que se desea leer la medición.
Otras pruebas:
En esta prueba se busca poder verificar que las medidas (información en Bytes en el bus
I2C) que sean tomadas por el módulo de medición de iluminancia BH1750FVI y
compararlo con un medidor de irradiación.
Título: Prueba de conmutación para los relevadores de los arreglos de paneles solares
y la salida general.
Como todos los relés del prototipo esta en base al mismo circuito, dicha prueba solo se
realizará a un circuito de este tipo, de modo que, al momento de necesitar la prueba, se
aplique al circuito de conmutación que presente las fallas.
La importancia de esta prueba se podría situar en la más alta prioridad debido a que
mediante estos elementos es que podemos sacar de funcionamiento cuando uno de los
arreglos no esté funcionando correctamente, o, simplemente, para poder medir de manera
individual cada voltaje por arreglo. Cabe resaltar que sin este bloque de conmutación
nuestro prototipo sería un elemento solo de monitoreo, mas no correctivo.
Con esta prueba buscamos obtener seguridad y fiabilidad de que las conmutaciones se estén
realizando de manera correcta según la señal que esté recibiendo el bloque desde el
microcontrolador.
Para esto estaremos realizando una serie de pruebas en los distintos puntos que afectan la
activación o no del relé. Donde estaremos recreando el escenario que se verá a
continuación:
5 VDC
12 VDC
Potenciómetro de precisión.
1 interruptores de pines (2 posiciones)
Multímetro o voltímetro
Multímetro o amperímetro
Pasos de la prueba:
La idea de tomar estas medidas es, conociendo los valores que estas deben de arrojar en
condiciones correctas, saber qué parte del circuito no está correcta partiendo de los valores
medidos.
Si alguna de las medidas se sale de estos rangos, podemos determinar qué elemento del
circuito está mal:
Si el voltaje de entrada a la resistencia de base está fuera del rango, puede haber un
problema con la emisión de la señal desde el microcontrolador.
Si la corriente de la base del transistor está fuera del rango, puede haber un
problema con la resistencia de base o con el transistor.
Si el voltaje entre el colector y el emisor del transistor está fuera del rango, puede
haber un problema con el transistor o con la carga del relé.
Si la corriente de la bobina del relé está fuera del rango, puede haber un problema
con la bobina del relé o con el transistor.
Si el voltaje de la bobina del relé está fuera del rango, puede haber un problema con
la bobina del relé o con la fuente de alimentación.
Esto para poder observar y verificar el diagrama de ojo de dichas señales, además
necesitaremos la integración de un una PC con la herramienta “monitor serie” donde se
podrán visualizar los datos que están siendo recibidos y de esta forma confirmar que los
datos recibidos son los datos que se desean recibir.
Esta prueba se puede decir que es imprescindible debido que el equipo no funcionará ni
como monitoreo ni como control si no logra comunicarse de manera efectiva con el
programa de computadora que sirve como interfaz humano-máquina, por lo tanto, es de
suma importancia validar el funcionamiento de dicho bus para garantizar que el sistema
será funcional.
Con esta prueba buscamos asegurar que los datos emitidos y recibidos por cada uno de los
elementos coinciden entre ellos.
Analizador G3-E5
Max485
Alimentación 5 VDC
1 interruptor (botón)
1 convertidor USB a USART
1 computadora (+ Selae software)
Pasos de la prueba:
void setup() {
pinMode(buttonPin, INPUT); // configurar el pin del botón como entrada
Serial.begin(9600); // configurar la comunicación serial a 9600 baudios}
void loop() {
buttonState = digitalRead(buttonPin); // leer el estado del botón
if (buttonState == HIGH) {
Serial.write(letter);
delay(100); }} // esperar un momento para evitar la repetición
de envío
Al enviar los datos desde el monitor serie de la PC, estos deben ser iguales a los recibidos
en el puerto serial del microcontrolador.
Esta prueba busca confirmar la fiabilidad de las mediciones del sensor INA226, utilizando
un divisor de voltaje para la entrada del bus de voltaje y una resistencia shunt para medir la
corriente. El microcontrolador solicitará la información al módulo. Además, se utilizará un
analizador digital para medir la trama de datos emitida por el sensor al momento de
solicitar las medidas.
Alimentación 5 VDC
1 interruptor
1 interruptor (botón)
1 amperímetro
1 voltímetro
1 fuente DC.
1 analizador
1 computadora
Pasos de la prueba:
#include <Wire.h>
void setup() {
Serial.begin(9600);
pinMode(interruptorPin, INPUT_PULLUP);
Wire.begin();}
void loop() {
if (digitalRead(interruptorPin) == LOW) {
float busVoltage, shuntVoltage;
Wire.beginTransmission(INA226_ADDR);
Wire.write(0x02); // Registro de voltaje del bus
Wire.endTransmission(false); // No envía una señal de stop
Wire.requestFrom(INA226_ADDR, 2); // Lee los dos bytes del registro
busVoltage = (Wire.read() << 8 | Wire.read()) * 0.00125; // Convierte a voltios
Serial.print("Voltaje del bus: ");
Serial.print(busVoltage, 3); // Imprime con 3 decimales
Serial.println(" V");
delay(5000); // Espera 5 segundos
Wire.beginTransmission(INA226_ADDR);
Wire.write(0x01); // Registro de voltaje shunt
Wire.endTransmission(false); // No envía una señal de stop
Wire.requestFrom(INA226_ADDR, 2); // Lee los dos bytes del registro
shuntVoltage = (Wire.read() << 8 | Wire.read()) * 0.0000025; // Convierte a voltios
Como resultado de esta prueba se espera obtener una medida equivalente a los voltajes y
corrientes mostradas por los elementos medidores, por lo que la relación debe ser la
siguiente:
La resolución del INA226 es de 1,25 μV por bit. Esto significa que cada bit de la salida del
ADC representa un cambio de voltaje de 1,25 μV en la medición del bus de voltaje o del
voltaje del shunt.
Por lo tanto, para un voltaje de bus de 12 V y un voltaje de shunt de 0,85 V, la salida del
INA226 sería:
Voltaje de bus:
Lectura en el ADC: 49152 (decimal)
Salida hexadecimal: 0xC000
Salida binaria: 1100 0000 0000 0000
Voltaje de shunt:
Lectura en el ADC: 2176 (decimal)
Salida hexadecimal: 0x880
Salida binaria: 1000 1000 0000
El formato en que se estarán recibiendo las señales en el osciloscopio debe ser como
muestra el siguiente diagrama:
El propósito de esta prueba es verificar la fiabilidad de las mediciones del sensor LM75A,
que se utilizará para medir la temperatura de los paneles solares. Para esto, se utilizará una
cámara termográfica como medidor de referencia y comparar con las medidas de la trama
que se harán mediante un analizador digital medir la trama de datos emitida por el sensor al
momento de solicitar las medidas.
Alimentación 5 VDC
1 interruptor (botón)
1 analizador digital
1 computadora
Cámara termográfica.
Pasos de la prueba:
#include <Wire.h>
#define transiever_enable_pin 3
#define LM75A_address 0x48
void setup() {
pinMode(transiever_enable_pin, OUTPUT); // Pin de habilitación del transceiver
como salida
digitalWrite(transiever_enable_pin, HIGH); // Desactivar el transceiver por defecto
Serial.begin(9600); // Iniciar comunicación serial
void loop() {
float lee_Temp() {
Wire.beginTransmission(LM75A_address);
Wire.write(0x00);
Wire.endTransmission(false);
Wire.requestFrom(LM75A_address, 2);
int16_t rawTemp = Wire.read() << 8 | Wire.read();
La fórmula establece que el valor medido debe estar dentro del rango del 99% al 101% del
valor de referencia para ser considerado correcto. Esto se traduce en una variación máxima
del 1% en relación con el valor de referencia.
Ejemplo: Para una temperatura de 25 grados Celsius, la salida binaria del LM75A sería:
Combinando ambos bytes, se obtiene: 0000 0000 0110 0100, que en formato hexadecimal
sería 0x0064.
Por lo tanto, para una temperatura de 25 grados Celsius, la salida del LM75A en formato
hexadecimal sería 0x0064 y en formato binario sería 0000 0000 0110 0100.
El formato en que se estarán recibiendo las señales en el osciloscopio debe ser como
muestra el siguiente diagrama:
Esta prueba consiste en verificar que los relevadores de cada serie y de la salida general, se
activen y desactiven al recibir la señal correspondiente desde el microcontrolador, con una
serie de pruebas que nos ayuden a detectar en qué punto del circuito de su activación se está
produciendo el fallo en caso de que este exista.
En esta se busca poder verificar que los datos que transitan entre la PC y el
microcontrolador no presenten variación, para asegurar que la comunicación será efectiva
en ambos sentidos, es decir, que la información que se envíe desde un punto sea la misma
que se reciba en el otro y viceversa.
En esta se busca validar las medidas desde el módulo de medición INA226 y verificar que
la relación entre el voltaje medido y el real presente una diferencia mínima, al igual que la
corriente medida a través de la resistencia SHUNT guarde relación con la corriente real
atravesando por cada arreglo.
En esta se busca poder verificar las medidas (información en Bytes en el bus I2C) desde los
módulos de medición LM75A de la temperatura a través de los extensores PCA9515A, de
modo que se pueda seleccionar el sensor que se desea leer la medición.
Para esta prueba estaremos utilizando el diagrama establecido en la sección anterior, como
no contamos con suficientes multímetros para realizar todas las medidas de manera
simultánea, se estarán utilizando 3 tester, dos de ellos para medir de manera fija las dos
corrientes que nos interesan conocer, como la son la corriente de base del transistor y la
corriente de la bobina del relay.
El otro tester se estará utilizando para medir inicialmente el voltaje de entrada, el cual,
como vimos anteriormente, estará simulando la salida del microcontrolador, aparte de eso,
se medirá el voltaje de colector a emisor y el voltaje que le llega a la bobina.
Estaremos haciendo la prueba con los valores de entrada colocados en el diseño, buscando
tener como resultado la tabla que tenemos en la misma sección, aquí el laboratorio
realizado para la prueba:
Corriente de base
Corriente de bobina
Voltaje
entrada
Resultados obtenidos
Valor lógico Vin (P4-GND) Ib (P4-P0) ICoil (P1-P2) VCE (P2-GND) VCoil(P1-12V) Resultado
0 (min) 0v 0 0 12.3v 0v Apagado
0 (max) 0.8v 0.13mA 0 12.2v 0v Intermitente
1 (min) 4.1v 1.24mA 40mA 0.1v 12.3v Encendido
1 (max) 5v 1.55mA 40mA 0.1v 12.3v Encendido
Aunque de manera práctica surgió esta situación, según los cálculos y los valores a los que
entra en funcionamiento el relay, no debería estar en conducción.
Para esta prueba estaremos utilizando el diagrama establecido en la sección anterior, como
no contamos con el analizador lógico digital, estaremos haciendo la prueba mediante el
Arduino Uno, utilizándolo para tomar las señales de salida del I2C y poder muestrearlas en
un gráfico, el cual estamos viendo mediante el programa “Processing”.
Luego de realizar la prueba en cuestión podemos concluir que la información está siendo
transmitida y recibida de manera correcta cuando se utiliza la comunicación serial directa
desde el microcontrolador y el receptor USB, sin embargo, utilizando el MAX485 la
comunicación “Pierde la forma original”, como se muestran en los valores de medición la
salida desde el microcontrolador coincide con las mediciones del par diferencial entre los
terminales A y B del MAX485, sin embargo, a la salida de estos, la información toma otra
forma.
Para esta prueba estaremos utilizando el diagrama establecido en la sección anterior, como
no contamos con el analizador lógico digital, estaremos haciendo la prueba mediante el
Arduino Uno, utilizándolo para tomar las señales de salida del I2C y poder muestrearlas en
un gráfico, el cual estarmos viendo mediante el programa “Processing”.
Se tomaron las medidas tanto del voltímetro, aperímetro como de la lectura del sensor de
INA226, de esta forma, tendremos las medidas a comparar. El esquema de prueba se ve de
la siguiente forma:
Para el voltaje de 5.8v el valor en binario a recibir debe ser: 0000 0000 0010 0100
Para el voltaje de 0.56A el valor en binario a recibir debe ser: 0000 0001 1011 0100
Para esta prueba estaremos utilizando el diagrama establecido en la sección anterior, como
no contamos con el analizador lógico digital, estaremos haciendo la prueba mediante el
Arduino Uno, utilizándolo para tomar las señales de salida del I2C y poder muestrearlas en
un gráfico, el cual estarmos viendo mediante el programa “Processing”.
Se tomaron las medidas tanto de la cámara termográfica como de la lectura del sensor de
temperatura, de esta forma, tendremos las medidas a comparar. El esquema de prueba se ve
de la siguiente forma:
Prueba #2. Prueba del funcionamiento de los relevadores de las series y la salida general
accionados desde el interfaz humano máquina hacia el microcontrolador:
Esta prueba consiste en verificar que los relevadores entran en conducción o dejan de
conducir según lo requiera el usuario mediante el interfaz humano máquina, para esto,
desde la interfaz se enviará el comando de apagar y encender las series y la salida general.
Prueba #4. Prueba de medición de voltaje de los arreglos de los paneles solares
mediante el INA226:
Esta prueba consiste en validar las medidas desde el módulo de medición INA226 y
verificar que la relación entre el voltaje medido y el real presente una diferencia mínima
de cada arreglo de paneles solares.
Prueba #5. Prueba de medición temperatura de los paneles mediante los sensores
LM75A y los transceptores PCA9515A:
Esta prueba consiste en verificar la temperatura de cada uno de los paneles solares desde
los módulos de medición LM75A de la temperatura a través de los extensores PCA9515A,
de modo que se pueda seleccionar el sensor que se desea leer la medición.
Prueba #6. Prueba de detección de errores y advertencias en los arreglos de los paneles
solares mediante los valores de medición (voltaje, corriente, temperatura e irradiación):
Esta prueba consiste en verificar la “automatización” de nuestro equipo, este debe tener
la capacidad de detectar una situación errónea a partir de los valores de mediciones que
nos arrojan los sensores.
El propósito de esta prueba es poder visualizar los valores de medición que está tomando el
sensor de temperatura en nuestro programa de monitoreo, el cual es nuestra interfaz
maquina humano, para así garantizar el correcto funcionamiento de la comunicación.
La importancia de esta prueba es vital debido a que sin la comunicación eficaz entre el
monitoreo y el equipo nuestro prototipo no tendría sentido debido a que mediante este es
que podremos visualizar los valores actuales de nuestro equipo.
Adaptador
RS485 a USB
Dispositivos a utilizar:
Con la finalización de esta prueba se puede decir que cumplimos con las siguientes
especificaciones:
9.3 PRUEBA # 2
9.3.1 IDENTIFICACIÓN Y DEFINICIÓN
Título: Prueba del funcionamiento de los relevadores de las series y la salida general
accionados desde el interfaz humano máquina hacia el microcontrolador.
Adaptador
RS485 a USB
Dispositivos a utilizar:
Los resultados esperados son la salida del voltaje de entrada en la salida general de la
tarjeta de potencia, debe haber una pequeña caída de voltaje por la resistencia SHUNT que
se está utilizando para medir la corriente de las series.
Al activar solo la serie 1 y la salida general el voltaje de salida debe ser el voltaje de la
serie 1.
Al activar solo la serie 2 y la salida general, el voltaje de salida debe ser el voltaje de
serie 2.
Al activar ambas series de entrada y la salida general el voltaje debe ser el promedio de
estos dos.
Por otro lado, se midieron los voltajes de salida de las dos series y se pudo comprobar que
estos correspondían a las entradas con la caída de voltaje prevista en la resistencia SHUNT.
Es cierto que, al activar ambas series, el voltaje de salida no obedeció a un promedio exacto
de ambos, sino que se mantuvo en un valor cercano a las entradas, pero esto no afectó el
correcto funcionamiento del sistema.
En conclusión, los resultados obtenidos durante la prueba permiten afirmar que el prototipo
electrónico cumple satisfactoriamente con los requerimientos establecidos para la
activación de las series y la verificación de los voltajes de salida.
Adaptador
RS485 a USB
Dispositivos a utilizar:
Para esta prueba, lamentablemente, no pude contar con el sensor de irradiación para poder
compararlo con la medición, sin embargo, como esta equivalencia ya la tomamos
anteriormente en las pruebas para la codificación con el piranómetro de referencia, nos
centramos en poder visualizar los valore de medición de manera correcta en nuestro
programa de monitoreo (interfaz humano máquina).
En la prueba llevada a cabo para medir la irradiación solar utilizando un sensor, se presentó
una limitación importante en cuanto a la falta de referencia proporcionada por el medidor
de irradiación. A pesar de esta limitación, se logró realizar la medición del sensor, el
cálculo de los datos y la visualización de los mismos en la interfaz de manera satisfactoria.
La toma de datos del sensor fue realizada con éxito y se logró una comunicación efectiva
con el microcontrolador encargado del procesamiento y cálculo de los datos. Gracias a la
programación y configuración adecuada del microcontrolador, se pudo obtener la
información necesaria para calcular la irradiación solar.
La visualización de los datos en la interfaz fue también exitosa, permitiendo una fácil y
rápida lectura de los mismos. Aunque no se pudo contar con una referencia proporcionada
por el medidor de irradiación, los resultados obtenidos parecen razonables y se ajustan a los
valores esperados, por lo que se puede decir que esta fue satisfactoria.
La importancia de esta prueba está en que si no contara con la correcta medición del voltaje
y su visualización el equipo pierde la parte de monitoreo, lo que ayuda al control
automatizado o manual si se requiere por el usuario de qué serie quiere dejar trabajando y
cual no sin necesidad de acceder físicamente a los arreglos solares.
Dispositivos a utilizar:
El resultado que se espera es que las mediciones de los voltajes visto para cada una de las
series correspondan con el resultado mostrado en el monitoreo del interfaz humano
máquina en sus respectivas casillas con un margen de error no mayor al 2%.
Por lo que, teniendo de entrada 40v en la entrada de la serie 1 medidas con el tester, en el
programa de monitoreo debe mostrar el valor de 39.2v ó 40.8v.
Tomando las mediciones de las entradas de las series y la interfaz donde estaremos viendo
los valores de cada una de estas tenemos que:
En el marco de la realización de una prueba para medir voltajes por serie y visualizarlos en
una interfaz de monitoreo, se detectó que el divisor de voltaje tenía una relación diferente a
la calculada idealmente debido al margen de tolerancia de las resistencias utilizadas. Como
resultado, fue necesario realizar ajustes en la codificación para compensar esta diferencia.
Después de realizar los ajustes, se verificó que los voltajes medidos por los multímetros y
los valores visualizados en la interfaz coincidían con una diferencia menor al 1.5%. Este
margen de error se había establecido previamente como aceptable para mediciones de esta
naturaleza.
Indicar los valores de medición suministrados del equipo (estado de la serie, valores de
medición).
Hetpro. (s.f.). I2C – Puerto, Introducción, trama y protocolo. Recuperado el 20 de abril de 2023, de
https://hetpro-
store.com/TUTORIALES/i2c/#:~:text=I2C%20es%20un%20puerto%20y,de%20comunicaci%C3%B3n
%2C%20SDA%20y%20SCL.
CUE, University of Cambridge. "Cómo usar el sensor de temperatura por comunicación I2C
LM75A." Read the Docs, 2021, https://cued-partib-device-
programming.readthedocs.io/en/latest/i2c-com-lm75.html.