Control 10 LEDS from a single pin

I want to create a simple meter with 10 LEDS in a row. When the signal is low all lights are off, as the signal increases more and more lights light up until all 10 are lit.

They way I've figured out so far is to to feed the signal through different resistors (of increasing value) into the base pins of multiple TIP120s that then let power through to each led (or not)

This works in principle, but I need a ton of resistors and 10 TIP120s for 10 LEDs.

Is there an easier way?

PWM into an R-C filter and an LM3914.

col000r:
I want to create a simple meter with 10 LEDS in a row. When the signal is low all lights are off, as the signal increases more and more lights light up until all 10 are lit.

Is an Arduino involved?

If so, its easy. Use an analog pin to measure the signal. Attach a led (with a series resistor) to 10 digital pins. Write a short sketch to read the analog signal and light up the required number of leds.

Once the sketch is working, get yourself an attiny84. It has just enough pins. Use your Arduino to upload the sketch to the tiny using the ArduinoISP sketch.

OR...

Are you wanting to use a single Arduino pin to control the leds?

Again, you could use an attiny84. But instead of using its analog input to measure a signal, send pulses. the length of the pulse indicates how many leds should be lit. Perhaps 100us for every led. So if you want to light 8 leds, the Arduino send an 800us pulse (using digitalWrite() and delayMicroseconds()). The attiny reads the lengh of the pulse (pulseIn()) and lights up the required number of leds.

Paul