Blog  /  Arduino Solar Charger- All You Need to Know about the Solar Charger System

Arduino Solar Charger- All You Need to Know about the Solar Charger System

Solar power is among the most easily dependable energy sources. Primarily, with a solar panel, you can tap the solar energy for your basic household use.

We'll explore a simple Arduino solar charger project that you can consider for your college or mobile project. Keep reading for further enlightenment.

What is an Arduino solar charger?

Illustrating the Solar Energy Flow from source to load

Figure 1: Illustrating the Solar Energy Flow from source to load

It's a stackable shield that you can use together with Arduino-compatible platforms that are primarily useful as an energy harvester. In addition, it also functions as an adaptive battery power source and finds specific use in in-field charging applications.

Also, using it together with a 3.0V-4.2V battery will shift the voltage to a 5V output voltage.

Main Functions of Solar Charge Controller

A Solar charge controller's main role is circuit protection. Further, it is responsible for the following functions:

  1. It guarantees battery overcharge protection by cutting the battery's energy content supply/ charging current once fully charged.
  2. Secondly, it also stops battery over-discharge by initiating battery disconnection from the electrical loads. The deep discharge protection occurs once the battery is in a low state of charge.
  3. In addition, it is imperative to enhance load control/ current protection functions. Primarily, the feature ensures automatic electrical load connection and disconnection, thus ensuring overload protection.
  4. Further, it is a shield over abnormal conditions such as over-current, over-voltage, short-circuiting, and vagaries of nature like lightning.
  5. Also, it enables indication/display,  serial communication, and USB charging for smart devices.

Types of solar charge controllers

Solar energy is a renewable energy source. 

Figure 2: Solar energy is a renewable energy source. 

Most PV power systems employ either of the following two charge controllers.

Working Principle of a PWM Charge Controller

Battery Charging With Solar Panel blue gradient vector icon

Figure 3: Battery Charging With Solar Panel blue gradient vector icon

Primarily, the charge controller employs the Pulse Width Modulation technique in electric charge regulation. It pulls the solar panel voltage close to the battery voltage level.

Normally, the Solar panel Vmp to battery system voltage dragging doesn't result in a current change.

Also, the system uses an electronic switch, often a MOSFET, to control the battery connection and disconnection. If the MOSFET is at a high-frequency PWM signal, while accompanied by various pulse widths, expect a constant voltage.

Therefore, the PWM controller self-adjusts through variations of widths and the frequency of the pulses.

A 100% pulse width will switch on the MOSFET, thus prompting bulk charging of the battery by the solar panel. Conversely, a 0% pulse width switches off the MOSFET.

How the Charge Controller Works

Illustrating the recyclability of Solar Energy

Figure 4: Illustrating the recyclability of Solar Energy

The Arduino PWM solar charge controller is an agglomeration of various circuits that we'll explore at length below.

Power Distribution Circuit

The circuit's MP2307 buck converter steps down the battery power to 5V. Next, the output voltage from the buck converter moves to the following four parts:

Input Sensors

It has voltage divider circuits with several resistors. These are responsible for detecting the solar power voltage and the battery voltage. Also, the course has two filter capacitors responsible for unwanted noise signal elimination.

Further, the circuit has ACS712 modules for sensing the battery and solar panel currents. Besides, there is a DS18B20 temperature sensor for measuring the requisite battery temperature.

Control Circuits

The circuit's two MOSFETs are responsible for the control operations. The first MOSFET is handy in sensing a charging pulse to the circuit's battery. On the other hand, the second MOSFET is imperative in driving the load.

Ideally, two transistors and two pull-up resistors facilitate the functioning of the MOSFETS driver circuits. Lastly, the transistors have two resistors that are handy in controlling their base current.

Protection Circuits

Solar Panel Battery

Figure 5: Solar Panel Battery

The circuit features a TVS diode for protecting the solar panel from an input overvoltage. Furthermore, a Schottky diode hinders a reverse current from the circuit's battery to the solar panel. Finally, the course also has a fuse to enable overcurrent protection.

LED Indication

The system's LEDs indicate the battery, load current, and solar panel status.

LCD Display

In addition, it also has an LCD system for showcasing its varying parameters.

USB charging

It also has a USB socket featuring a 5V output supplied by the buck converter. Thus, with a USB cable, you can charge your devices using clean energy from this point.

System Reset

Lastly, a push-button is responsible for resetting the Arduino UNO/Arduino Nano.

Each of the above circuits and components is important in the operation of the charge controller. The system's core is an Arduino Nano/Arduino UNO board. The Arduino detects the solar panel's voltage and that of the connected batteries via voltage divider circuits.

Next, while using the information it has detected (voltage levels), the Arduino Nano controls the battery while charging the load.

The Video below Illustrates how a PWM charger circuit operates:

How to create an Arduino solar charger?

First, assemble the necessary parts and tools for this process. Here are the parts and tools you'll need.

Two Arduino Nano Boards

Figure 6: Two Arduino Nano Boards



Step by Step Guide

  1. Assembling solar powered battery charger
Assembling the Circuit

Figure 7: Assembling the Circuit

Foremost, you'll need to make the connections of the lithium battery charger circuit. Ideally, the course will generate energy from the solar cells to charge the batteries. Next, it'll boost the circuit output voltage to 5V for use by the Arduino UNO.

  1. Timer Circuit

Next, set up an external timer circuit for periodic power switching off while the system is in idle mode and back on when necessary. Note that a timer circuit in an off way uses a limited amount of milliamps. Thus, it's a handy energy saver.

After assembling the Timer circuit, move to the next step.

  1. Complete circuit and testing

Once you're sure the timer circuit is operational, connect its output pins to the Arduino's GND and 5V pins.  


You are now enlightened regarding the operational principle of the Arduino Solar charger circuit. But you're also free to express your sentiments and questions on this system via our communication channels. Reach out to us, and we'll respond immediately.