LM317 Constant Current Source for Lighting LEDs
In the above links I've explored using a constant current source (CCS) and basic theory. Here I'll concentrate on the use of a constant current source for lighting light emitting diodes or LEDs. Understanding series circuits and voltage drops will help with this subject.
Briefly in a series circuit the current through all series components is the same, while the sum of the voltage drops across each series component will add back to the source voltage.
In Fig. 1 we use a LM317 in its constant current mode. The value of R3 divided into 1.25 volts will determine load current through each LED in the string. In this case current is 1.25 / 4.7 =~ 266mA. Each LED has a slightly differing voltage drop which is normal and why we want to use a CCS. The total voltage drop across the 3 LEDs equals 12.2 volts while the drop across Us and R3 is 6.8 volts. They add back to equal the 19 volt power source.
Note that total voltage drops are limited to the power supply voltage and we should maintain drop across U3 and R3 of three volts leaving a drop for whatever load of 16V in this case. Drop more than 16V and the CCS will not function.
In Fig. 2 I've removed one LED and the associated voltage drop, but the drop across the other three LEDs remains the same. That missing voltage drop adds to the voltage drop across U3 and R3.
In Fig. 3 I've changed Vin to 24V and has no effect on the LED current, which is still set by R3 at 266mA. In all three cases above the voltage drops across U3 and R3 become useless heat.
The most efficient way energy wise is to use a switching voltage regulator to reduce Vin to 3-5 volts above the load voltage required.
- LM317 Constant Current Source for Lighting LEDs
- LM2575 Simple Switching Voltage Regulators
- Simple 2 Transistor LED Flasher Circuit
- Voltage Buck-Boost Transformer Connections Tutorial
- Arduino Buck Switching Voltage Regulator Demo
- Switching Regular Configuration Review
- Generating High Voltage with an Inductor
- Gen. Electronics
- My YouTube Channel
- Raspberry Pi & Linux
- Arduino Projects
- PIC18F2550 in C++
- PIC16F628A in Assembly
- PICAXE Projects
- Microchip PIC16F84A H-Bridge Motor Control
- Microchip PIC16F628A Basic H-Bridge Motor Control
- PICAXE Operates H-Bridge Motor Controller
- PICAXE Micorcontroller Controls Motor Speed - Direction
- PICAXE Projects
- Arduino Port Registers Revisited
- Digispark ATtiny85 with MCP23016 GPIO Expander
- Safely Build Program a H-Bridge
- Build H-Bridge Motor Control Without Fireworks
- MOSFET H-Bridge for Arduino 2
- Arduino Projects Revisited Revised
- Programming ADS1115 4-Channel I2C ADC with Arduino
- Arduino uses ADS1115 with TMP37 to Measure Temperature
- Connect Arduino to I2C Liquid Crystal Display
- Arduino Reads Temperature Sensor Displays Temperature on LCD Display
- Arduino with MCP4725 12-bit Digital-to-Analog Converter Demo
- Arduino with ADS1115 4-Channel 16-bit Analog-to-Digital Converter
- Arduino with MCP4725 12-Bit DAC
- Updated-Added Dec. 2014
- Constant Current Circuits with the LM334
- LM317 Constant Current Source Circuits
- Introduction Hall Effect Switches, Sensors, and Circuits
- Using Ratiometric Hall Effect Sensors
- Pulse Width Modulation Power Control for Microcontrollers
- Introduction to PIC12F683 Programming
- Basic Transistor Driver Circuits for Micro-Controllers
- Opto-Isolated Transistor Drivers for Micro-Controllers