The problem
A solar street light looks simple — panel, battery, lamp — but the part that decides whether the battery survives two years or two months is the charge controller. This project builds that controller. A buck/PWM charging stage takes the solar panel input and charges a 12 V battery through three-stage logic (bulk, absorption, float) with temperature-compensated setpoints; an LDR plus panel-voltage sensing detects dusk and switches the LED lamp driver on, with a configurable dimming schedule (full brightness at dusk, dimmed after midnight, bright again before dawn). Protection is the core engineering: overcharge cutoff, deep-discharge load disconnect with hysteresis, short-circuit and reverse-polarity protection on the panel input. An LCD shows panel voltage, battery voltage, charging stage and load state, and the firmware logs daily charge/discharge amp-hours for the report's data section.
Demo-scale 12 V solar panel feeding the charger; its voltage is also sensed for dusk.
Follow the working sequence
How it works
- The controller continuously measures panel voltage, battery voltage and charge current through its sensing dividers and shunt.
- In daylight with the battery low, it runs bulk charging (maximum PWM duty); as voltage rises it transitions to absorption (constant voltage) then float (trickle) — the classic three-stage profile.
- Panel voltage falling below the dusk threshold (confirmed by the LDR) switches the LED driver on; rising panel voltage at dawn switches it off.
- The dimming schedule modulates LED PWM duty by time: full at dusk, dimmed through the configured midnight window, full again before dawn.
- If battery voltage hits the deep-discharge cutoff, the load disconnects with hysteresis and stays off until the battery recovers; overcharge terminates charging.
- Daily amp-hour totals accumulate in EEPROM and display on the LCD, documenting the energy balance for the report.
Tech stack:
- Arduino/ATmega-class controller (or ESP32 variant)
- PWM buck charging stage (MOSFET + inductor + diode)
- 12 V solar panel input (demo-scale)
- 12 V lead-acid/Li-ion battery (demo-scale)
- LDR + panel-voltage dusk sensing
- Constant-current LED driver stage
- 16x2 character LCD
- Arduino IDE (C/C++ firmware)
| Parameter | Value |
|---|---|
| Charging | PWM buck, three-stage: bulk/absorption/float, temperature-compensated setpoints |
| Battery | 12 V class (lead-acid or Li-ion chemistry set in firmware); overcharge + deep-discharge protection |
| Dusk sensing | Panel voltage + LDR with hysteresis; flicker guard |
| Lamp | Constant-current LED driver, PWM dimming schedule (buyer-configured profile) |
| Protection | Overcharge cutoff, deep-discharge disconnect, reverse-polarity, short-circuit |
| Logging | Daily charge/discharge Ah in EEPROM + LCD status |
| Power | Demo-scale panel and battery; prototype is a bench model, not a pole installation |
Project features
- [Three-stage charging] Bulk, absorption and float stages with temperature-compensated setpoints, implemented in firmware around a PWM buck charging stage.
- [Dusk-to-dawn lamp control] Panel-voltage + LDR sensing detects dusk; the LED driver switches on automatically and off at dawn with hysteresis against flicker.
- [Midnight dimming schedule] Configurable dimming profile (e.g. full → 50% after midnight → full before dawn) via PWM on the LED driver, extending battery runtime.
- [Battery protection] Overcharge cutoff, deep-discharge load disconnect with hysteresis, and reverse-polarity protection on the panel input.
- [LED constant-current drive] The lamp is driven by a constant-current stage sized for the LED string, not a bare resistor — proper LED practice.
- [Charge logging] Daily charged/discharged amp-hours are logged to EEPROM and shown on the LCD, giving the report real data to discuss.
- [LCD system status] Panel voltage, battery voltage, charging stage and load state on a 16x2 LCD for a readable demo.
What is included
- Working charge-controller prototype (controller board, buck charging stage, LED driver, LDR, LCD, demo panel/battery/lamp)
- Complete firmware source code (three-stage charging, dusk logic, dimming schedule, protection, logging)
- Circuit and wiring documentation with power-stage design notes
- Component list with ratings
- Setpoint configuration and demo procedure guide
- Project report PDF (solar charging background, three-stage and LED-drive theory, methodology, test procedure)
- PPT presentation for final review
- Viva Q&A preparation document (charge stages, buck conversion, battery protection, dusk sensing)
- Setup and demonstration guide
Limitations & prerequisites
- Bench-scale prototype with demo-size panel and battery; it is not a pole-mounted street-light installation and is not weatherproofed.
- Charging setpoints are design values configured for the demo battery chemistry — the buyer sets them for their own battery; no universal-battery claims.
- PWM charging is not MPPT: the report explains the difference honestly and lists MPPT as future scope.
- Dimming schedules and dusk thresholds are buyer-configured; actual night runtime depends on the panel/battery sizing the buyer chooses.
- Efficiency figures are design estimates from the power-stage design, not measured lab results.
Frequently Asked Questions
What does the controller do?
It charges a 12 V battery from a solar panel through bulk/absorption/float staging, protects against overcharge and deep discharge, and runs the LED lamp dusk-to-dawn with a dimming schedule.
Is this MPPT?
No — it is a PWM three-stage charger, and the report says so explicitly. MPPT tracking is documented as future scope.
How does it know it's dusk?
Panel voltage falling below a threshold, confirmed by an LDR, with hysteresis so passing clouds don't flicker the lamp.
Can it power a real street light?
The prototype is bench-scale with demo-size components. The design notes cover how to scale the power stage, but a pole installation is the buyer's deployment.
What are the main limitations?
Bench scale, buyer-set battery setpoints, PWM not MPPT, design-estimate (not measured) efficiency.
Is this project suitable for a final-year project?
Yes — for IoT and Embedded Systems programs. It combines power electronics, battery management, dusk sensing and honest charge-stage theory, all strong viva material. Suitable for B.E./B.Tech final-year projects in IoT and Embedded Systems.
Components & software requirements
- Arduino/ATmega-class controller (or ESP32 variant)
- PWM buck charging stage (MOSFET + inductor + diode)
- 12 V solar panel input (demo-scale)
- 12 V lead-acid/Li-ion battery (demo-scale)
- LDR + panel-voltage dusk sensing
- Constant-current LED driver stage
- 16x2 character LCD
- Arduino IDE (C/C++ firmware)
Delivery information
Built-to-order project. Delivery timeline is shared after order confirmation based on current queue.
Support terms
Complete documentation, setup guide, and viva preparation included. Support for setup and explanation provided.
Download free synopsis (PDF)
Enter your name and WhatsApp number — the synopsis PDF downloads immediately. We may send occasional project updates on WhatsApp; no spam.