Umgebungslichtsensoren mit dem Arduino

Helligkeitswerte zum Vergleich

427.000 lx 5 mW Laserpointer, grün (532 nm), 3 mm Strahldurchmesser
105.000 lx 5 mW Laserpointer, rot (635 nm), 3 mm Strahldurchmesser
100.000 lx Heller Sonnentag
20.000 lx Bedeckter Sommertag
10.000 lx Operationssaal
3.500 lx Bedeckter Wintertag
500 lx Büro-/Zimmerbeleuchtung
10 lx Straßenbeleuchtung
1 lx Kerze (~1m entfernt)
0,25 lx Vollmondnacht
0,001 lx Sternklarer Nachthimmel (Neumond)

Verwendete Bauteile

Umgebungslichtsensor BH1750

Umgebungslichtsensor BH1750

Merkmale

Anschlüsse

Pin Pin-Funktion Arduino Uno
VCC Stromversorgung 3,3V
GND Masse/Ground GND
SCL (CL) I²C clock A5
SDA (DA) I²C data A4
ADD (ADDR) Dieser Pin wird zum Setzen der I²C-Adresse verwendet. Standardmäßig (d.h. wenn an ADD weniger als 0,7V anliegen) ist die Adresse des Sensors 0x23. Sobald eine höhere Spannung als 0,7V anliegen (z.B. wenn der Pin mit VCC verbunden wird) hört das Modul auf die Adresse 0x5C kein Anschluss bzw. GND oder VCC

Aufbau

Aufbau der Schaltung
Abb.: Aufbau der Schaltung

Sketch

Der folgende Sketch ist aus dem Beispiel der Library AS_BH1750 mit leichten Änderungen:

#include <Wire.h>
#include <AS_BH1750.h>

AS_BH1750 sensor;

void setup()
{
    Serial.begin(9600);

    // for normal sensor resolution (1 lx resolution, 0-65535 lx, 120ms, no PowerDown)
    // use: sensor.begin(RESOLUTION_NORMAL, false);

    if(!sensor.begin()) {
        Serial.println("BH1750 init failed!");
        while(true);
    }
}

void loop()
{
    float lux = sensor.readLightLevel();
    Serial.println("Light level: " + String(lux) + " lx");
    delay(1000);
}
Ausgabe auf der seriellen Konsole
Abb.: Ausgabe auf der seriellen Konsole

Umgebungslichtsensor TEMT6000

Umgebungslichtsensor TEMT6000

Merkmale

Damit entspricht die Empfindlichkeit des Sensors ungefähr dem, was das menschliche Auge wahrnimmt, also Wellenlängen zwischen ca. 380nm und 780nm.

Anschlüsse

Pin Funktion Arduino
S (auch: OUT) Analoger Signal-Ausgang Analoger Eingang, z.B. A5
G (auch GND) Masse/0V GND
V (auch: VCC) Versorgungsspannung (max. 5,5V) 5V
void setup()
{
    Serial.begin(9600);
    pinMode(A5, INPUT);
}

void loop()
{
    int rawValue = analogRead(A5); //Read light level
    Serial.println("Reading: " + String(rawValue));

    double volts = rawValue * 5.0 / 1024.0;
    long microvolts = volts * 1000000.0;
    Serial.println("Voltage: " + String(volts) + " V (" + String(microvolts) + " µV)");

    long microamps = microvolts / 10000;
    Serial.println("Current: " + String(microamps) + " µA");

    long lux = microamps * 2;
    Serial.println("Illuminance: " + String(lux) + " lx\n");

    delay(2000);
}
Ausgabe auf der seriellen Konsole
Abb.: Ausgabe auf der seriellen Konsole
zurück