Skip to content
ermtl edited this page Jan 22, 2015 · 2 revisions

LightMap V 1.00

LightMap is an open source combination of software and hardware designed to map lighting intensity in a serie of successive locations. It was originally created to measure light uniformity of indoor farming seedling racks and can be useful for other lighting devices designers, stage or architectural lighting, etc...

To make the measurements, the user positions the sensor at each required location, then clicks. Each click sends a light intensity value through the serial port and sounds the beeper as a feedback. By making measurements in a grid pattern, lighting intensity of a whole area can easily be mapped. The software allows to setup, measure, save and retrieve light intensity maps.

Description

LightMap contains the following elements:

  • A hardware light sensor (LDR) + switch that outputs the resistance value of the photoresistor (LDR) and a beeper used to confirm when measurement are taken. It gives repeatable relative measurements, but would need further calibration to be used as a luxmeter.

  • An Arduino® nano compatible controller board that contains software (Arduino sketch) that reads the sensor, makes average measurements, convert the analog value into LDR resistance, detects switch closure and sends the resulting values in serial over it's USB link.

  • A mapping application that allows to setup the grid, measure the light levels, visualize the measurements, save and retrieve light intensity map files for further analysis.

The application software is written for Windows and Linux using FreePascal / Lazarus. Maps are saved in readable CSV format.

A schematic diagram is provided. It's very simple and can be constructed directly on a 7 pins female header connected to the Arduino Nano, without a PCB. The sensor itself is made of a photoresistor (LDR) in parallel with a switch and a 0.1uF capacitor. The sensor is connected between ground and the analog pin. An external pullup resistor is connected to Vcc. The capacitor allows smoothing, but limits accurate read speed to less than 2 measurements/second. It's large value allows for long wires between the sensor and the board.

Usage

To measure light intensity over a surface, it's best to prepare it with regularly spaced marks (see example on the last page of this document). The number of samples in X and Y directions is entered in the software. The port settings allows to adjust the COM port so that the software can communicate with the Arduino compatible controller. Once properly configured, pressing the start button should reset the controller that emits 2 short beeps. A startup message is also displayed in the message area. On the measurement grid, the next point to be measured is shown as a blinking grey cursor. Once properly positioned on the surface, the user clicks, sending the measurement result and advancing the cursor. The beeper emits a confirmation sound. If an error is made, it's always possible to reposition the cursor anywhere in the grid and make the measurements again. Relative light intensity is displayed either as a greyscale or as a colour map (3 different colour schemes) scaled from the minimum to the maximum value of light intensity.

Once all measurements are done, the minimal and maximal values are shown and it's possible to manually modify these values to either normalize the graphic between several measurements and / or to expand a part of the diagram.

The measured values are in Ohms, a lower value indicates more light.

LightMap software is licensed under GPL V2 (see source files) and is available on github https://github.com/ermtl/LightMap

The project was built using the following open source software :

Arduino development system: http://arduino.cc/en/main/software

Kicad (schematic diagram) http://www.kicad-pcb.org/

Lazarus (FreePascal IDE) http://www.lazarus.freepascal.org/

LibreOffice (documentation) https://www.libreoffice.org/

This project is Copyright 2014 by Eric Vinter and is distributed under the terms of the GNU General Public License.

Clone this wiki locally