Adafruit SI1145 Breakout Board - UV index
/ IR / Visible Sensor
Created by lady ada
https://learn.adafruit.com/adafruit-si1145-breakout-board-uv-ir-visible-sensor
Last updated on 2021-11-15 06:11:17 PM EST
©Adafruit Industries
Page 1 of 20
Table of Contents
Overview
3
What is the UV Index?
4
•
•
•
•
•
0 to 2: Low
3 to 5: Moderate
6 to 7: High
8 to 10: Very High
11 or more: Extreme
5
5
6
6
6
Breakout Pinouts
7
• Power Pins
• Extra Pins
• I2C Pins
7
8
8
Flora Pinouts
9
• Power Pins
• I2C Pins
9
9
Wiring and Test
•
•
•
•
•
•
•
•
•
•
Breakout Assembly
Prepare the header strip:
Add the breakout board:
And Solder!
Arduino Wiring
Flora Wiring
Download Adafruit_SI1145
Load Demo
Proximity Sensing (Breakout Board)
Downloads
• More reading!
• Datasheets & Files
• Schematic and PCB Print
©Adafruit Industries
10
10
11
11
12
12
13
14
15
16
16
18
18
19
19
Page 2 of 20
Overview
Remember when you were a kid and there was a birthday party at the pool and your
parents totally embarrassed you by slathering you all over with sunscreen and you
were all "MOM I HAVE ENOUGH SUNSCREEN" and she wouldn't listen? Well, if you
had this UV Index sensor connected up to an Arduino you could have said "According
to this calibrated SI1145 sensor from SiLabs, the UV index right now is 4.5 which
means I do not need more sunscreen" and she would have been so impressed with
your project that you could have spent more time splashing around.
©Adafruit Industries
Page 3 of 20
The SI1145 is a new sensor from SiLabs with a calibrated light sensing algorithm that
can calculate UV Index. It doesn't contain an actual UV sensing element, instead it
approximates it based on visible & IR light from the sun. We took this outside a couple
days and compared the calculated UV index with the news-reported index and found
it was very accurate! It's a digital sensor that works over I2C so just about any
microcontroller can use it. The sensor also has individual visible and IR sensing
elements so you can measure just about any kind of light - we only wrote our library
to printout the 'counts' rather than the calculate the exact values of IR and Visible light
so if you need precision Lux measurement check out the TSL2561. If you're feeling
really advanced, you can connect up an IR LED (http://adafru.it/387) to the LED pin
and use the basic proximity sensor capability that is in the SI1145 as well.
We wrapped this nice little sensor up on a PCB with level shifting and regulation
circuitry so you can safely use it with 3 or 5V microcontrollers. If you are using an
Arduino, we've got a lovely library already written up with example code so you can
quickly read sensor readings and the UV index in under 10 minutes. Each order
comes with one fully assembled and tested PCB breakout and a small piece of
header. You'll need to solder the header onto the PCB but it's fairly easy and takes
only a few minutes even for a beginner.
What is the UV Index?
©Adafruit Industries
Page 4 of 20
UV light is light in the "ultra violet" spectrum, beyond the violet part of visible light.
Even though UV is not visible to human eyes it does effect the eyes and skin! UV light
is what lets us produce vitamin D, which is essential for humans. But it can also burn
skin - what we call a sunburn.
We can measure UV in mW per area, but that's a little tough to keep in your head,
especially if the area value is in cm or m or ft. To make it easier for people to track UV
safety, the WHO came up with the UV index.
The SI1145 is calibrated to transmit the UV index based on the visible & IR light
received, but what do those numbers mean?
As you're probably aware of - if you have lighter skin, you are more likely to get
burned. So it's important to watch the UV index and wear sunscreen, hats, and
sunglasses when the UV index gets above 4 or so!
(UV index text below from epa.gov) (https://adafru.it/ddQ)
0 to 2: Low
A UV Index reading of 0 to 2 means low danger from the sun's UV rays for the
average person.
• Wear sunglasses on bright days.
• If you burn easily, cover up and use broad spectrum SPF 30+ sunscreen.
• Watch out for bright surfaces, like sand, water and snow, which reflect UV and
increase exposure.
3 to 5: Moderate
A UV Index reading of 3 to 5 means moderate risk of harm from unprotected sun
exposure.
• Stay in shade near midday when the sun is strongest.
• If outdoors, wear protective clothing, a wide-brimmed hat, and UV-blocking
sunglasses.
• Generously apply broad spectrum SPF 30+ sunscreen every 2 hours, even on
cloudy days, and after swimming or sweating.
• Watch out for bright surfaces, like sand, water and snow, which reflect UV and
increase exposure.
©Adafruit Industries
Page 5 of 20
6 to 7: High
A UV Index reading of 6 to 7 means high risk of harm from unprotected sun exposure.
Protection against skin and eye damage is needed.
• Reduce time in the sun between 10 a.m. and 4 p.m.
• If outdoors, seek shade and wear protective clothing, a wide-brimmed hat, and
UV-blocking sunglasses.
• Generously apply broad spectrum SPF 30+ sunscreen every 2 hours, even on
cloudy days, and after swimming or sweating.
• Watch out for bright surfaces, like sand, water and snow, which reflect UV and
increase exposure.
8 to 10: Very High
A UV Index reading of 8 to 10 means very high risk of harm from unprotected sun
exposure. Take extra precautions because unprotected skin and eyes will be
damaged and can burn quickly.
• Minimize sun exposure between 10 a.m. and 4 p.m.
• If outdoors, seek shade and wear protective clothing, a wide-brimmed hat, and
UV-blocking sunglasses.
• Generously apply broad spectrum SPF 30+ sunscreen every 2 hours, even on
cloudy days, and after swimming or sweating.
• Watch out for bright surfaces, like sand, water and snow, which reflect UV and
increase exposure.
11 or more: Extreme
A UV Index reading of 11 or more means extreme risk of harm from unprotected sun
exposure. Take all precautions because unprotected skin and eyes can burn in
minutes.
• Try to avoid sun exposure between 10 a.m. and 4 p.m.
• If outdoors, seek shade and wear protective clothing, a wide-brimmed hat, and
UV-blocking sunglasses.
©Adafruit Industries
Page 6 of 20
• Generously apply broad spectrum SPF 30+ sunscreen every 2 hours, even on
cloudy days, and after swimming or sweating.
• Watch out for bright surfaces, like sand, water and snow, which reflect UV and
increase exposure.
Breakout Pinouts
The SI1145 is an I2C sensor, so there are not a lot of pins to worry about.
Power Pins
You can power the SI1145 from 3 to 5VDC, there's an onboard level shifter to safely
bring the voltage down to 3.3V.
• Vin - this is the input to the voltage regulator. Power with 3-5VDC. Has reversepolarity protection.
• GND - this is the signal and power ground pin, connect to your microcontroller
ground pin
• 3vo - this is the output from the onboard regulator. If you need a clean 3.3VDC,
you can draw up to 100mA from this pin.
©Adafruit Industries
Page 7 of 20
Extra Pins
These are pins that you don't need to connect to but can if you want to use the more
advanced features of the chip.
• INT - this it the interrupt output from the chip, with a 10K pullup to 3.3V. You can
check this pin to see when the next set of conversions are done. Our library
doesn't use it
• LED - if you'd like to try using the proximity capabilities of the SI1145, you can tie
an IR LED to this pin. Any IR LED will do. It's a open collector pin, so connect the
cathode (-) pin to this pin, and the anode (+) pin of the LED to 3 to 5VDC. It can
sink up to 300mA in a spike so be aware of that if using this pin
I2C Pins
So you want to actually read the sensor data, these are the pins to use! This sensor
uses classic I2C so any I2C-capable microcontroller can use it. These pins are level
shifted so you can use 3 or 5V logic safely. There's 10K pullups on both pins. You can
share the i2c pins with many other sensors as long as they do not use the same
address - the SI1145 uses 7-bit address 0x60
• SCL - this is the i2c clock pin, connect to your microcontroller I2C clock master
pin.
• SDA - this is the i2c data pin, connect to your microcontroller I2C data master
pin.
©Adafruit Industries
Page 8 of 20
Flora Pinouts
The Si1145 is an I2C sensor, so there are not a lot of pins to worry about.
Power Pins
You must power the Si1145 from 3.3 VDC.
• 3V - this is the input to the sensor. Power with 3.3 VDC.
• GND - this is the signal and power ground pin, connect to your microcontroller
ground pin
I2C Pins
So you want to actually read the sensor data, these are the pins to use! This sensor
uses classic I2C. There's 10K pullups on both pins. You can share the i2c pins with
many other sensors as long as they do not use the same address - the SI1145 uses 7bit address 0x60
• SCL - this is the i2c clock pin, connect to your Flora I2C clock master pin.
• SDA - this is the i2c data pin, connect to your Flora I2C data master pin.
©Adafruit Industries
Page 9 of 20
Wiring and Test
Breakout Assembly
If you are using the breadboard version, you'll need to install some headers
©Adafruit Industries
Page 10 of 20
Prepare the header strip:
Cut the strip to length if necessary. It will
be easier to solder if you insert it into a
breadboard - long pins down
Add the breakout board:
Place the breakout board over the pins
so that the short pins poke through the
breakout pads
©Adafruit Industries
Page 11 of 20
And Solder!
Be sure to solder all 5 pins for reliable
electrical contact.
(For tips on soldering, be sure to check
out our Guide to Excellent
Soldering (https://adafru.it/aTk)).
You're done! Check your solder joints
visually and continue onto the next steps
Arduino Wiring
You can easily wire this sensor to any microcontroller, we'll be using an Arduino
©Adafruit Industries
Page 12 of 20
• Connect Vin to the power supply, 5V is fine. For 3V microntrollers, connect to
3.3V
• Connect GND to common power/data ground
• Connect the SCL pin to the I2C clock SCL pin on your Arduino. On an UNO &
'328 based Arduino, this is also known as A5, on a Mega it is also known as digi
tal 21 and on a Leonardo/Micro, digital 3
• Connect the SDA pin to the I2C data SDA pin on your Arduino. On an UNO &
'328 based Arduino, this is also known as A4, on a Mega it is also known as digi
tal 20 and on a Leonardo/Micro, digital 2
Flora Wiring
Connect the sensor to the four top-left pins, GND, SCL, SDA and 3V using alligator
clips, soldered wire, or quality conductive stitching
©Adafruit Industries
Page 13 of 20
The SI1145 has a fixed I2C address (0x60), you can only connect one sensor per
microcontroller!
Download Adafruit_SI1145
To begin reading sensor data, you will need to download Adafruit_SI1145 from our
github repository (https://adafru.it/ddZ). You can do that by visiting the github repo
and manually downloading or, easier, just click this button to download the zip
Download the Adafruit SI1145 Library
https://adafru.it/de0
Rename the uncompressed folder Adafruit_SI1145 and check that the Adafruit_SI1145
folder contains Adafruit_SI1145.cpp and Adafruit_SI1145.h
Place the Adafruit_SI1145 library folder your arduinosketchfolder/libraries/ folder.
You may need to create the libraries subfolder if its your first library. Restart the IDE.
We also have a great tutorial on Arduino library installation at:
http://learn.adafruit.com/adafruit-all-about-arduino-libraries-install-use (https://
adafru.it/aYM)
©Adafruit Industries
Page 14 of 20
Load Demo
Open up File->Examples->Adafruit_SI1145->si1145test and upload to your Arduino
wired up to the sensor
Now you can open up the serial console to see the various light levels and UV index
printed out.
©Adafruit Industries
Page 15 of 20
In this screenshot I pointed a UV LED onto the sensor to simulate a really high UV
index of 7. Indoors, expect to get a UV index of well below 1. Even glass windows are
excellent at filtering UV light so if you want to measure the actual UV outside point
the sensor right at the sun!
The SI1145 is primarily a UV index sensor, but it does have the ability to sense other
kinds of light. However, those light levels aren't calibrated in our library. That is to say,
unlike our Lux sensor (http://adafru.it/439), these are just values based on how much
light the sensor sees, and there's no 'units' to them. Still, this might handy if you just
want to keep track of light levels.
Proximity Sensing (Breakout Board)
There's also another capability that SiLabs shoved into this chip - a proximity sensor!
We haven't done much experimentation with this part of the sensor but it does sort of
©Adafruit Industries
Page 16 of 20
seem to work. Basically, if you connect an IR LED to the LED pin, the sensor will pulse
the LED and measure how much IR light is reflected back. This can be used to do
basic proximity sensing. If you are interested in trying out the prox sensor, grab an IR
LED and connect the + side to 3V or so, and the - side to the LED pin.
Now re-run the si1145 demo, but with the proximity reading line uncommented!
©Adafruit Industries
Page 17 of 20
You can see that by moving my hand in front of the sensor, I bounce more IR light into
the proximity sensor and the value goes from 261 up to 361
Downloads
More reading!
• The Canadian Center for Occupational Health has an article about UV radiation
and its effects on the human body (https://adafru.it/ddR)
• The International UV association (they must have great blacklight parties!) has a
list of Frequently Asked Questions and their Answers (https://adafru.it/ddS)
• Of course, the Wikipedia UV Index page has lots of great info too (https://
adafru.it/ddT)
©Adafruit Industries
Page 18 of 20
Datasheets & Files
• SI1145 Datasheet (https://adafru.it/ddU)
• Some example firmware is available from the SI1145 software download page (h
ttps://adafru.it/ddV)
• SiLabs product page for the SI1145 (https://adafru.it/ddW)
• Fritzing objects for both breakout & Flora version in Adafruit Fritzing Library (htt
ps://adafru.it/aP3)
• EagleCAD PCB files for Flora version (https://adafru.it/pOd)
• EagleCAD PCB files for breakout version (https://adafru.it/pOe)
Schematic and PCB Print
©Adafruit Industries
Page 19 of 20
©Adafruit Industries
Page 20 of 20