How should I arrange 7–8 LEDs to show RF signal strength so more LEDs light up when the signal is strong and fewer light up when it is weak?
Do not wire the LEDs in a simple series string for a signal-strength bar; a series string will make all similar LEDs change brightness together, not give the “more LEDs on as signal gets stronger” effect you want [#21668785] Use an RSSI (received signal strength indicator) voltage from the receiver, then drive the LEDs with a bar-graph driver such as the LM3914, which can light up to 10 LEDs in sequence from that control voltage [#21668784] Because the RSSI output usually can only source a couple of mA and LEDs need much more current, add an amplifier/driver stage between the RSSI and the LEDs [#21668784] If you only want a cheap, crude brightness effect, one suggestion was to put dissimilar LEDs in series so their different forward voltages make them dim at different rates, but that is not the best match for a bar indicator [#21668785]
We am working on a project related to detect the RF signal. upon detection an LED will be ON and buzzer will sounds. the glow of the led becomes more when the signals are detected from near by, and dims as we move away from the source.
we wish to use several LED(about 7-8) and when the signal is strong all LEDs glow, as the signals fades the no. of glowing LEDs also decreases.
Now we are confused about the arrangement of LEDs, we think that the LEDs should connected in series, and it will work as desired.
If you really want to use the brightness change of the LED or LEDs as a signal-strength indicator, the current through the LED(s) will change their brightness in response. More current = more brightness.
Many radio receiver chips have some kind of Received Signal Strength Indicator (RSSI) output that produces a voltage proportional to signal strength. This can be used to drive one or more LEDs with the appropriate amplifier (since the RSSI output probably can't supply more than a couple of mA of current, and LEDs typically need 5-20 mA to glow brightly).
However, if you want to use several LEDs to indicate strength, you might want to use something like a LM3914 LED driver IC, which will light up to 10 LEDs in sequence when fed a voltage. This is an easy and popular method, and performs better than simply varying the glow of a light.
Yes, if you string similar LEDs in series, they will ALL grow brighter or dimmer at the same rate. But, it sounds like what you what is more like a "Bar Graph" effect. Marks solution is probably the best (use an LM3914).
BUT, if you want a cheap and dirty solution, then how about DISSIMILAR LEDs in series. For example, a Red LED in series with a Yellow LED in series with a GREEN LED. Each has a progressively higher forward voltage and thus each will dim at different rates--the Red will glow the longest, and the Green the shortest.
AND, of course, provide proper current limiting to that series string (of LEDs).
And, consider this. If you use an LM3914, you won't get an "analog" dimming effect, unless you modulate the current through the LEDs in the LM3914 circuit. Otherwise, you'll need to have an ADDITIONAL LED that indicates the level via brightness.
He could also use a PIC micro with adc with led’s coupled to a port if he wants pwm then he can do this as well using a led driver on i2c bus coupled to the pic or arduino
More modern up to date method of doing this now Yes that answer will work but in view of ever changing technology I’m suggesting that we try and move people forward into modern day technological approaches so that they are prepared for changes that lay ahead , many of them there are too these days
Here is another method and that is to drive an led coupled resistor assemby (led operated LDR) such as used these days to operate volume controls and analogue amplifiers I dont know if you have seen these but they are now regulary used on gain controls Opto coupled volume controls all done with optoelectronics now
Here is some code without adc but used on a pic micro which i used to measure light intensity
Written In pic basic I was expermineting at the time with automatic light sensing for vehicles but have put this to one side he could use this adapted for what he wants to do
[code] '**************************************************************** '* Name : LightMeter.BAS * '* Author : MD Harrington * '* Notice : Copyright (c) 2013 @www.harrington.force9.co.uk * '* : All Rights Reserved * '* Date : 14/04/2013 * '* Version : 1.0 * '* Notes : * '* : * '****************************************************************
Symbol T0IE = INTCON.5 ' TMR0 Overflow Interrupt Enable Symbol T0IF = INTCON.2 ' TMR0 Overflow Interrupt Flag Symbol GIE = INTCON.7 ' Global Interrupt Enable Symbol PS0 = OPTION_REG.0 ' Prescaler ratio bit-0 Symbol PS1 = OPTION_REG.1 ' Prescaler ratio bit-1 Symbol PS2 = OPTION_REG.2 ' Prescaler ratio bit-2 Symbol PSA = OPTION_REG.3 ' Prescaler Assignment (1=assigned to WDT 0=assigned to oscillator) Symbol T0CS = OPTION_REG.5 ' Timer0 Clock Source Select (0=Internal clock 1=External PORTA.4) Symbol RPBU = OPTION_REG.7 ' weak pull ups clearing set these to on Symbol LIGHTFLAG = FLAGS.0 ' Flag for detecting if we should check light intensity
Dim LIGHTVAR As Word Dim REPEATS As Byte Dim PORTVAL As Byte Dim TMRCOUNT As Byte Dim NEWVAL As Byte Dim CURVAL As Byte
If TMRCOUNT >= 0 And TMRCOUNT < 30 Then PORTB.7 = 1 End If
If TMRCOUNT >= 30 And TMRCOUNT< 60 Then PORTB.7 = 0 End If
If TMRCOUNT = 60 Then TMRCOUNT = 0 End If
TMRCOUNT = TMRCOUNT + 1
T0IF = 0 ' clear the timer overflow flag T0IE = 0
TMR0 = 0 ' clear the timer
Context Restore Retfie ' this is the end of the interrupt service routine ' ------------------------------------------------------------------------------------
Over_Int: START: GoSub INIT: ' call init this is the procedure that sets up ports etc
MAIN:
High PORTA.2
LIGHTVAR = RCIn PORTA.2, High ' read the value from the LDR ' store this in light value GIE = 0 ' disable Global interupt here T0IF = 0 ' clear the timer overflow flag TMR0 =0 ' Clear the timer
PORTVAL = LIGHTVAR.HighByte
' Assign to NEWVAL If PORTVAL > 0 And NEWVAL != PORTVAL Then NEWVAL = PORTVAL End If
If NEWVAL = 0 Then CURVAL = 0
Else If NEWVAL >= 1 And NEWVAL < 3 Then CURVAL = 1
Else If NEWVAL >= 3 And NEWVAL < 5 Then CURVAL = 3
Else If NEWVAL >= 5 And NEWVAL < 8 Then CURVAL = 7
Else If NEWVAL >= 8 And NEWVAL < 11 Then CURVAL = 15
Else If NEWVAL >= 10 And NEWVAL < 14 Then CURVAL = 31
Else If NEWVAL >= 14 And NEWVAL < 20 Then CURVAL = 63
Else If NEWVAL >= 20 And NEWVAL < 30 Then CURVAL = 127
End If
DelayUS 50 PORTB = CURVAL
T0IF = 0
GoTo MAIN
INIT: All_Digital = true ' turn off analogue module
' clear all interrupt flags etc
Clear INTCON Clear PORTB ' make shure no output on port b Clear PORTA ' make shure no output on port a Clear PORTVAL ' Clear PORTVAL variable Clear OPTION_REG ' Clear option register
' Set up the prescaler ' 15 times per second prescaler setting so in 30 counts 2s econds will elapse ' 15 counts 1 second has elapsed
PS0 = 1 PS1 = 1 PS2 = 0 PSA = 0
' start interrupt procedure
RPBU = 0 TMR0 = $00
Return
[/code]
Im busy right now but this is easily altered for adc input he may need to simply add an opamp to give hime the voltage swing up to 5volts for the input This howver works quite well with RC in on port measuting charge discharge time So pretty easy to implement
Just another suggestion for you different approacch to this
What you need to take into consideration is very soon the LM3914 will be obsolete you wont be able to buy them This is why Pic micro with adc and arduino or atmel if you like "The digital era "
This, while true, makes an old analog guy like me rather sad. It doesn't seem efficient to have to write a couple hundred lines of code if all you have to do is light a few LEDs, when that function had been contained in one simple IC. I know the Pic, etc., can do vastly MORE of course, but sometimes you only need to do one simple thing.
A few years ago I had to design a circuit to take NTSC or PAL analog video and convert it to its RGB (red, green, blue) analog component signals. In the 1980s this was accomplished with one 28 pin IC and a handful of parts, and one reasonably-competent engineer could have it working in a few days. 25 years later it took a microprocessor and two 64-pin digital chips to do the same job, plus MORE support parts and twice the power, never mind the week or two of programming and debugging. I'm not sure this is progress!
Throw way age So whats the answer Think Mark I know exactly what your saying and I also know there is much truth in what you say but now think re usable and think not out of work think extra work they have created and also think Why not simply reprogram one micro to do many jobs thus saving the PCB , also saving chips also creating more jobs
Whats the answer program a chip to do the same thing
What else springs to mind here
How about this for an example : You phone up a manuifacturer and ak for a specific chip " , whats theier normal answer , " We havent got that in stock " , which is true most of the time , Think also your client is sitting in anoter country and cant get this to work , whats the answer send him the hex code He plugs his unit into the network the units sends out a message and bing within five seconds after fitting one blank micro his unit is up and running again Wheres the stock control gone Its diminished ( No more Hard work ) Come on boys think !! Wakey , wakey time
Is this not far easier
Its acceptance Mark Its moving with times If we don’t point this out what’s going to happen when this all does change and their are no more analogue chips around that do this job
Do we just simply say nothing Edison long time ago produced a light bulb Today its led lighting , 12 volt systems Money saving cost effective less bills to pay
SOS may day may day officer down requesting urgent backup
Think one more stage I need to get an armed services units radio reprogrammed in a hurry, its an emergency They are out in a deadly combat zone He / She hasn’t got time to try and fit new Ics They under heavy fire The enemy have intercepted their radio units
What’s the answer Connect on this channel on a service channel maybe a mobile phone, satelight uplink what do I do ask him / her to do , plug the radio coms unit into the phone place the unit into PRG mode and I do what Mark send it a hex file over the air using channel hopping and recode the radios( multiple) in 5 milliseconds The difference between saving a platoon and not saving that platoon The difference between saving lives and not saving lives
Think further than this Mark Think how many parts they would have to carry all the time instead of one micro pluggable exchangeable easily connected easily reprogammed to suite a situation
Whats Up Mark ( think Think )
Thats Future of electronics my friend
Why do we need hackers aaah To see if the sytems can be penetrated Yes !!! Flipping well done at last
Think Positive Mark "Not negative" , all things happen for a reason
But, on the bright side, using a uController means you can make it do what you want it to do (i.e. not limited to the implementation of the specialized IC). Can't tell you how many times I've needed the output of the 555 timer to be inverted. In that case I use a 556 and use the second timer as an inverter ('cuz I also needed the drive capability of a 555 output =) But, with a PIC, I can just program the output (of course, this is probably a bad example, because there ain't no PIC that can drive like the 555 can!
Hi Mark. I must confess that software and microprocessors reallly scare me. I have always used hardware solutions only. I failed a microprocessor course, I think because lecturer was good with micros but bad at teaching. I can clearly see benefits particularly in DSP, as I am always interested in improving HF radio in strong QRM and QRN situations. Do you know of any literature which on its own can help? The other thing is that making a one of design in micros (as I understand) is very costy in that it cannot be done in a personal lab (like mine) I am quite dedicated and have a good DSO and an Agilent (new) spec ann with all the extras, I alsso am a prolific inventor especiallr in RF and have been for 50 yrs. i.e. I am a hard boiled veteran t RF dsign ha ha.
Tons and tons of literature for you on this page free for download and then go to Maplins , or Rs Components Or Farnel or Proton Basic Buy yourself a development kit from the above good prices at the moment
Compilers are often free Theres Code blocks , SDCC open scource , Eclipse etc , plus download ver 8.5 IDE from Microchip , you will need this
If you need extra help yell see what I can do for you
✨ The discussion addresses the optimal arrangement of 7-8 LEDs to indicate RF signal strength, where more LEDs light up as signal strength increases and fewer as it decreases. Connecting LEDs in series results in all LEDs dimming or brightening uniformly, which does not achieve the desired bar-graph effect. A recommended solution is to use an LM3914 LED driver IC, which can sequentially light multiple LEDs based on an input voltage proportional to signal strength, providing a clear visual bar graph indication. However, the LM3914 may become obsolete, prompting suggestions to use microcontrollers such as PIC or Arduino with ADC inputs to digitally control LED brightness and count via PWM or direct port outputs, offering greater flexibility and modern design adaptability. Alternative low-cost methods include using dissimilar LEDs in series with different forward voltages to create varying brightness levels. The conversation also touches on the trade-offs between analog IC solutions and microcontroller-based designs, with some preferring simple hardware while others advocate for programmable digital approaches. Resources and tutorials for PIC microcontroller programming and development kits are recommended for those interested in adopting microcontroller solutions. Generated by the language model.
TL;DR: Use an LM3914 to light up to 10 LEDs from an RSSI voltage; “More current = more brightness.” Avoid series strings of identical LEDs for bar-graphs; use a driver or MCU. [Elektroda, Mark Nelson, post #21668784]
Why it matters: This guide helps RF hobbyists quickly build a readable 7–8 LED signal-strength display without trial-and-error.
Should I wire 7–8 LEDs in series or parallel for RF strength?
Use a bar-graph driver instead of a simple series string. Series LEDs all change together, not stepwise. An LM3914 creates the rising LED bar you want. It converts a voltage level to sequential LEDs. That matches signal-strength display behavior best. [Elektroda, Steve Lawson, post #21668785]
How do I get a bar-graph from an RSSI output?
Feed the RSSI voltage into an LM3914. It lights up to 10 LEDs in order as the voltage rises. Use bar or dot mode as desired. Add current setting per the chip’s reference network. This gives clear steps as signal increases. [Elektroda, Mark Nelson, post #21668784]
What is RSSI and how do I use it with LEDs?
RSSI is a receiver pin that outputs a voltage proportional to received signal strength. Route that voltage into a display stage. For LEDs, use a driver IC or buffered amplifier. The RSSI pin itself is only a sensor output. [Elektroda, Mark Nelson, post #21668784]
Can an RSSI pin drive LEDs directly?
No. RSSI pins usually supply only a couple of milliamps. LEDs need much more for visibility. Direct drive can be dim or risky. Buffer the signal with an op-amp or an LED driver such as the LM3914. “More current = more brightness.” [Elektroda, Mark Nelson, post #21668784]
What does the LM3914 actually do for this project?
LM3914 is a dedicated LED level driver. It takes an analog voltage and lights up to 10 LEDs sequentially. It supports bar or dot modes. For 7–8 LEDs, just populate the channels you need. It simplifies wiring and current control. [Elektroda, Mark Nelson, post #21668784]
Will an LM3914 give smooth dimming or visible steps?
It gives visible steps. Each LED turns on at set thresholds. You won’t get analog dimming unless you modulate LED current. Add PWM or a current-control method if you want brightness to vary continuously per level. [Elektroda, Steve Lawson, post #21668786]
Is there a cheap, no-IC trick to show strength changes?
Use dissimilar LED colors in series. Red, then yellow, then green have increasing forward voltages. As current drops, green extinguishes first, red last. You still need a proper series resistor for current limiting. This yields a crude step effect. [Elektroda, Steve Lawson, post #21668785]
Can I do this with a PIC or Arduino using PWM?
Yes. Sample RSSI with an ADC, then drive LEDs with PWM for smooth control. You can add an I2C LED driver to reduce pin usage. A microcontroller approach is flexible and easy to adapt later. [Elektroda, Mark Harrington, post #21668787]
Is the LM3914 becoming hard to source?
One contributor warns it will be obsolete and suggests microcontrollers as future-proof. If parts sourcing is uncertain, plan a PIC or Arduino fallback. Firmware changes can repurpose hardware without PCB spins. [Elektroda, Mark Harrington, post #21668788]
How should I wire a series LED string safely?
Always include a current-limiting resistor in series with the LEDs. Without it, LED current can run away and damage parts. In mixed-color series strings, expect different extinction points as current changes. Keep supply and dissipation within limits. [Elektroda, Steve Lawson, post #21668785]
Quick build: How do I make a 7–8 LED RF bar-graph?
Take the receiver’s RSSI voltage and route it to the LM3914 input.
Set the reference and LED current per the LM3914 network.
What if my RSSI swing is small and the display barely changes?
Add an op-amp stage to scale the RSSI voltage to the driver’s input range. This increases sensitivity. You can also use ADC scaling in a microcontroller solution. Proper gain restores usable LED range. [Elektroda, Mark Harrington, post #21668787]
Why did all my LEDs brighten together in testing?
You likely used similar LEDs in one series string. In that configuration, current changes affect the entire string equally. You won’t see a progressive bar effect. Use a driver or dissimilar diodes if staying analog. [Elektroda, Steve Lawson, post #21668785]
I’m new to micros and nervous—where should I start?
Begin with a low-cost PIC dev kit and a free IDE. Follow beginner tutorials and examples. Plenty of curated links exist for embedded and RF projects. Build confidence with simple ADC-to-LED exercises first. [Elektroda, Mark Harrington, post #21668794]