LDR Array

Hey guys,

I'm building a lasertag system, using actual lasers (yes i know, very unsafe, will be played with laser goggles on for extra safety, and laser will only give short pulse)
Ofcourse i need a receiver to detect when you get hit.
I plan on using LDR's, and i'll need quite some to cover enough area on the body.
Now this is also the issue i'm running up against, i need to use as little pins as possible but still need alot of ldrs.
All i need to know is IF light is hitting the ldr, brightness is not important.
What would be the best way to do this? i was planning on putting them in series, but this might make the total resistance too low to read.

Looking forward to your thoughts!

Know nothing about lasers.

Can you widen the beam with a lens assembly to make them less dangerous, maybe a 1/2” diameter ?

Yea so i adjusted the focus of the laser, one meter away from the laser, the point is about 3cm across.
This might get adjusted, but for now it seems like a good ratio (distance to diameter) but, i will still need quite some ldr's to cover enough area of the body, to make sure that if you hit the body, it will always register

Suggest you have a target on the front and back of a player.

LDRs are inexpensive but are affected by ambient light.

Maybe try with different filters to see if you can avoid false triggering.

Some kind of modulation of the transmitter with demodulation in the receiver will be part of the solution.

Experiment with different modulation frequencies.

Maybe a TSOP4838 with appropriate circuitry will work too.

Thanks for the reaction, i was indeed planning putting sensors on the front and back of the body, we plan on playing in the forest at night so ambient light shouldn’t be an issue.

BUT that wasn’t really the question.
Question is, how can i hookup alot of LDR’s while using as little pins on arduino as possible, would it be feasible to put them in series, or should i take a different approach.

TSOP4838 would be an option, but still the same question arises.

Darkness would be best.

You can either feed an LDR voltage divider directly to an input on your Arduino, probably several in parallel . Mega has 16 analog inputs.

Or, feed the LDR divider circuit to a voltage comparator.

A Quad LM339 would be a good choice, outputs in parallel to the digital inputs on the Arduino.

Something similar to the circuit below.

Let’s say your LDR is 1Meg ohms. Try 10 in parallel (100k) then the series resistor ~5k.

Experiment for optimum values.

Note: LDRs are slow so a photo transistor might be warranted.

You can add software/hardware delays as needed.

larryd:
Some kind of modulation of the transmitter with demodulation in the receiver will be part of the solution.

larryd:
Note: LDRs are slow so a photo transistor might be warranted.

So modulation and LDRs are not a practical combination. :roll_eyes:

You can of course use LDRs in an array, but you have to have a diode in series with each.

Now since the INPUT_PULLUP of a mega328 is nominally 36k, using it with the LDR to ground similar to the above would be a very effective approach for either digital or analog input. :grinning:

“ So modulation and LDRs are not a practical combination. :roll_eyes:

Let’s say the LDR can respond to 60ms, maybe 10 cycles would be sufficient for fewer false triggers.

Actually since it’s in the dark a simple software delay might work, but that’s what experimenting should solve.


Turn on pull-up resistor.
Add the LED cct. as needed.