### 4.3.2 Light Intensity Detector
#### 4.3.2.1 Übersicht

Der Lichtstärkemesser, auch bekannt als Beleuchtungsstärke-Messgerät oder Lux-Meter, ist ein spezielles Instrument zur Messung der Gesamtmenge an Licht (d.h. Beleuchtungsstärke), die auf eine Oberfläche fällt. Er arbeitet hauptsächlich auf Basis des photoelektrischen Effekts.
In diesem Projekt wird die vom Lichtsensor erkannte Helligkeit in Echtzeit auf dem OLED angezeigt. Wenn sie einen bestimmten Wert überschreitet, gibt der Lautsprecher auf dem Board einen Alarm als Warnung und Erinnerung aus.
Lichtstärkemesser werden in nahezu allen Situationen eingesetzt, in denen „Licht“ quantifiziert werden muss, z. B. Außen- und Straßenbeleuchtung, Innenbeleuchtungsplanung und Abnahme, Foto- und Videoproduktion, Architektur und Gesundheit usw.

#### 4.3.2.2 Komponentenwissen

**Microbit Light Sensor**

Da das micro:bit Board keinen eigenen Fotowiderstand enthält, übernimmt die LED-Matrix diese Aufgabe. Das Lichtsignal wird in einen Eingang umgewandelt, und die Abklingzeit der Spannung wird abgetastet, sodass die erkannte Lichtstärke ein relativer Wert ist. (**Hinweis**: die Lichthelligkeit wird auf die serielle Schnittstelle ausgegeben und ist ein relativer Wert.)
**Microbit Speaker**

Das Micro:bit-Board verfügt über einen eingebauten Lautsprecher, der das Ausgeben von Tönen in Programmen erleichtert. Er kann Geräusche wie Kichern, Begrüßungen oder Gähnen sowie verschiedene Tonhöhen, Noten und Rhythmen erzeugen. Zum Beispiel kann er das Lied Ode to Joy spielen.

#### 4.3.2.3 Benötigte Komponenten
| |  | |
| :--: | :--: | :--: |
| micro:bit V2 Hauptplatine ×1 | micro:bit Shield ×1 | OLED-Anzeige ×1 |
| |||
| micro USB-Kabel ×1 | 4-poliges Kabel ×1 | Batteriefach ×1 |
|| | |
|AA-Batterien(**selbst bereitgestellt**) ×6| | |
#### 4.3.2.4 Anschlussdiagramm
⚠️ **Beim Anschließen bitte auf die Kabelfarben achten.**
| OLED display | wire color | micro:bit shield pin | micro:bit board pin |
| :----------: | :--------: | :------------------: | :-----------------: |
| GND | black | G | G |
| VCC | red | V2 | V |
| SDA | blue | 20 | P20 |
| SCL | green | 19 | P19 |

#### 4.3.2.5 Programmfluss

