I would like to design an nxn IR long range break beam sensors and place them on a table with receiver at one side and transmitter over the other

Length of the table is 155 cm and width is about 140 cm.

The idea is, to place an array of IR break beam sensors. Any object that falls within the IR grid, needs to be detected and the signal needs to be sent to an Arduino / micro controller

Below is a high level sketch:

enter image description here

  1. Objects that needs to detected within the IR grid are of ping pong ball sizes.
  2. I need to send the output (whether a beam got broken or not) in the digital form to a micro controller.
  3. Finally, from the micro controller, I am planning to transmit the data via Bluetooth to a smartphone.

I have just started to think about 2)

Did some googling and came across this https://youtube.com/watch?v=1vBegJTG-vE&t=7s

In my case, I will have to use multiple such sensors.

  1. Could anyone throw me some pointers on the direction I need to take?
  2. Do I need to design a PCB which would comprise of several sensors?
  • \$\begingroup\$ I would start with a single tx/rx like the video, then angle one relative to the other, you said IR not laser not that laser doesnt have this problem. Notice that ir is not a tight beam. Then maybe build a handful receivers and use the one transmitter, run your ping pong ball through that and see what happens. If you think it will still work then yes build some boards, pretty easy to do with kicad or eagle, oshpark or one of the places in asia. \$\endgroup\$
    – old_timer
    Jul 29, 2018 at 19:12
  • 1
    \$\begingroup\$ you might want to use microcontrollers on one end or the other in the first place rather than send individual signals from the receivers. depends on your design. \$\endgroup\$
    – old_timer
    Jul 29, 2018 at 19:13
  • 1
    \$\begingroup\$ Your array idea has a problem to be overcome: IR-LED probably can't be confined to a ping-pong diameter at 1.5m distance. That means a single IR detector can see multiple LEDs...your detector array can be blocked by large objects, but not by smaller objects. \$\endgroup\$
    – glen_geek
    Jul 29, 2018 at 19:46
  • \$\begingroup\$ A VL53L1X may be a more appropriate solution: st.com/content/ccc/resource/technical/document/datasheet/group3/… \$\endgroup\$ Jul 29, 2018 at 19:48
  • 1
    \$\begingroup\$ No . I meant it is not possible to detect anywhere \$\endgroup\$ Jul 30, 2018 at 4:09

4 Answers 4


Ignoring for now whether this is the best way to detect an object, I would recommend using lasers and photodiodes to make your grid.

It may be possible with just regular leds but carefully designed optics would be required. IR lasers are not super cheap, but also not crazy expensive.

Reading a photodiode with an arduino is very easy to do.



Do you think the sensors will interfere with the game?

Even if above was ignored, the ball can be missed.

Since the round edge hitting the table has a very small edge touching the table and there is no optimal beam size to catch every contact with the surface.

This won't work.

  • \$\begingroup\$ No, the sensors will not interfere with the game. Sensors would be placed at the edge of the table and idea is to to cover only half the table. The image that i have shown , represents the top view of the table. Image - encrypted-tbn0.gstatic.com/… , if you may look at this image.. total length is 274cm . Sensors would be placed only on one half ,i.e., resultant dimensions would be 153 cm X 137 cm \$\endgroup\$ Jul 30, 2018 at 5:00
  • \$\begingroup\$ You are not understanding. The sensors must stick above the table edge and interfere and 2) will not be able to block between gaps of two balls touching \$\endgroup\$ Jul 30, 2018 at 13:51
  • \$\begingroup\$ It needs to detect only ball at a time hit by the opponent from the other side of the table. Anyway , as others have suggested, I need to try it out..make mistakes and learn in the process. \$\endgroup\$ Jul 30, 2018 at 15:53
  • 1
    \$\begingroup\$ Try an experiment with a small flashlight and a ping pong it is impossible to not see the flashlight except during an eclipse \$\endgroup\$ Jul 31, 2018 at 11:55
  • 1
    \$\begingroup\$ This is why it is a bad idea \$\endgroup\$ Jul 31, 2018 at 12:08

You can put a microphone in each corner and triangulate the position based on the relative time delay from the bounce. In a silent room, where only the bounce is audible, simple comparator analog front end down stream is all that is needed to detect the bounce. The first microphone sets off a timer/counter in the microcontroller. The count/time that lapses when the other microphones report the bounce feed into the triangulation algorithm which is fundamentally calculating the speed of sound in the local environment. Your resolution will be limited to how fast the microcontroller can sample the inputs and how well the system is calibrated.

In a nosier environment, you can include some analog filtering in the preamplifier tuned to the "ping" of the ball hitting the table. This will help discriminate a bounce from ambient noise and mitigate false bounce detections.

In a really noisy environment (an arcade where children are running around in the background going crayyy-z), your going to need a more exotic solution such as dedicated DSP and possibly noise-canceling technologies.

If you're married to the "grid of IR beams" idea, this could be realized too. Less elegant and more clunky (more sensors, hardware, they only work "line-of-sight" so you're constrained on placement). Nevertheless, you're going to need lenses on your emitters - the beams diverge rapidly influencing ALL the sensors on the far side. So you're going to want to shape the beams so that they are laser-like, that is, they only interact with their respective receiver. Then, with proper spacing of the sensors, you run the signals into GPIO's of the microcontroller. You will likely need a few GPIO expander chips to accommodate many sensors. Your positional resolution is directly related to your grid density. The intersection (or average intersection if multiple beams were broken for a tight grid) indicate the hit. The upside of this approach is it is acoustically immune to the screaming kids in the background going crayyy-z.


If - as declared - this is just a matter of simply detecting whether an object has fallen and hit the area of 155x140, then multiple solutions are possible.

  1. Vibration detector. When the object hits, it will cause the surface to vibrate. You can sense these using vibration sensor, or even by sound pickup plus some simple software processing.
  2. Use ultrasonic single TX at one end, and single RX at other end. Mix the RX signal with the TX signal & low pass filter to extract the doppler frequency. When an object moves in the field, the doppler signal will increase and can be detected.

The above 2 methods will be enough to determine whether a ball bounced (anywhere) or not. From your dimensions given, and oblique reference to a TT ball - which is 40 mm in diameter - we are forced to assume you are trying to track exactly where a TT ball bounces on a given side of the TT Table (9' x 5'). If so, in isolation the techniques (1) or (2) won't suffice.

For solving this here's an options: 3) use an ultrasonic TX near the net, pointing outwards to cover the table. Use multiple at different angles to cover the area of interest. Wire them up together & in phase. Now place an ultrasonix RX at the edges of the table in same line as the TX so that their receive beam covers the table. You can use a 3rd RX if two aren't enough. At edges and center of the net. These RXs are independently sensed.

Now Send out rapid pulses from the TX (say 10 pulses @ 40 kHz at rep rate of 10 ms), and measure the reflection return time at the 2 different RX locations. For a table of this size, maximum reflection time should be less than 12 ms, so rep rate can be 15-20 ms of over 50 Hz (50 samples per second) With this time measurement, and knowing speed of sound & dimensions of the table and transducer positioning it should be possible to calculate the location of the ball. Now since this will "track" the ball in real time - even in the air - you need to Combine this with a vibration of contact sensor to determine which reading to use for the actual bounce contact point.

Alternately instead of vibration sensor, you could use a sound sensor, and develop an algorithm to "detect" the sharp pulse made by ball bounce only, as the detection method.

Hope you can understand.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.