| Per començar | Elements d'entrada | Programació CircuitPython | Recursos CITCEA | |
| Elements no electrònics | Elements de sortida | Programació Arduino | ||
| Projectes | Elements de control | Dades pràctiques | Inici |
El sensor d'índex de radiació ultraviolada Si1145 ens permet conèixer l'UVI corresponent a la quantitat de radiació ultraviolada que arriba al sensor. Té un diàmetre de menys de 14 mm (menor que una moneda d'un cèntim) i un gruix inferior als 2 mm. Això facilita el seu us incorporant-los a elements tèxtils.
L'índex UV, tal com està definit per la OMS, ens dóna idea de la quantitat de radiació ultraviolada que ens arriba.

Avís: Les plaques Gemma no són adequades per llegir aquest sensor.
Aquest sensor es connecta amb la placa del microcontrolador fent servir una comunicació i2c que ens permet transferir la informació fent servir només dos fils (més els dos d'alimentació). Cada placa de microcontrolador només pot tenir connectat un sensor Si1145 però sí admet altres elements i2c coexistint amb ell. Per això, la placa del sensor té duplicades les connexions i2c de manera que sigui fàcil encadenar els dispositius.

Per fer servir aquest sensor cal connectar el born 3V (inferior a la foto) al born 3,3 V de la placa del microcontrolador (ATENCIÓ: No al born VBATT), el born gnd (superior a la foto) al negatiu de l'alimentació i els borns SDA i SCL amb els del mateix nom de la placa del microcontrolador. A la placa del sensor aquests dos borns hi apareixen dos cops de manera que podem triar la disposició que ens sigui més còmoda.
Per fer servir el sensor ens caldrà la Adafruit_SI1145_Library. Si és necessari, podeu consultar la instal·lació de biblioteques.
Un cop ja tinguem la biblioteca, podem fer els nostres programes. A la part inicial, hem de carregar les biblioteques corresponents.
#include <Wire.h> // Per a la comunicació i2c #include "Adafruit_SI1145.h" // Sensor UVI
A la part de declaració de variables, hem de crear un objecte Adafruit_SI1145. En aquest cas l'objecte s'anomena uv.
Adafruit_SI1145 uv = Adafruit_SI1145();
En la inicialització del programa, cal inicialitzar el sensor. D'aquesta manera el nostre microcontrolador hi estableix connexió i convé preveure que la connexió no sigui possible.
if (! uv.begin()) {
Serial.println("Comprova que el sensor està connectat");
while (1);
}
En el programa disposem de tres funcions. La funció uv.readUV() ens dóna el valor del UVI multiplicat per 100. A més, tenim un valor (uv.readVisible()) que ens dóna idea de la llum ambient i un altre (uv.readIR()) que ens dóna idea de la radiació infraroja que arriben al sensor. Aquests valors no estan ajustats, és a dir que ens permeten fer una estimació de la quantitat de llum (visible o infraroja) rebuda però sense unitats.
void loop() {
Serial.println(uv.readVisible());
Serial.println(uv.readIR());
Serial.println(uv.readUV()/100);
}
A continuació hi ha un programa de prova. En aquest cas, obrim també un canal sèrie que ens permeti veure si la connexió ha anat bé i les lectures del sensor al monitor sèrie. El nostre programa de prova llegirà el valor llegit pel sensor i el mostrarà.
#include "Adafruit_SI1145.h" // Sensor UV
Adafruit_SI1145 uv = Adafruit_SI1145();
void setup() {
Serial.begin(9600);
if (! uv.begin()) {
Serial.println("Comprova que el sensor està connectat");
while (1);
}
Serial.println("Sensor connectat");
}
void loop() {
Serial.println();
Serial.print("Llum visible: ");
Serial.println(uv.readVisible());
Serial.print("Radiacio IR: ");
Serial.println(uv.readIR());
Serial.print("Index UV: ");
Serial.println(uv.readUV()/100);
delay(1000);
}
Provant el sensor a l'interior obtenim valors molt baixos; com, per exemple, els següents:
Llum visible: 261 Radiacio IR: 256 Index UV: 0
Posant un llum de taula enfocant al sensor podem obtenir valors de lluminositat més elevats:
Llum visible: 819 Radiacio IR: 1356 Index UV: 2
Per poder provar el sensor dins del despatx, he fet servir un LED de llum UV. Aquest LED té una tensió nominal de 3,4 V i, per tant, es pot connectar directament (sense resistència) a la placa Flora. Connectant el positiu (pota llarga) del LED al born 3.3V i el negatiu (pota curta) al born GND i posant el LED enfocat al sensor he obtingut els següents resultats:
Llum visible: 2261 Radiacio IR: 4277 Index UV: 10
Podeu comparar les lectures del sensor amb els valors màxims de l'índexs UVi que proporciona el Servei Meteorològic de Catalunya per a cada comarca.
En aquest web, les fotografies marcades amb [AF] són del web d'Adafruit, les marcades amb [SF] del web d'Sparkfun i les marcades amb [AU] del web d'Arduino.

Aquesta obra d'Oriol Boix està llicenciada sota una llicència no importada Reconeixement-NoComercial-SenseObraDerivada 3.0.