• Hallo Zusammen, Aufgrund der aktuellen Situation setzten wir die Möglichkeit aus, sich mit Gmail zu registrieren. Wir bitten um Verständnis Das RCMP Team

Praxisbericht Beleuchtungsstärkenmessgerät mit Arduino, BH1750 und 1602 LCD Display

BAXL

Admin
Mitarbeiter
Im Thema Zusatzhardware und Sensoren habe ich den Lichsensor mit dem BH1750 vorgestellt. In diesem Thema setze ich den Sensor in einer einfachen Applikation mit einem Arduino Nano (Clone) ein. Alles zusammen ist für unter 10€ Materialwert machbar.

Ich fasse noch kurz die wichtigsten Informationen dazu zusammen:

Das Sensormodul besitzt einen I2C-Bus. Angeschlossen wird SDA - A4, SCL - A5, VCC - +5V, GND - GND.
ADDR lasse ich offen, damit wird das Modul über die Adresse 0x23 angesprochen.
Die verwendete Library ist: https://github.com/claws/BH1750/.

Als Anzeigedisplay dient ein 1602 LCD-Display. Das Display belegt die Adresse 0x27 und wird wie der Lichsensor mit SDA - A4, SCL - A5, VCC - +5V, GND - GND, angeschlossen, also parallel zum BH1750.



Im ersten Schritt soll nur ein ganz simples Programm die „Beleuchtungsstärke" in Lux (lumen pro m² in einer definierten Höhe gemessen) vom BH1750 einlesen und dann auf dem Display ausgeben. Das Programm ist quick and dirty und soll ersmal nur etwas Sinnvolles anzeigen. Der Code ist teilweise aus den Beispielprogrammen der Library entstanden, weshalb bestimmte Begriffe nicht ganz richtig sind.

Code:
/*
  Luxmeter mit BH1750 und 1602 LCD-Display

  Anschlussbelegung:

    VCC -> 3V3 or 5V
    GND -> GND
    SCL -> SCL (A5  Arduino Uno, Leonardo, etc or 21  Mega and Due, on esp8266 free selectable)
    SDA -> SDA (A4  Arduino Uno, Leonardo, etc or 20  Mega and Due, on esp8266 free selectable)
    ADD -> (offen NC) or GND

  ADD pin is used to set sensor I2C address. If it has voltage greater or equal to
  0.7VCC voltage (e.g. you've connected it to VCC) the sensor address will be
  0x5C. In other case (if ADD voltage less than 0.7 * VCC) the sensor address will
  be 0x23 (by default).

*/


#include <Wire.h>
#include <BH1750.h>
#include <LiquidCrystal_I2C.h> // LiquidCrystal_I2C Bibliothek einbinden


BH1750 lightMeter;
LiquidCrystal_I2C lcd(0x27, 16, 2);

void setup(){

  Serial.begin(9600);

  // Initialize the I2C bus (BH1750 library doesn't do this automatically)
  Wire.begin();
  // On esp8266 you can select SCL and SDA pins using Wire.begin(D4, D3);

  lightMeter.begin();

  Serial.println(F("BH1750 Test begin"));

  lcd.init();               // Im Setup wird die LCD gestartet
  lcd.backlight();          // Hintergrundbeleuchtung einschalten (lcd.noBacklight(); schaltet die Beleuchtung aus).
  lcd.setCursor(0, 0);      // Cursor in Spalte 1, Zeile 1 setzen
  lcd.print("LCD-Display"); // Text ausgeben
  lcd.setCursor(0, 1);      // Cursor in Spalte 1, Zeile 2 setzen
  lcd.print("2 x 16 Zeichen");
  delay(1000);
  lcd.clear(); // Display löschen
}


void loop() {
  lcd.setCursor(0, 0);      // Cursor in Spalte 1, Zeile 1 setzen
  lcd.print("                "); // Text ausgeben
  float lux = lightMeter.readLightLevel();
  lcd.setCursor(0, 0);      // Cursor in Spalte 1, Zeile 1 setzen
  lcd.print("Licht: "); // Text ausgeben
  lcd.print(lux);
  lcd.print(" Lux");
  Serial.print("Light: ");
  Serial.print(lux);
  Serial.println(" lx");
  delay(2000);

}
 
Zuletzt bearbeitet:
Top Bottom