Senzorul UV VEML6070

Pentru a putea citi valoarea radiatiei UV vom folosi un senzor dedicat numit VEML6070.

Senzorul se alimenteaza cu o tensiune cuprinsa intre 3.3 si 5.5V.

Comunicarea cu Arduino se face prin intermediul magistralei I2C.

Pentru a realiza acest lucru vom avea nevoie de o librarie dedicata, aceasta putand fi descarcata de aici.

Senzorul folosit in acest exemplu este cel din poza de mai jos:

 Pentru a testa daca senzorul functoneaza vom folosi char codul exemplu (vemltest) al librariei instalate. Acesta este urmatorul:

#include <Wire.h>
#include "Adafruit_VEML6070.h"
Adafruit_VEML6070 uv = Adafruit_VEML6070();

void setup() {
  Serial.begin(9600);
  Serial.println("VEML6070 Test");
  uv.begin(VEML6070_1_T); 
}


void loop() {
  Serial.print("UV light level: "); Serial.println(uv.readUV());
  delay(1000);
}

Acest cod returneaza doar valoarea citita de catre senzor. Atentie, aceasta valoare nu reprezinta indexul UV!

Pentru a afisa indexul UV in terminalul serial vom folosi acest cod:

#include <Wire.h>
#include "Adafruit_VEML6070.h"
Adafruit_VEML6070 uv = Adafruit_VEML6070();

void setup() {
  Serial.begin(9600);
  Serial.println("Testare index UV");
  uv.begin(VEML6070_1_T); 
}


void loop() {
  if (uv.readUV()>=0 && uv.readUV()<700) {
    Serial.println("Nivel UV scazut");
  }
  if (uv.readUV()>=701 && uv.readUV()<1400) {
    Serial.println("Nivel UV moderat");
  }
  if (uv.readUV()>= 1401 && uv.readUV()<1850) {
    Serial.println("Nivel UV ridicat");
  }
  if (uv.readUV()>=1851 && uv.readUV()<2500) {
    Serial.println("Nivel UV foarte ridicat");
  }
  if (uv.readUV()>=2501 && uv.readUV()<2800) {
    Serial.println("Nivel UV extrem de ridiat"); 
  }
  delay(1000);
}

 

Autentificare