#### 4.3.2.6 Testcode
⚠️ **Tipp 1: Bevor Sie den Code auf das Microbit-Board herunterladen, importieren Sie bitte die Bibliotheksdatei “oled_ssd1306\.py” entsprechend ** “[Import Library on MU](https://docs.keyestudio.com/projects/KS4050/en/latest/docs/MicroPython/MU_development_environment.html#import-library-on-mu)” .

⚠️ **Tipp 2: Der Schwellenwert in der “if()...elif()...” Bedingung kann je nach tatsächlicher Situation angepasst werden.**
**Vollständiger Code:**
```Python
'''
Theme: Light intensity detector
Function: OLED displays the light intensity and the microbit light sensor controls the 5×5 dot matrix and speaker
Compiling IDE: MU 1.2.0
Author: https://docs.keyestudio.com
'''
# import related libraries
from microbit import *
from oled_ssd1306 import *
import music
val1 = Image("90909:""09990:""99999:""09990:""90909") # Set pattern
val2 = Image("00000:""00900:""09990:""00900:""00000") # Set pattern
# initialize and clear oled
initialize() # initialize oled
clear_oled() # clear oled
while True:
clear_oled() # clear OLED
Lightintensity = display.read_light_level() # Read the light intensity detected by the microbit light sensor and assign it to the variable Lightintensity
add_text(0, 0, 'Lightintensity:') # Display the character string in the corresponding position of OLED
add_text(16, 0, str(Lightintensity)) # Display Lightintensity in the corresponding position of OLED
if Lightintensity >= 100: # when Light intensity > 100
display.show(val1) # LED matrix displays the set pattern1
music.play("C5:1") # speaker plays C5 tone
sleep(50)
music.play("D5:2") # speaker plays D5 tone
sleep(50)
music.play("B5:4") # speaker plays B5 tone
sleep(50)
elif Lightintensity > 0 and Lightintensity < 100: # when 0 < Light intensity < 100
display.show(val2) # LED matrix displays the set pattern2
music.play("C3:1") # speaker plays C3 tone
else: # or
display.clear() # Set the brightness of all LEDs to 0 (off)
music.reset() # no tone
sleep(1000)
```

**Kurze Erklärung:**
① Importiere die Bibliotheken microbit, oled_ssd1306 und music.
```Python
# import related libraries
from microbit import *
from oled_ssd1306 import *
import music
```
② Definiere zwei Muster.
```Python
val1 = Image("90909:""09990:""99999:""09990:""90909") # Set pattern
val2 = Image("00000:""00900:""09990:""00900:""00000") # Set pattern
```
③ Initialisiere das OLED und lösche es.
```Python
initialize() # initialize oled
clear_oled() # clear oled
```
④ Lese den Helligkeitswert vom micro:bit und zeige ihn auf dem OLED an.
```Python
Lightintensity = display.read_light_level() # Read the light intensity detected by the microbit light sensor and assign it to the variable Lightintensity
add_text(0, 0, 'Lightintensity:') # Display the character string in the corresponding position of OLED
add_text(16, 0, str(Lightintensity)) # Display Lightintensity in the corresponding position of OLED
```
⑤ Entscheidungsanweisung: if()...elif()...else...
Wenn die erkannte Helligkeit größer oder gleich 100 ist, zeigt die 5×5-LED-Matrix  und der Lautsprecher gibt Warnton 1 aus.
```Python
if Lightintensity >= 100: # when Light intensity > 100
display.show(val1) # LED matrix displays the set pattern1
music.play("C5:1") # speaker plays C5 tone
sleep(50)
music.play("D5:2") # speaker plays D5 tone
sleep(50)
music.play("B5:4") # speaker plays B5 tone
sleep(50)
```
Wenn die erkannte Helligkeit zwischen 0 und 100 liegt, zeigt die 5×5-LED-Matrix  und der Lautsprecher gibt Warnton 2 aus.
```Python
elif Lightintensity > 0 and Lightintensity < 100: # when 0 < Light intensity < 100
display.show(val2) # LED matrix displays the set pattern2
music.play("C3:1") # speaker plays C3 tone
```
Andernfalls zeigt die 5×5-LED-Matrix nichts und der Lautsprecher bleibt stumm.
```Python
else: # or
display.clear() # Set the brightness of all LEDs to 0 (off)
music.reset() # no tone
```
⑥ Warte 1000 ms (1 s).
```Python
sleep(1000)
```
#### 4.3.2.7 Testergebnis

Nach dem Anschließen und Einschalten über das micro USB-Kabel, schließen Sie die externe Stromversorgung (6 AA-Batterien) an, um eine ausreichende Stromversorgung sicherzustellen, und klicken Sie auf “Flash”, um den Code auf das micro:bit Board herunterzuladen.

Nach dem Hochladen des Testcodes drücken Sie die Reset-Taste auf der Rückseite des micro:bit.

Das OLED zeigt den vom Lichtsensor erfassten Helligkeitswert in Echtzeit an. Wenn die erkannte Helligkeit größer als 100 ist, zeigt die 5×5-LED-Matrix  und der Lautsprecher gibt Warnton 1 als hohe Warnstufe aus. Liegt die erkannte Helligkeit zwischen 0 und 100, zeigt die 5×5-LED-Matrix  und der Lautsprecher gibt Warnton 2 als niedrige Warnstufe aus. Andernfalls zeigt die 5×5-LED-Matrix nichts und der Lautsprecher bleibt stumm.

⚠️ **Hinweis: Die Bausteine im Experiment sind nicht in diesem Kit enthalten.**
(**Tipp:** Wenn kein Ergebnis beobachtet wird, drücken Sie bitte die Reset-Taste des micro:bit Boards.)
