The best tools to make your project dreams come true

Login or Signup

Use an Arduino to Make Flash Freeze Photography

By All About Circuits

Courtesy of All About Circuits

High-speed cameras are awesome, they capture moments that often go unseen by the naked eye. Unfortunately, high-speed cameras are also really expensive, making them out of reach for most people. Fortunately, Raymond Genovese came up with a low-cost solution using a less expensive DSLR camera, a slave flash, an Arduino UNO, and one or two simple circuits depending on how you want your camera to function (You can do both if you want!)

How Do You Use it?

The “secret” to this technique is simple. First, you manually focus your camera. Then, set your camera exposure to a relatively long value like 4-6 seconds and take a picture in complete or nearly complete darkness. Normally, these conditions produce a totally black picture. However, During the long exposure period, the flash fires and provides the only illumination during the exposure. This brief moment is captured by the flash.

Ray made two circuits that can be used either separately or in tandem. The first circuit uses a for sensitive resistor (FSR).

FSR interface circuit on breadboard with Arduino Uno

The key to taking high-speed photos is controlling the firing of the flash. This project uses an Arduino Uno to fire an external flash when a specific external event is sensed. Almost any external sensor can be used as the trigger event for the flash. Ray’s design uses two sensors to detect the external event of interest: an FSR, and a sound sensor.

What Kind of Camera Do You Need?

Any camera with a manual focus and the ability to set long exposures should work. You’ll also need a lens that can focus at the desired distance. Ray used a Canon EOS 400D Digital Rebel XTi, which is a relatively inexpensive and older digital SLR (single lens reflex) camera.

What Kind of Flash Unit Do You Need?

The PL-ASF18 slave flash unit

Ray used a Polaroid PL-ASF18 slave flash unit, pictured above. You can use other flash units, but it’s important to use an external flash that accepts a low-voltage flash trigger. You’ll probably need to bounce the flash to the target rather than aim at it directly.

When Ray took the images in this article, the flash was pointed directly away from the target. This way, the light reached the target by reflecting off of a piece of black cardboard. He also used a light diffuser (a white nylon sheet tent) for some shots. If you have a slave unit with variable flash power that can be configured externally (the PL-ASF18 does not), you might be able to spare yourself these extra steps by reducing the power.

Hot Shoe

Hot shoe with 3.5 mm socket

No matter what type of connector you choose, you’ll also need to make a cable with the two leads from the hot shoe to attach the circuit. The hot shoe, with the flash unit attached, can be mounted on a mini-tripod to make positioning easier.

Force-Sensing Resistor

Interlink 406 FSR

An Interlink 406 FSR was used for this project, you can find the datasheet on the product page and learn more about implementing it in the FSR 400 Series Training Module. The resistance between the sensor’s leads varies according to the force of the object that lands on its surface. The Arduino uses this characteristic to sense an external event and trigger a flash. To avoid damaging the FSR, do not directly solder to the leads. Instead, it’s best to use female jumper leads because they can be crimped slightly to provide a tight fit.

Schematic and BOM for the FSR-Based System


The schematic above is for the entire circuit that allows the Arduino UNO to monitor the FSR and trigger the external flash. The circuit has three parts: the top, middle, and bottom.

Bottom—Input Switch

The bottom of the schematic contains a momentary switch connected to the Arduino’s digital input (D4). The input is read by the Arduino as logic low when not pressed and logic high when it is pressed. This switch input is used in the software to “arm” the flash unit, then the program will wait for the trigger event.

Below are some photos that Ray took using the FSR version:

Candy mints

Match sticks

Gum balls

Halloween candy sprinkles

Formerly a light bulb

Using a Sound Sensor

Another option is using sound as a trigger for your photos. Many microphone amplifier circuits have been published, so you won't need to design your own from scratch. A convenient and inexpensive option is using a sound sensor module built specifically for interfacing to an Arduino.


Schematic and BOM for the Arduino interface to the sound sensor and flash unit.

The schematic above is the complete circuit that uses a sound sensor for a trigger. It is identical to the FSR schematic, but the sound sensor module replaces the FSR and op-amp circuit. The sound sensor’s output connects to an Arduino analog input pin (A0). Below are some photos that Ray took using the sound sensor version:

Elegant simplicity

Milk splash

Alien milk

Fluid flower

If you’d like to try building one yourself, you can find a more in depth explanation of the code works, how to hook this all together, as well as program files on All About Circuits.

  • 1050-1041-ND
  • 1738-1083-ND