loading

MERITSUN, the Best Lithium Energy Solution Provider.

arduino mppt solar charge controller (version-3.0) - electrical energy storage systems

arduino mppt solar charge controller (version-3.0)  -  electrical energy storage systems

[Play Video ]
Welcome to my solar charge controller tutorial series.
I have released two versions of my PWM charging controller.
If you are new, please refer to my previous tutorial for the basics of charging controllers. 1. Version-1 2. Version-
2 you can find all my projects on the following website: instructable will cover project build of Arduino based solar max power tracking charging controller.
It features LCD display, Led indication, Wi-Fi data recording, and the ability to charge different USB devices.
It is equipped with a variety of protection circuits from abnormal conditions.
The micro-controller used in this controller is the Arduino Nano.
This design is suitable for 50 w solar panels to charge commonly used 12 v lead-acid batteries.
You can also use other Arduino boards like Pro Mini, Micro and UNO.
The most advanced solar charging controller on the market now is the maximum power point tracking (MPPT).
The maximum power tracking controller is more complex and expensive.
It has several advantages compared to the early charging controller.
Efficiency increased by 30-40% at low temperatures.
However, making a maximum power tracking charging controller is a bit complicated compared to the PWM charging controller.
This requires some basic knowledge of power electronics.
I put a lot of effort into making it simple so that anyone can easily understand it.
If you know the basics of the maximum power tracking charging controller, skip the first few steps.
Maximum power point tracker (MPPT)
The circuit is based on a synchronous buck converter circuit. .
It reduces the higher solar panel voltage to the charging voltage of the battery.
Arduino tries to maximize the watt input of the solar panel by controlling the duty cycle to keep the solar panel running at the maximum power point.
Version specification-
3 charging controller: 1.
Based on the maximum power tracking algorithm.
LED indication of charging status 3.
20x4 character LCD display for displaying voltage, current, power etc4.
Over-voltage/lightning protection 5.
Protection against the trend 6.
Short circuit and overload protection 7.
Wi-Fi data conflicts.
USB port electrical specifications for charging smartphones/Gadgets: 1.
Rated Voltage = 12V2.
Maximum current = 5A3.
Maximum load current = 10A4.
Input voltage = solar panel with open circuit voltage from 12 to 25 v 5.
The project consists of 40 steps.
For the sake of simplicity, I split the whole project into several small sections.
Click on the link you want to see. 1.
Basic knowledge of the maximum power tracking charging controller.
Work and design calculations.
Test the buck Circuit 4.
Voltage and current measurement.
LCD display and LED indicator 6.
Make charging board 7.
Make Cover 8.
Make USB charging circuit 9.
Wi-Fi data recording 10.
Maximum power point tracking algorithm and V-
3: I had a key issue during my prototyping process.
The problem is, when I connect the battery to the controller, the connection between the battery and the switch (
Buck converter)
Then the MOSFET Q3 will burn out.
This is due to short circuit of MOSFETQ3.
So the current flows out of the battery. MOSFET Q3-
Unexpected GND. Update : 29. 07.
I am no longer working on this project due to some problems.
This controller is not working.
So don't try to build if you don't have enough knowledge in this field.
You can get ideas from this project. Update : 05. 01.
I accidentally found this link today.
The author claims that it works for him by making a little modification.
You can look at his work.
The link is given below. Arduino Nano (Amazon/eBay)2. Current Sensor (ACS712-5A / Amazon )3.
Buck converter (
LM2596/Amazon)4. Wifi Module (
ESP8266/Amazon)5. LCD display (
20x4 I2C/Amazon)6 . MOSFETs (
4 X irir44n/Amazon)7. MOSFET driver (
IR2104/Amazon)8. 3.
3 v linear regulator (
AMSS 1117/Amazon)9. Transistor (2N2222 )10. Diodes (
2x IN4148, month x UF4007)11. TVS diode (
2x Amazon ke36ca/Amazon)12. Resistors (
Amazon/3 x 200R, 3 x30r, 1x1 K, 2x10 K, 2x20 K, 2x100 k and 1x470 K)13. Capacitors (Amazon / 4 x 0.
1 UF, 3x10 UF, 1x100 UF, 1x220 UF)14. Inductor (1x 33uH -5A / Amazon )15. LEDs (
Amazon/1 x red, 1 x yellow, 1 x Green)16.
Prototype board (Amazon )17.
Wire, jumper (Female -Female )18. Header Pins (
Amazon/straight male, female, right angle)19. DIP Socket (8 pin )19.
Screw terminals (
3x2, 1x6/Amazon)20. Fuses (2 x 5A)21. Fuse Holders (Amazon / 2 nos)22. Push Switch (Amazon/223.
Rocker/toggle switch (1 no)24.
USB port (1no)25.
JST connector (2pin male -female )26. Heat Sinks (Amazon )27. Enclosure28. Plastic base 29. Spacers (Amazon )29.
Screws/nuts/bolts required: 1. Soldering iron (Amazon )2. Glue Gun (Amazon )3. Dremel (Amazon )4.
Cordless electric drill (Amazon )5. Hobby Knife (Amazon )6. Wire Cutter (Amazon )7. Wire Stripper (Amazon )8. Screw Driver (Amazon )9.
Depending on the parameters, the solar panel will produce different voltages such as: 1.
The amount of sunshine 2.
Load of connection 3.
Temperature of solar panels.
Throughout the day, as the weather changes, the voltage generated by the solar panel changes constantly.
Now, for any given voltage, the solar panel also generates current (Amps).
The amount of amperes generated for any given voltage is determined by a chart called the IV curve, which can be found on the spec sheet for any solar panel and usually looks as shown in figure-1 shown above.
In the picture above-
2, the blue line shows the solar panel voltage of 30 V corresponding to the current of about 6. 2A.
The green line shows that the voltage of 35 V corresponds to the current of 5A.
We know that in the picture above, when you move along the red curve above, power = V x I, you will find a point where the voltage multiplied by the corresponding current is higher than anywhere else.
This is the so-called maximum power point of solar panels (MPP).
Reference: I have downloaded the picture from the Internet (www. solarquotes. com. au )
Explain MPP. What Is MPPT ?
Maximum power point tracking represents maximum power point tracking.
In some cases, the maximum power tracking charging controller used to extract the maximum available power from the photovoltaic assembly.
Look at the picture shown above.
We have seen the maximum power point (MPP)
The solar panels are located at the knees of the current and voltage curves.
12 v solar panels are not really 12 v panels at all.
Depending on the load connected to it and the brightness of the sun, it is actually a place between 12 v and 21 v panels.
The panel has an internal resistance that dynamically varies with the different irradiance levels.
Solar panels can only provide rated power at a specific voltage and load, and the voltage and load move around as the sunlight intensity changes.
For example, take a solar panel with a rated power of 100 watts and a rated power of 18 v as an example. 55 amps. The 18 V at 5.
5 amps means solar panels want to see a load of 18/5. 5 = 3. 24 ohms.
For any other load, the panel will provide power less than 100 watts.
Therefore, if the static load is directly connected to the panel and its resistance is higher or lower than the internal resistance of the panel under MPP, then the power extracted from the panel will be less than the maximum power available.
For a simple example, we connect the 100 W panel above directly to the 12 v lead-acid battery, and since the battery resistance is lower than the panel, the panel voltage will be dragged near the load voltage of the battery, but the current remains unchanged at 5. 55 amps.
This is because solar panels behave like current sources, so the current is determined by the available sunlight. Now the power (P)= V x I = 12x5. 55=66. 6W.
So now the performance of the solar panels is like a 66-watt panel.
This is equivalent to a loss of 100 W-66. 6W = 34W (33. 4%).
This is why the maximum power tracking charging controller is used instead of a standard charging controller like PWM.
Maximum power tracking controller by DC-
A dc converter whose duty cycle changes to track maximum power points.
The buck converter is DC-
The output voltage is always lower than or the same DC converter as the input voltage.
The picture above shows a schematic diagram of the step-down converter.
Working principle: when the MOSFET is on, the current flows through the inductor (L), load (R)
And output capacitance (C )
As shown in the figure-2.
In this case, the diode is biased in reverse direction.
So there is no current flowing through it.
In the on state, the magnetic energy is stored in the inductor and the electrical energy is stored in the output capacitor.
When the MOSFET is turned off, the energy stored in the inductor is folded and the current completes its path through the diode (forward biased)
As shown in figure-3.
When the storage energy in the inductor disappears, the storage energy in the capacitor is provided to the load to maintain the current.
What is a synchronous buck converter?
In the above topology, the diodes used have a considerable voltage drop, which reduces the efficiency of the converter.
In order to improve efficiency, the power electronic switch is used in its position.
Therefore, the synchronous buck converter is a modified version of the circuit topology of the basic buck converter, where the diode D is MOSFET (Q2).
As shown in figure-4.
I want to praise coder in particular-
I got this explanation part of the buck converter from trooper.
You can see his work in our case. The input source is a 50 w solar panel and the load is a 12 v lead-acid battery.
From the previous discussion, we conclude that the buck converter consists of 1. Inductor2. Capacitor3.
Safetsselect frequency: the switching frequency is inversely proportional to the size of the inductor and capacitor and proportional to the switching loss in the mosfet.
Therefore, the higher the frequency, the smaller the size of the inductor and capacitor, but the higher the switching loss.
Therefore, choosing the right switching frequency requires a trade-off between component cost and efficiency.
Keep this limit considering that the selected frequency is 50 KHz.
When designing a step-down converter, the calculation of the inductance value is the most critical.
First, assume that the converter is in continuous current mode (CCM).
Ccc means that the inductor is not fully discharged during the switchoff time.
The following equation assumes an ideal switch (zero on-
Infinite resistance
Resistance and zero switching time)
Ideal diode.
Let's say we input voltage for 50 w solar panels and 12 v batteries (Vin)
= 15 v output voltage (Vout)
= 12 v output current (Iout)=50W/12V =4. 16A = 4. 2A (approx)
Switching frequency (Fsw)
= 50 KHzDuty cycle (D)
= Vout/Vin = 12/15 = 0.
8 or 80 l = (Vin-Vout )
For a good design, dI is ripple current, the typical value of ripple current is between 30-40% of the load current.
Let dI = 35% of rated current = 35% of 4. 2=0. 35 x 4. 2 =1. 47ASo L= (15. 0-12. 0)x 0. 8 x (1/50k)x (1/1. 47)= 32. 65uH =33uH (approx)
Peak inductor current = Iout dI/2 = 4. 2+(1. 47/2)= 4. 935A = 5A (approx)
So we have to buy or make a ring inductor of 33uH and 5A.
You can also design a calculator using a buck converter, so 33uH is enough for our design.
I collected a bunch of ring cores from the old computer power supply.
So I want to make sensors at home.
Although the production took a lot of time, I learned a lot and enjoyed it during the production process.
These are some of the tricks I 've learned during the production process so you can easily make them.
How to wrap the wire: it is very painful for the skin to wrap with your hands, and can't make the wrap so tight.
So I made a simple tool with the popscile stick to wrap the loop core.
This simple tool is very convenient and you can make perfect and tight winding.
You have to know the core specifications and the number of laps before making the inductor.
The important parameters of the ring core are 1. Outer diameter(OD)2. Inner diameter(ID)3. Height (H)4.
I don't know the part number, I identify it by indirect means.
First of all, I measure the OD and ID of the unknown core with my cursor calipers, it is aroundOD = 23. 9mm (. 94'"), ID= 14. 2mm(. 56"),H= 7. 9mm(. 31")
Yellow and white.
I used a ring core diagram (page-8)
Identify the core of the unknown.
I have attached this ring size chart below.
It contains a lot of information about the design of the inductor.
PDF version is attached below.
Find part number: I searched the physical dimension table from the chart.
It is found from the table that the core is t94 to find the mixed number: the color of the core is an indication of the mixed number.
Since my core is yellow/white, it is confirmed that the mixed number is 26, so the unknown core is T94-
26 find Al value: from the Al value table of T94-
The core of 26 is 590 rpm, UM/100 rpm.
After selecting the core, it is time to find out the number of laps needed to obtain the desired inductance. Number of revolutions (N)= 100 x sqrt(
Expected inductance per 100 laps (um/aluminum)=> N= 100 sqrt(33/590)= 23.
65 = about 24 turnsYou can also use this online calculator to find the number of turns.
Only you know the part number and the mix number.
Then I put a 20 KW copper wire (24 turns)
Around the ring core.
Leave some extra wires at both ends of the winding for connecting the wires.
After this, remove the enamel insulation material from the lead.
I used my leather file to remove the insulation.
For a better understanding, see the picture above.
Note: It's not that simple to make a good inductor.
I am still studying.
I suggest you buy a ready-made inductor if you are not confident.
The output capacitor is required to minimize the voltage overshooting and ripple when the buck converter outputs.
Insufficient output capacitance leads to a large overshoot, insufficient capacitance leads to a large voltage ripple and equivalent power
Series resistance (ESR)
In the output capacitor.
Therefore, in order to meet the ripple specification of the buck converter circuit, you must include an output capacitor with sufficient capacitance and low ESR.
Calculation: output capacitance (Cout)= dI / (8 x Fsw x dV)
Where is the voltage ripple Wave dV (dV )= 20mVCout= 1. 47/ (8 x 50000 x 0. 02 )= 183.
I chose the 220 uF electrolytic capacitor.
The equation used to calculate the inductor and capacitor is taken from the dc-LC Selection Guide
An important part of the DC synchronous buck converter is the MOSFET.
Choosing the right MOSFET from the various MOSFETs available on the market is a very challenging task.
These are several basic parameters for choosing the right MOSFET. 1.
Rated Voltage: The Vds of the MOSFET should be greater than 20% or more of the rated voltage. 2.
Rated current: the Ids of the MOSFET should be greater than 20% or more of the rated current. 3. ON Resistance (Rds on)
: Select MOSFET with low on resistance (Ron)4.
Conduction Loss: look at Rds (ON)and duty cycle.
The minimum conduction loss is maintained. 5.
Switch loss: switch loss occurs during the transition phase.
It depends on the switching frequency, voltage, current, etc.
Try to keep the minimum.
In these links, you can get more information about choosing the correct MOSFET. 1.
MOSFET selection for buck converter.
In our design, the maximum voltage is the open voltage of the solar panel (Voc)
The maximum load current is 5A close to 21 to 25 v.
I chose the IRFZ44N MOSFET.
There is enough margin for Vds and Ids values, and Rds is also very low (On)value.
You can check the other parameters of IRFZ44N from the datasheet, why do we need the gate driver?
The Mosfet driver allows a low current digital output signal from the micro-controller to drive the gate of the Mosfet.
The 5 v digital signal can switch high voltage mosfet using the driver.
The MOSFET has a gate capacitor that you need to charge so that the MOSFET can turn it on and off, and the more current you can provide to the gate, the faster the mosfet is turned on/off, which is why you use the drive.
Before that, you can read more details about the MOSFET Foundation. For this design I am using the IR2104 half Bridge Drive.
The IC receives the input PWM signal from the micro-controller and then drives two outputs for the high-side and low-side MOSFET. How to use it ?
From the data sheet, I took the image shown above.
Input: first, we have to supply power to the gate driver.
Given on Vcc (pin-1)
Its value is 10-
According to the data sheet, 20 v.
High frequency PWM signal from Arduino enters (pin-2).
Arduino's shutdown control signal is connected on SD (pin 3).
Output: The HI and LO pins produce 2 output PWM signals.
This gives users the chance to fine tune dead-
With switching of Mosfet.
Charging pump circuit: the capacitor connected between VB and VS together with the diode constitutes the charging pump.
The circuit doubles the input voltage so the high switch can be turned on.
However, this bootstrap circuit only works when the mosfet switches.
The data sheet of IR2104 is attached here, and the input power connector of the solar panel is the screw terminal JP1 and the JP2 is the output screw terminal connector of the battery.
The third connector JP3 is the connection of the load.
The 5A safety fuse is F1 and F2.
The buck converter consists of a synchronous MOSFET switch Q2 and Q3, as well as an energy storage device inductor L1 and capacitor C1 and C2. Inductor smooth switch current and smooth output voltage with C2.
Capacitors C8 and R6 are buffer networks used to reduce the inductor voltage ringing generated by switching current in the inductor.
The third MOSFET Q1 is added to allow the system to prevent the battery from returning to the solar panel at night.
In my previous charging controller, this was done by a diode in the power path.
Since all diodes have a voltage drop, the MOSFET is much more efficient.
When Q2 is turned on from voltage to d1, Q1 is turned on.
R1 runs out of the gate of Q1, so when Q2 is off, the voltage is off. The diode D3 (UF4007)
Is an ultra-fast diode that will start conducting current before Q3 is turned on.
It should make the converter more efficient.
The IC IR2104 is a half-bridge MOSFET Gate Driver.
It drives high-side and low-side mosfet using arduino's PWM signal (Pin -D9).
You can also turn off IR2104 with a control signal (low on pin -D8)
Arduino from pin 3.
D2 and C7 are part of a bootstrap circuit that generates a high-side gate drive voltage for Q1 and q2.
The software tracks the PWM duty cycle and never allows 100% or always on.
It limits the PWM duty cycle to 99.
9% keep the charging pump working.
There are two voltage divider circuits (
R1, R2, R3, R4)
Measure the voltage of solar panels and batteries.
The output of the voltage divider inputs the voltage signal into the analog pin-
0 and analog pins2 .
Ceramic Capacitors C3 and C4 are used to remove high-frequency spikes.
Mosfet Q4 is used to control the load.
The driver of this mosfet consists of transistors and resistors R9, r10.
Diodes D4 and D4 are TVS diodes for over-voltage protection on solar panels and load side.
The current sensor ACS712 detects the current from the solar panel and inputs it into the Arduino analog pin-1.
The 3 LEDs are connected to the digital pins of the micro-controller and are used as an output interface to display the charging status.
Reset switch is helpful if the code is stuck.
The backlight switch is the backlight that controls the LCD display.
Hey, I think I talked a lot about this theory.
So let's do something practical.
As I said before, the core of the Max Power tracking charging controller is the buck converter.
According to me, if your buck converter circuit works fine.
You can do the rest easily.
So let's first test the switches and drives of the Skeets.
I asked to weld on the breadboard before welding.
I blew a lot of mosfet during my test.
So be careful during the connection.
Connect everything according to the schematic diagram given above.
You can now omit the TVS diode, current sensor, and voltage divider.
After the connection, test the resistance between the input rails.
What should be KOhm.
If there is resistance below 1 k, please re-check the circuit connection.
Upload the test sketch to Arduino.
Below is the code in the form of a text file.
Then connect the range between Q1 and the GND source.
The result should be a PWM with a frequency of 50 KHz.
The waveform I obtained during the test is shown in the above figure.
If all goes well then continue to complete the batch converter circuit. (i.
E. increase inductance and capacitance)
In the previous steps, we have calculated the inductor and capacitor ratings.
Now is the time to use and test it.
Add 33uH inductor and 100 uf input and 220 uF output electrolytic capacitor according to schematic diagram.
Can also use 0.
1 uF ceramic capacitor in parallel with the input and output capacitors.
It will bring better results.
But this is not mandatory.
Then use 0 as a buffer circuit.
1 uF ceramic capacitor and 200ohm resistor.
Check again the resistance between the input rails.
It should be the order of K Ohm.
Power the input rails and Arduino now.
Connect the probe of the oscilloscope between the output capacitors.
The results are shown above.
The output should be a stable DC.
Vout = duty cycle x VinFor for example, the output range should be 6 v if I provide 50% duty cycle to 12 input power supplies.
Now we can add the blocking mosfet q1 after confirming that everything is OK.
It is used to block the reverse power supply from the battery to the solar panel at night.
Add a third mosfet Q3 according to the schematic diagram.
Then put the 470 k resistor and diode in 4148.
Checking the output again should be the same.
Finally, place the range between the door of Q1 and Gnd. Do you know ?
You have completed the most critical part of the project.
Voltage measurement: it is well known that the analog input of Arduino can be used to measure the DC voltage between 0 and 5 v (
When simulating reference voltage using standard 5 v)
This range can be increased by creating a voltage divider using two resistors.
The voltage divider reduces the measured voltage to the range of the Arduino analog input.
We can use it to measure the voltage of solar panels and batteries.
For voltage divider circuit Vout = R2 /(R1+R2)x Vin Vin = (R1+R2)
/R2 x analog reading ()
The function reads the voltage and converts it to a digital sample code between 0 and 1023:/reads the input on the analog pin 0 (
You can use any pin from 0 to A5)
Int value = analogRead (A0); Serial. println(value);
The Bove code gives the ADC value between 0 and 1023 calibration: we will read the output value using an analog input from Arduino and its analogRead ()function.
The function outputs the value between 0 (0V in input)and 1023 (5V in input)
Each increment is 0,0049 V (As 5/1024 = 0. 0049V)Vin = Vout*(R1+R2)/R2 ;
R1 = 100 k, R2 = 20 k Vin = ADC count * 0. 0049*(120/20)
The Volt/highlighted part is the scale factor note: this leads us to believe that the 1023 reading corresponds exactly to the input voltage of 5. 000 volts.
Check the voltage sensor for current measurement by additional test code I used the hall current sensor ACS 712 (5A).
The ACS712 sensor reads the current value and converts it to the relevant voltage value, and the value that ties the two measurements together is the sensitivity.
You can find it on the data sheet.
According to the data sheet for ACS 712 (5A)model :1.
The sensitivity is 185 mV/. 2.
The sensor can measure positive and negative current (range -5A…5A),3.
The power supply is 5 v 4.
The intermediate induction voltage is 2.
5 v without current.
Calibration: Value = (5/1024)
* If you do not get 5 v from the arduino 5 v pin, the value = (
Vmeasure D/1024)
* Analog reading/vmeasure is the voltage between Arduino pins 5 v and GND.
You can measure with a multimeter.
But the offset is 2 according to the data table. 5V (
You get 2 when the current is zero.
Output 5 V from the sensor)
Current in amplifier = (value-2. 5)/0.
185 test it by the sample code of ACS712 attached below.
LCD Display: 20X4 char LCD for monitoring solar panel, battery and load parameters.
For simplicity, the I2C LCD display was selected.
Only 4 lines are required to interface with arduino.
In my previous design, the LCD consumed a lot of power.
The main reason is the LCD backlight.
So I added a button switch to control the backlight.
The backlight will be turned off by default.
If the user presses the switch, it will turn on for 15 seconds and then turn off again. Vcc--> 5V , GND-->GND, SDA-->A4 and SCL-->A5Column-
1: solar panel voltage, current and power column-
2: battery voltage, charger status and socket-
3: for testing the PWM duty cycle and load status of the LCD download the test code attached below.
You download the library of LiquidCrystal_I2C.
LED indication: red, green and yellow LEDs are used to indicate the level of battery voltage. Low Voltage --
Normal voltage-red led-
Green led fully charged--
You should clear the power supply and control signal before welding.
Don't confuse them.
Or you fired everything. Power signal: 1. Solar panel -> Fuse -
> Current sensor-
> Postgets Q1, Q2, Q3-> Inductor -> Battery. 2. Battery -> Fuse -> Load -
> Mosfet Q4 control signal: 1.
Signals from different sensors to arduino2.
The signal of Arduino to Mosfet driver, LED, LCD.
The signal between Arduino and ESP8266I uses red and black thick lines (0. 5 to 0. 75 sq mm)
For power supply and ground connection respectively.
All fine colored lines are used to control the signal.
Warm Tip: print the PDF format diagram before welding.
During the welding process, keep it in front of you for reference.
The prototype board is first held by a pair.
Then drill 4 holes (3mm)
At 4 corners of the prototype plate.
First weld three screw terminals for solar panel, battery and load connection.
The solar panel is on the left, the battery is in the middle, and the load connection is on the right.
Weld two fuse holders on the far left and far right. (
One on the side of the solar panel and the other on the load side)
Then connect the left Terminal of the solar screw terminal with one leg of the fuse holder.
Weld all 4 mosfet with equal spacing on the prototype board. (
Leave some space for radiator)
Then add the input 100 uF capacitor.
I left some space between the fuse holder and the capacitor for the current sensor to be installed later.
The following welding cable: between the positive terminals of the input capacitor (C)
Source of Mosfet q1.
Between the drain of Mosfet Q1 and q2.
Then between the source of Q2 and the loss of q3.
First cut two rows of head and head pin, 15 pins per row.
I used an oblique clamp to cut my head.
Then weld the male pin.
Make sure the distance between the two tracks matches the arduino nano.
Leave two lines on each side of the female head and weld the two female heads.
Then shorten the corresponding public and female sales.
Although I forgot this during the welding process.
The female head is used to install the Arduino nano and the female head is used for external connection with the Arduino.
To run Arduino, different sensors, LED, LCD, and wifi modules (ESP8266 )we need power.
With the exception of the ESP8266 module, all other modules can be operated via a 5 v power supply.
The ES8266 module does not require more than 3 power. 7V.
It is recommended to run on 3. 3V.
There are 3 Arduino Nano though.
3 V pin but not enough power (
About 200 mA to 300 mA)
Run the ESP8266 module.
So we need a separate 3.
3 v power supply capable of providing at least 300 mA current.
5 v power supply: in my previous version, I used the LM7805 linear voltage regulator to reduce the battery voltage of the power supply to 5 v.
But it generates a lot of heat during work.
So I used an efficient buck converter in this design.
Adjust the output voltage of the buck converter: first connect the battery at the input of the buck converter and adjust the potentiometer to get the 5 v output.
See above.
Cut 4 male heads with 2 pins.
Weld the joints according to the holes given in the converter.
Place the converter on the 4 header pins above and weld it on the top.
Make sure the input side is facing the battery screw terminal.
Increase output capacitance (C2)
Close to battery screw terminals.
The positive pole of the capacitor should be on the left.
The input of the step-down converter is then connected to the battery screw terminal and output to the 5 v and GND pins of the Arduino Nano.
You can check it at this stage.
Place the Arduino nano on the head pin and connect the 12 v battery to the screw terminal.
Arduino power led should glow if everything is OK.
Finally, add two lines of male head pins on the side of the Arduino 5 v and GND pins for external connections. 3.
3 v power supply: I plan to drop from 5 v to 3 using the voltage regulator AMS1117. 3V.
Weld the voltage regulator first and then add two 10 uF capacitors.
One at the input and the other at the output.
See the schematic diagram above.
First weld the 8-pin DIP socket above the arduino head pin.
Add 10 uF capacitors, plus 0.
There is 1 uF capacitor between the pins1 and pin-4.
Welding diode (D2)
Between pins1 and 8.
The diode cathode should be connected to the pin-8.
Welding the capacitor (C7)in between pin-8 and pin-6.
Welding two 200ohm resistors (R7 and R8)
Right next to the pin. 2 and pin-3.
Welding a resistance of 470 K (R1)
Near mosfet Q1 and diodes (D1)
Between the gate of mosfet Q1 and q2.
The diode cathode is connected to the gate of q1.
After that, the circuit is completed by welding the wires according to the schematic diagram.
Weld the solar panel divider near the fuse and the battery divider near the output capacitor.
Then weld two ceramic capacitors (C3 and C4)
On the resistance level of 20 k
Then weld a wire between the middle point of the solar panel side divider and the arduino pin a2.
Finally, weld the wire between the center of the battery side divider and the arduino pin a2.
Welding resistance first (R6)and capacitor (C8)
The output capacitor is directly connected in series (C2).
The inductor is then welded to a parallel position.
Inductance is a heavier part of the whole circuit.
To sit firmly, apply glue to the base.
Then solder the super fast diode (D3).
Weld a 2N2222 transistor near the mosfet Gate (Q4).
Then add a 10 k resistor (R9)
Near the collector and 1 k resistor (R10)
Near the base.
Then connect these points according to the schematic diagram.
Weld two thick lines between the solar panel side fuse and the capacitor (C1).
Then screw the wire into the ACS712 screw terminal.
I don't have a backup TV diode.
So I will weld it later.
You can also weld earlier.
A tvs diode near the connector JP1, D4, 5 near the connector jp3.
Note: I am using a two-way TV diode.
So there is no polarity mark.
After welding all components, connect all grounding (GND)
Schematic diagram shown in.
I use the thick black line.
The buck converter for power supply can provide maximum current 3A.
Therefore, there is enough room for the power supply to charge the USB device.
Make the circuit: weld the male JST connector near the step-down converter and connect the two pins (5V )and negative (GND )
Remove from the converter. Look at the picture.
Plug in the USB port and switch to the front slot.
Then apply hot glue around them.
Welding Red Line (+ ve )
JST connector to a terminal of the switch.
Then weld a small red line between another terminal of the switch and the USB Vcc terminal.
Finally welded black wire (-ve )
JST connector for usb gnd.
See the above figure for USB pin output.
You can also take a step in advance.
Cut 2 female heads first, each with 4 pins.
Weld side by side near the load side fuse seat.
Complete the circuit according to the schematic diagram.
Be careful when welding this module.
The voltage exceeds 3.
7 v kills this module while working at 3. 3 V .
Even the series line should not exceed this voltage.
I plan to use a 3. 3 V regulator (AMS1117 )
Power this module
Use the voltage divider circuit to convert arduino Tx (5V )to ESP8266 3. 3 V (RX).
Set up ESP8266: The first thing you want to do with ESP8266 is to establish communication.
You can see this sample project for setting up esp8266.
Then connect it to the WiFi router.
Hey, now you're ready to upload the data to the network.
You can see the following items for some ideas on the data uploaded to the web using ESP8266.
The ESP8266 obtains the connection schematic from the solar panel installed in a remote location, and the monitoring system parameters are critical to us.
This reminds me of adding the data logging feature to my controller. WiFi module (ESP8266 )
Automatically upload real-time power generation, voltage and current data to the Web ().
Then there is the web application diagram and the table data in live.
You can download the feed from the website as an Xcel form.
The data is then further analyzed.
I have attached a sample of the feed downloaded from thingtalk.
The test code is attached below.
Hey, if you're really excited to see how the micro WiFi module uploads data to the network.
Just upload the test code attached below.
You can test it without any sensors connecting to the arduino.
You get arbitrary values though.
It's just for fun :)
See the chart on thingtalk. com . Interesting ? ?
Note: You can use this test code for other multi-sensor systems such as weather stations.
It's just that you have to calibrate your sensor accordingly.
Go to data import/export and click download ".
See the photo above.
If you are an app developer, then develop an app for Android, iPhone, and Windows Mobile to view these useful data.
Please share me if you let.
I'm not a developer.
Install a small size rectangular prototype plate on the shell and drill holes at both ends.
Solder LEDs with equal spacing.
Then weld the 330 ohm resistance (R11, R12 and R13)
And 4 pin heads.
Finally complete the circuit according to the schematic diagram. Take 5 female -
Jumper and cut one side head in all women.
Insert the Heat Shrink tube in all jumpers.
Reset switch: weld the two jumpers directly to the two pins of the button switch.
Backlight switch: weld two jumpers to two pins of the switch.
Solder the 10 k resistance onto any one pin of the switch.
The jumper is then welded to the other end of the resistor.
Finally cover the joint with a heat shrink tube and apply hot air.
I used a plastic case of 6 "x 8.
Marked LCD, USB and switch size.
Then use dremel to cut out the rectangular part.
Finally finish the edge with a hobby knife.
The mounting hole position of the LCD, LED panel, switch and external screw terminals is then marked with a pencil.
Drill holes in all marked positions.
Note: the hole size of the LED is 5mm and the switch is 7mm, all others are 3mm.
The external connector is used for external access to all 3 screw terminals on the controller board.
Mark the hole position of the installation and 6 wires.
Then twist the wires on all terminals.
Different colors are used to distinguish the positive and negative ends.
I used 4 plastic bases to install the controller board.
Screw the motherboard to the end of the seat.
The LCD and Led panels are mounted with screws and bolts.
Then two switches are installed.
After installation, all devices connect panels, switches, and external connectors. Use female-
The parent jumper used to connect the panel.
Connect the reference schematic.
Finally box the case.
The maximum power tracker uses an iterative approach to find this ever-changing MPP.
This iterative method is called Perterb and Observe or mountain climbing algorithm.
In order to achieve maximum power tracking, the controller adjusts a small amount of voltage from the solar panel and measures the power, and if the power increases, attempts to adjust the direction further until the power no longer increases.
The voltage of the solar panel will initially increase, and if the output power increases, the voltage will continue to increase until the output power starts to decrease.
Once the output power starts to decrease, the voltage of the solar panel decreases until the maximum power is reached.
This process continues until the maximum power point is reached.
This result is an oscillation of the output power around MPP.
Download all the software from my GitHub page, special thanks to Keth Hungerford and Petar, who are new members of my project and actively contribute to the project.
Keith plays a key role in designing this new version of the charging controller.
Currently, we plan to see the following changes in the existing version of the charge controller.
The changes at this moment are: 1.
Increase panel rated voltage to allow panels with 60 batteries (i.
Up to 40 v, so-
Called grid connection panel); 2.
The rated current is high, at least 20 am ps, preferably 40 amps; 3.
Metering current on battery and load; 4.
Improve the robustness of the design to ensure that no failure is caused by external conditions; 5.
Allows multiple controllers to enter the design of the power distribution switchboard; 6.
For several different battery types, such as lead acid (
Several variations), NiFe, LiFePO; 7.
Ability to control multiple load outputs-allows for a larger capacity, or timing controls when the output is on or off. 8.
A real-time clock with a date that enables timer control of the timestamp and load of the statistics. 9.
Operational configuration capability (
Button or via WiFi? ); 10.
Get more data collection for lighting statistics, battery performance statistics, load statistics. 11.
Battery voltage (to 24 or 48 V)
And related higher solar panel voltage; 12.
Panel voltage is much higher (to 150 V or so)13.
Adjust to multiple load outputs close to 12 v14.
In addition, there are some "internal" issues worth investigating: all ongoing activities are in Arduino-MPPT-V4 folder (. rar file).
I ask all of my followers, team members and viewers to make suggestions on this.
You can write your suggestions/feedback in the comments section below.
After many tests, we found the MOSFET (Q3 )in ver-3.
The design is repeatedly burned.
We tried to modify the existing software but did not find any satisfactory results.
Another problem is MOSFET Q1 (in V-3. 0)
Do it even if there is no solar input.
In order to solve the above problems and improve the power processing capacity, we are modifying the hardware and software.
This is named version-3.
1 charging controller.
This version has not been completed yet.
So wait until it's done.
Don't worry, we're making V for those-3. 0 prototype.
After a small modification, we can use the new software.
You can see the update on Hackaday.
There are 3 options for this version. 1.
5 amp version: T94-
26 laps, 48 laps on the AWG20 line to 135 (
Almost need 1. 5m of wire)
Q1, IRFZ44N Q2 and Q3 are both mosfet (6 in all).
C1 will be a 3*220 uF low ESR capacitor in parallel and C2 will be a single ACS712 for a single 220 uF low ESR Capacitor on the panel side according to version 3. 0 2.
8 amp version: T2013-
26 turns of winding, 23 turns of composite wires made of 3 AWG20 wires wrapped together, to 47 um (
It takes about 3. 1 m of wire).
Q2 will be a pair of parallel fdp50n10a mosfet.
C1 will be a 5*220 uF low ESR capacitor in parallel and C2 will be a single 220 uF low ESR Capacitor for two ACS712, one on the side of the panel, according to version 3.
0 and 1 are connected in series with the battery.
3 10 Am p version: t1 30-
26 turns of winding, the composite wire made of 4 strands of AWG18 wires wrapped together has 23 turns, giving 41 um (
This takes about 4. 5 m of wire).
Q2 will be a pair of parallel fdp50n10a mosfet.
C1 parallel 6*220 uF low ESR capacitors and C2 parallel 2*220 uF low ESR capacitors.
Three ACS712, one on the side of the panel according to version 3.
0, one in series with the battery, one in series with the load.
Drive circuit (
All 3 versions are generic)
Three independent IR2104 driver chips will be used, one for Q1, one for Q2 and one for q3.
We drive Q1 and Q2 drives from pins D9, HO1 and HO2, and Q3 from pins D10 and lo3.
In driver chips 1 and 2, Arduino output pins 9 drive In and SD pins In parallel.
In the case of driver 1 (for Q1)
There is a low-pass RC filter in series with a time constant of about 1 ms.
Direct drive 2 (
As in the current circuit, but it is possible to use a slightly higher series resistance to allow more current to the Q1 driver and its RC filter).
In the driver chip 3, the In is driven by the D9 and the SD is driven by the d10.
The purpose of using a separate driver for Q2 and Q3 is to enable us to be in the DCM (
Current discontinuous mode).
There may be a better way to do this, but in the short time we have available, this is a simple option that is easy to implement.
LCD display, WiFi, LED indicator should be available in all 3 versions (
Maybe there is a more fancy coding scheme to represent both DCM and cm separately).
All 3 versions should be able to cope with the 18 V or 30 V panels, using algorithms to prevent them from running out if the panels are able to produce current that exceeds the rated current.
All this can be done automatically. detect.
All components exposed to panel voltage require a rated voltage of at least 40 V (
In particular, C1 and our step-down converters generate a 12 v voltage for the driver and supply power to the control electronics.
I have done my best to make this manual.
So far I am learning more about maximum power tracking.
So please forgive me if I make any mistakes and make a comment.
I will rectify it as soon as possible.
I like to receive feedback about my project!
The early version of the charge controller has received a lot of feedback, and many users have posted pictures of their build.
If you follow this instructions to make your own controller, please share the pictures and videos.
Finally, I would like to thank Tim Nolan in particular.
As I learned and used something from his design.
Subscribe to me for more updates and new items.
Thank you very much for reading my instructions.

GET IN TOUCH WITH Us
recommended articles
Knowledge Successful case News
Dell mini 1012 battery is generally hailed because just in regards most strong along with high-performance pc add-ons across the world.
Basic Care And Problem solving Of the LiFePO4 E-Bike Battery
A typical selection for running the hyperlink motor products are commonly a LiFePO4 battery bunch (Lithium-Iron-Phosphate).
Choosing an Electric Motorcycle Battery Information on Getting Rechargeable Electric powered Bicycle Batteries
E-bikes are becoming popular being an environmentally friendly and also wholesome means of almost sweat-free carry.
External Battery also be called mobile power.
Lithium Phosphate (LIFEPO4) Rechargeable Batteries
Lithium Iron Phosphate (LiFePO4) Batteries that are launched providing 96.
State regulators have approved the purchase of battery storage to support energy supplies in southern California, and as Aliso Canyon gas storage facilities are in trouble, energy supplies in southern California face potential shortages.
Co-conjugated polymer molecules are considered as promising electrode materials for the next generation.
The battery in the home safety system is an important part of the system
Maybe the most important part.
BANGALORE (Reuters)-Makers of lead-
Acid batteries are developing new battery types to boost fuel growthEfficient, stop
Start technology
The car engine turns off when the vehicle is not moving, but when the driver steps down the throttle, the engine starts automatically.
no data
Established in 1999, we have 20+ years of energy professional experience and integrated solutions services in energy storage application industrial, and further reach the demands the smart & green energy era. 
Copyright ©1999-2025 MeriTech Power Limited | All Rights Reserved | Sitemap | Privacy Policy
Customer service
detect