This circuit is designed to monitor the performance of solar panels using current and voltage sensors. It includes solar panels, current sensors (MAX471), a solar charge controller, a battery, an Arduino UNO microcontroller, and an ESP32 microcontroller for potential communication capabilities. The Arduino UNO reads the current and voltage from the solar panels through the MAX471 sensors and outputs the data to the Serial Monitor. The solar charge controller manages the charging of the battery from the solar panels.
+
(Positive), -
(Negative)Vin
(Voltage Input), GND
(Ground), Vout
(Voltage Output), AT
(Analog Current Output), VT
(Analog Voltage Output)Solar Cell +
, Solar Cell -
, Battery +
, Battery -
, Load +
, Load -
A0
to A5
(Analog Inputs), D0
to D13
(Digital I/O), GND
(Ground), Vin
, 5V
, 3.3V
, Reset
, IOREF
, SCL
, SDA
, AREF
GND
(Ground), 12V
(Positive)EN
, VP
, VN
, D34
to D27
, D14
, D12
, D13
, GND
, VIN
, 3V3
, D15
, D2
, D4
, RX2
, TX2
, D5
, D18
, D19
, D21
, RX0
, TX0
, D22
, D23
, BOOT
+
connected to Vin
of MAX471.-
connected to GND
of MAX471.Vin
connected to +
of Solar Panel.GND
connected to -
of Solar Panel and GND
of Arduino UNO.Vout
connected to Solar Cell +
of Solar Charge Controller.AT
connected to A0
or A2
of Arduino UNO (depending on the instance).VT
connected to A1
or A3
of Arduino UNO (depending on the instance).Solar Cell +
connected to Vout
of MAX471.Solar Cell -
connected to GND
of MAX471.Battery +
connected to 12V
of 12V 200Ah Battery.Battery -
connected to GND
of 12V 200Ah Battery.GND
connected to GND
of MAX471.A0
connected to AT
of MAX471 (Panel 1).A1
connected to VT
of MAX471 (Panel 1).A2
connected to AT
of MAX471 (Panel 2).A3
connected to VT
of MAX471 (Panel 2).D0
connected to RX0
of ESP32.D1
connected to TX0
of ESP32.GND
connected to Battery -
of Solar Charge Controller.12V
connected to Battery +
of Solar Charge Controller.TX0
connected to D1
of Arduino UNO.RX0
connected to D0
of Arduino UNO.// Pin analog untuk sensor MAX471
const int AT_PIN1 = A0; // Pin AT untuk sensor Panel 1
const int VT_PIN1 = A1; // Pin VT untuk sensor Panel 1
const int AT_PIN2 = A2; // Pin AT untuk sensor Panel 2
const int VT_PIN2 = A3; // Pin VT untuk sensor Panel 2
void setup() {
Serial.begin(9600); // Inisialisasi komunikasi serial
}
void loop() {
// Membaca data arus dan tegangan dari Panel 1
int atValue1 = analogRead(AT_PIN1);
float current1 = (atValue1 / 1024.0) * 5.0 / 0.1; // 1V = 1A, 0.1V = 0.1A (skala 0.1V/A)
int vtValue1 = analogRead(VT_PIN1);
float voltage1 = (vtValue1 / 1024.0) * 5.0; // Tegangan analog 0-5V
// Membaca data arus dan tegangan dari Panel 2
int atValue2 = analogRead(AT_PIN2);
float current2 = (atValue2 / 1024.0) * 5.0 / 0.1; // 1V = 1A, 0.1V = 0.1A (skala 0.1V/A)
int vtValue2 = analogRead(VT_PIN2);
float voltage2 = (vtValue2 / 1024.0) * 5.0; // Tegangan analog 0-5V
// Mengirim data ke Serial Monitor
Serial.print("Panel1_Current: ");
Serial.print(current1);
Serial.print(" A, ");
Serial.print("Panel1_Voltage: ");
Serial.print(voltage1);
Serial.println(" V");
Serial.print("Panel2_Current: ");
Serial.print(current2);
Serial.print(" A, ");
Serial.print("Panel2_Voltage: ");
Serial.print(voltage2);
Serial.println(" V");
delay(1000); // Delay 1 detik untuk pembacaan berikutnya
}
void setup() {
// put your setup code here, to run once:
}
void loop() {
// put your main code here, to run repeatedly:
}
Note: The ESP32 code provided is a template and does not contain any functional code related to the current circuit.