3.2 Build your Sensor
On this page:
Light sensor activities:
Create a Digital Light Sensor
The TSL25X1 digital light sensor works by measuring the intensity of light and converting that to a digital signal. The sensor consists of a photodiode. When light waves hit the photodiode, the light knocks the electrons around inside, which creates an electrical current. The more light that hits the photodiode, the higher the current. The digital light sensor measures the current and uses it to estimate the amount of light shining on the sensor. The sensor then sends a signal to the microcontroller reporting the intensity of light per unit area.
In this activity you will build a light sensor using the TSL25X1 . You can do this section without a computer and make a portable sensor, or with a computer which enables you to interact with the sensor more through the use of computer coding. Or you can try it both ways!
Note: For more information on the TSL25X1 sensors, you can see the sensor datasheet.
Building your digital light sensor
- Create a circuit to read a TSL25X1 sensor from your microcontroller. Start by connecting the Vin pin on the TSL25X1 to the BAT pin of the microcontroller by first connecting the BAT pin on the microcontroller to the (+) rail on the breadboard. Then connect the Vin pin on the TSL25X1 to anywhere on the same (+) rail on the breadboard.
- Connect the GND pin (black wire) on the TSL25X1 to your microcontroller by first connecting the GND pin on the microcontroller to the (-) rail on the breadboard. Then connect the GND pin on the TSL25X1 to anywhere on the same (-) rail on the breadboard.
- Connect the SDA pin on the TSL25X1 to the SDA pin on the microcontroller.
- Connect the SCL pin on the TSL25X1 to the SCL pin on the microcontroller.
Note: it helps to keep the colors of the jumper wires constant to keep track of your connections. For example, all ground wires should be a black or dark color.
To use without a computer…
Setting up the LCD Screen and Button
4. The LCD screen uses 4 pins that get connected to the microcontroller. Use Male-Female jumper wires to make these connections (See Figure 3.5 below):
a. Connect “VCC” on the LCD to “3V3” on the microcontroller.
b. Connect “GND” on the LCD to “GND” on the microcontroller
c. Connect “SDA” on the LCD to “SDA” on the microcontroller
d. Connect “SCL” on the LCD to “SCL” on the microcontroller
5. Connect your button. Connect one side of the button to the (+) rail on the breadboard using a jumper. Connect the other side of the button to Pin “A4” on your microcontroller using a jumper.
6. Before connecting the microcontroller to the battery, double check all of your connections to make sure it matches the diagram above (Figure 3.5).
7. Insert the battery into the battery holder so that the positive side, indicated by the “+” symbol, is on the side of the holder with the red wire, and the negative side of the battery is on the side of the holder with the black wire.
8. Connect the black wire from the battery holder to the “GND” pin on the microcontroller. You can also do this by connecting the black wire from the battery holder to the “(-)” rail that the microcontroller “GND” pin is also connected to.
9. Connect the red wire from the battery holder to the pin labeled “BAT” on the microcontroller (see Figure 3.6 below). Once the battery is connected, the LCD should light up and display “Hello!”. For instructions on charging the battery, see the Charging the Battery page.
10. You can start taking measurements once the LCD display changes and displays “Ready!” after 5-10 seconds. To take a single light measurement, press the button once. A light measurement in Lux will appear on the first line of the LCD screen.
11. To stop powering the instrument, remove the red battery wire from the “BAT” connection. To try using it with a computer, remove the battery connections and follow the directions below.
To use with a computer…
12. Before connecting the microcontroller to the computer, double check all of your connections. If you have completed the “To use without a computer section”, unplug the LCD, battery, and the button and make sure it matches the diagram in Figure 3.3
13. Connect your microcontroller to your computer using the USB cable.
14. Open the Beagle Term Chrome App (for additional instructions on setting up Beagle Term, see ‘Connect to a Microcontroller’) and type “import read_light” and press enter. This library contains all of the functions needed to measure light with your TSL25X1 sensor
15. Before we make a measurement, we need to initialize the light sensor. To do this, type “sensor = read_light.read_light()” then press enter. Now we can use “sensor” to measure the light intensity.
16. On a new line in Beagle Term, type “sensor.print_light()” and press enter. Beagle Term will print the light intensity measured by the sensor. The light intensity will also appear on the LCD if you have it connected to the microcontroller.
a. You can also take measurements continuously for N number of measurements by typing “sensor.print_light_start(N)” and pressing enter. Beagle Term will print the light intensity every 5 seconds. For example, if you want to take 100 measurements, type “sensor.print_light_start(100)” then press enter. You can stop taking measurements at any time by pressing CTRL+C. The measurements will also appear on the LCD every 5 seconds if you have it connected to the microcontroller.