I have 16 LEDs and I want to light each of them every millisecond, one at a time for as little as is needed to reliably read the analog value from all the 16 reflection sensors lit by the LEDs. So, every LED might be needed to run for a few microseconds every millisecond.
I don't want to run all of them simultaneously purely for energy-saving reasons because the project will run on batteries and 16x20mA would drain the batteries too fast.
I'll use Arduino RF-Nano, 5V.
At first, I was considering 16-bit shift registers, but then I discovered dedicated LED constant current driver chips, which have the bonus of requiring a single resistor to control the current of all LEDs.
However, almost none of them are available as DIP. I would like DIP for both prototyping and also using them in sockets on my final PCB, so that I can quickly swap them in case I do something stupid and fry the chip.
The only DIP options seemed to be MAX6969 (or MAX6971). But I could not find those where I live.
MAX7219 is popular and available as DIP everywhere. However, it's 8x8 matrix driver and as I understand, it is not possible to control its internal multiplex frequency, so I cannot use it for strictly controlling the time when a specific LED is on
Am I missing any better options for lighting one of 16 LEDs for a controlled amount of time with minimal wiring and with through-hole components?
Or should I just give up and try one of SSOP options? I'm afraid my soldering skills are not good enough to deal with 0.63mm pitch, but maybe it's not as scary as it seems, especially when using those small SSOP-DIP adapter boards.
Also, I have to choose among a variety of options: TLC59281, TLC59282, TLC5926, TLC5927, TLC59025, FD9802, MBI5025, MBI5026. I'm not fully sure which would be better for this task - some of the chips have a group delay, so maybe I should avoid those. And maybe I'm missing something even better than the options I mentioned?