Calliope mini · Lichtsensor
Calliope mini · Sensoren verstehen

Wie wird aus Licht eine Zahl?

Dein Calliope mini kann messen, wie hell es ist. Hier verfolgst du den Weg des Lichts: von der Leuchtdiode über eine elektrische Spannung bis zu den Bits im Prozessor.

Probier es aus: Wähle rechts, wo dein Calliope gerade liegt, oder schiebe den Regler. Alle Stationen auf dieser Seite rechnen mit diesem Wert weiter.

Querformat für Smartboard und Beamer

Der Calliope misst gerade die Helligkeit. Womit?

Lichtstärke 45 input.lightLevel() Klassenraum

Die LED-Anzeige zeigt den Wert als Balken. Die Zahlen sind Beispiele: Dein Calliope misst an diesen Orten andere Werte.

1 · Licht Klassenraum
Licht trifft auf die roten LEDs.
2 · Spannung 2,69 V bleiben an der LED übrig, wenn gemessen wird.
3 · Zahl 834 Rohwert des Wandlers (0 bis 1023)
4 · Bits 0010 1101 = 45. Diese Zahl bekommt dein Programm.

Die Werte in Schritt 2 und 3 stammen aus einem vereinfachten Modell. In MakeCode siehst du nur das Ergebnis aus Schritt 4.

Station 1 · Licht

Wo sitzt der Lichtsensor?

Auftrag: Vermutet zuerst: Wo im Calliope sitzt der Sensor? Vergleicht dann LDR und LED in der Tabelle.

Kein LDR im Calliope mini

Rote LEDs der Anzeige messen das Licht.

Licht erzeugt in der LED einen winzigen Fotostrom.

LeuchtenStrom → LED → Licht
MessenLicht → LED → Strom

Viele vermuten im Calliope mini einen LDR, also einen lichtabhängigen Widerstand. Den gibt es dort nicht. Der Calliope misst die Helligkeit mit einigen der roten LEDs seiner 5×5-Anzeige. Diese LEDs können zwei Dinge: leuchten und Licht messen.

Das klappt, weil eine LED auch rückwärts funktioniert. Normalerweise fließt Strom hinein und Licht kommt heraus. Trifft Licht auf eine LED, entsteht ein winziger Strom, der Fotostrom. Die LED arbeitet dann wie eine kleine Fotodiode.

Einen echten LDR kannst du trotzdem benutzen. Du schließt ihn von außen an einen Pin an. Wie das geht, zeigt die Station LDR am Pin.

MerkmalLDR (Fotowiderstand)LED als Fotodiode
Was passiert bei Licht?Der Widerstand wird kleiner.Ein kleiner Fotostrom entsteht.
Typische Größedunkel um 1 MΩ, hell unter 1 kΩFotostrom von Nano- bis Mikroampere
Im Calliope eingebaut?Nein, extern an einen PinJa, in der LED-Anzeige
Block in MakeCodeanaloge Werte von Pin lesenLichtstärke
Wertebereich0 – 10230 – 255
Station 2 · Spannung

Licht wird zu Spannung

Auftrag: Stellt „ganz dunkel“ und „ganz hell“ ein. Vermutet vorher: Bleibt bei Licht mehr oder weniger Spannung übrig?

  1. Aufladen: LED in Sperrrichtung
  2. Warten: Licht baut die Ladung ab
  3. Messen: Restspannung geht zum Wandler

Viel Licht → wenig Restspannung

Ein Prozessor kann Licht nicht direkt messen. Spannungen kann er aber messen. Also muss das Licht zuerst eine Spannung verändern. Beim Calliope läuft das in drei Schritten ab, viele Male pro Sekunde:

  1. Aufladen. Der Prozessor legt die LED kurz „falsch herum“ an Spannung, in Sperrrichtung. Dann fließt kein Strom, aber die LED speichert etwas Ladung, wie ein winziger Kondensator.
  2. Entladen lassen. Der Prozessor trennt die Spannung und wartet. Der Fotostrom baut die Ladung ab. Je heller es ist, desto schneller sinkt die Spannung.
  3. Messen. Nach einer festen Wartezeit misst der Analog-Digital-Wandler, wie viel Spannung noch übrig ist.
MerkeViel Licht bedeutet wenig Restspannung. Die Software dreht das am Ende um, damit hell eine große Zahl ergibt.
Gut zu wissenDer allererste Wert nach dem Start ist 0, weil der Lichtsensor erst eingeschaltet werden muss. Danach kommen echte Messwerte.
Spannung an der LED während einer Messung
jetztganz dunkel und ganz hell

Restspannung beim Messen: 2,69 V → Rohwert 834

Station 3 · Zahl

Analog oder digital?

Auftrag: Schaltet von 1 Bit bis 10 Bit durch. Ab wie vielen Bits erkennt ihr die Form des Signals gut?

Analog: jeder Wert zwischen 0 und 3,3 V

Digital: ganze Zahlen in Stufen

Jedes Bit verdoppelt die Stufen.

Calliope-Pins: 10 Bit = 0 bis 1023

Eine Spannung ist analog. Sie kann jeden Wert zwischen 0 V und 3,3 V annehmen, zum Beispiel 2,6843 V. Ein Computer speichert aber nur ganze Zahlen aus Nullen und Einsen. Das ist digital.

Den Übergang schafft der Analog-Digital-Wandler im Prozessor, kurz ADC (englisch: analog-to-digital converter). Er teilt den Messbereich in gleich große Stufen. Wie viele Stufen es gibt, hängt von der Zahl der Bits ab. Jedes zusätzliche Bit verdoppelt die Stufen.

An seinen analogen Pins liefert der Calliope Werte mit 10 Bit, also von 0 bis 1023. Eine Stufe ist damit nur gut 3 Millivolt hoch.

Zahl ≈ Spannung ÷ 3,3 V × 1023Beispiel: 1,65 V ist die Hälfte von 3,3 V. Das ergibt ungefähr 512.
Ein Signal mit wenigen oder vielen Bits
analoge Spannungwas der ADC speichert
Stufen
8
Stufenhöhe
0,41 V
Größte Zahl
7

8 Stufen: Die Form ist zu erkennen, aber viele Details fehlen.

Station 3 · Zahl

Wie findet der Wandler die Zahl?

Zahlenraten: größer oder kleiner?

Erster Test: Hälfte von 3,3 V = 1,65 V

Jeder Vergleich liefert 1 Bit.

Nach 10 Vergleichen steht die Zahl fest.

Der Wandler im Calliope geht vor wie beim Zahlenraten mit „größer oder kleiner?“. Zuerst fragt er: Ist die Spannung mindestens halb so groß wie 3,3 V? Die Antwort ist das erste Bit, das mit dem Wert 512.

Dann halbiert er den Suchbereich und fragt wieder. Nach 10 Fragen steht die Zahl fest. Dieses Verfahren heißt schrittweise Annäherung (Fachwort: sukzessive Approximation).

Stell eine Spannung ein und lass den Wandler arbeiten. Rot ist die echte Spannung, blau der Bereich, in dem der Wandler noch sucht.

Wandler zum Mitmachen
0 V1,65 V3,3 V

Der Wandler weiß noch nichts. Erster Test: Ist die Spannung mindestens 1,65 V?

Station 4 · Bits

Von der Zahl zu den Bits

1 Bit ist 0 oder 1.

8 Bit = 1 Byte = 256 Werte

Lichtstärke: 0 bis 255

Ein Bit kann nur 0 oder 1 sein. Acht Bits zusammen heißen ein Byte. Damit lassen sich 2⁸ = 256 verschiedene Zahlen speichern, von 0 bis 255. Genau diesen Bereich hat der Block Lichtstärke: 0 heißt dunkel, 255 heißt sehr hell.

Jedes Bit hat einen Stellenwert. Ganz rechts steht die 1, links daneben die 2, dann 4, 8 und so weiter. Du addierst die Stellenwerte aller Bits, die auf 1 stehen.

MesswertBereichBitsStufen
Lichtstärke input.lightLevel()0 – 2558256
Analoger Pin pins.analogReadPin()0 – 1023101024
Schwellwert, z. B. wenn dunkelwahr / falsch12
Keine EinheitDie Lichtstärke ist kein Messwert in Lux. Sie sagt nur „heller“ oder „dunkler“. Zwei Calliope minis können am gleichen Ort verschiedene Zahlen zeigen. Vergleiche deshalb immer mit demselben Gerät.
Lichtstärke als Byte · tippe auf die Bits
128
64
32
16
8
4
2
1
45 32 + 8 + 4 + 1

Der Lichtregler oben bewegt sich mit. Probiere: Welche Bits brauchst du für 255? Was passiert, wenn du nur das Bit 128 einschaltest?

Extra · Bauteil anschließen

Ein echter LDR am Pin P1

Auftrag: Wählt „Sonne“ und „Abgedunkelt“. Wie ändern sich Widerstand, Spannung und Zahl? Begründet mit dem Spannungsteiler.

Ein LDR ändert bei Licht seinen Widerstand, keine Spannung. Damit der Calliope etwas messen kann, baust du einen Spannungsteiler: LDR und Festwiderstand in Reihe zwischen Plus und Minus. In der Mitte greifst du die Spannung ab und führst sie zu Pin P1.

Wird es heller, sinkt der Widerstand des LDR. Dann fällt an ihm weniger Spannung ab, und an Pin P1 kommt mehr an. Mehr Licht ergibt also eine größere Zahl.

Schaltung + (3,3 V) Licht LDR 756 Ω 3,07 V Pin P1 Festwiderstand 10 kΩ − (GND)
AchtungAn einem Pin dürfen höchstens 3,3 V anliegen. Versorge den Spannungsteiler nur über den Plus-Anschluss des Calliope und nie aus einer fremden Batterie oder einem Netzteil.
Rechner
Festwiderstand
Widerstand LDR756 Ω
Spannung an P13,07 V
analogReadPin(P1)951
als 10 Bit11 1011 0111
umgerechnet auf 0–255237

Gerechnet mit typischen Werten eines Fotowiderstands der Sorte GL5528. Dein Bauteil kann davon abweichen. Lux (lx) ist die Einheit der Beleuchtungsstärke; die Orte sind grobe Richtwerte.

Station 5 · Programm

Programmieren in MakeCode

makecode.calliope.cc → JavaScript → einfügen → zurück zu Blöcken

Öffne makecode.calliope.cc, wechsle oben auf JavaScript und füge ein Beispiel ein. Danach kannst du zurück zu den Blöcken schalten und siehst das Programm als Puzzle.

Lichtstärke anzeigen

Zeigt die aktuelle Lichtstärke als Zahl auf der Anzeige.

basic.forever(function () {
    basic.showNumber(input.lightLevel())
})

Als Balken anzeigen

Je heller, desto mehr LEDs leuchten. Gut zum Herumtragen.

basic.forever(function () {
    led.plotBarGraph(input.lightLevel(), 255)
})

Nachtlicht mit Schwellwert

Aus 256 Stufen wird eine Ja-Nein-Entscheidung, also 1 Bit. Flackert das Licht, sieht der Sensor vielleicht die eigene RGB-LED. Probiere dann einen anderen Schwellwert.

// unter diesem Wert gilt es als dunkel
let schwelle = 30
basic.forever(function () {
    if (input.lightLevel() < schwelle) {
        basic.setLedColor(Colors.White)
    } else {
        basic.turnRgbLedOff()
    }
})

Messreihe aufzeichnen

Schickt jede halbe Sekunde einen Wert an den Computer. Ist der Calliope per USB gekoppelt, erscheint in MakeCode unter dem Simulator ein Knopf, um die Daten als Diagramm anzuzeigen.

basic.forever(function () {
    serial.writeValue("licht", input.lightLevel())
    basic.pause(500)
})

Externer LDR an P1

Liest den Spannungsteiler mit 10 Bit und rechnet zusätzlich auf 0–255 um, damit du ihn mit der Lichtstärke vergleichen kannst.

basic.forever(function () {
    let roh = pins.analogReadPin(AnalogPin.P1)
    let byteWert = pins.map(roh, 0, 1023, 0, 255)
    serial.writeValue("roh", roh)
    serial.writeValue("byte", byteWert)
    basic.pause(200)
})

Bits sichtbar machen

Zeigt auf Knopfdruck A die Lichtstärke als 8 Nullen und Einsen.

input.onButtonEvent(Button.A, input.buttonEventClick(), function () {
    let wert = input.lightLevel()
    let text = ""
    for (let i = 7; i >= 0; i--) {
        text = text + ((wert >> i) & 1)
    }
    basic.showString(text)
})
Station 6 · Selbst forschen

Messen, notieren, prüfen

Forscheraufträge

  • Miss an fünf Orten und trag die Werte rechts ein. Die Tabelle rechnet sie in Bits um.
  • Finde den Schwellwert für dein Nachtlicht: Ab welcher Lichtstärke ist es für dich „dunkel“?
  • Leg zwei Calliope minis nebeneinander. Zeigen sie dieselbe Zahl? Woran könnte das liegen?
  • Deck nur einen Teil der LED-Anzeige mit dem Finger ab. Ändert sich der Wert? Was verrät dir das über die messenden LEDs?
  • Für Profis: Bau den Spannungsteiler mit LDR auf und vergleiche den umgerechneten Wert mit der Lichtstärke.
Messprotokoll
OrtWertBitsAnteil
Deine Einträge bleiben nur in diesem Browser gespeichert.
Station 6 · Selbst forschen

Check dich

0 von 6 richtig
Womit misst der Calliope mini die Helligkeit?

Es wird heller. Was passiert mit der Restspannung an der LED?

Wie viele verschiedene Werte passen in 8 Bit?

An Pin P1 liegen 1,65 V an. Welche Zahl liefert analogReadPin ungefähr?

Welche Dezimalzahl ist 1100 1000?

Warum liefert die Lichtstärke beim allerersten Messen 0?

Zum Nachschlagen

Begriffe

analog
stufenlos; jeder Zwischenwert ist möglich, zum Beispiel 2,6843 V.
digital
in Stufen; als ganze Zahl aus Nullen und Einsen gespeichert.
Analog-Digital-Wandler (ADC)
Baustein im Prozessor, der eine Spannung in eine Zahl umwandelt.
Auflösung
wie fein ein Wandler messen kann. Mehr Bits ergeben kleinere Stufen.
Bit und Byte
Ein Bit ist 0 oder 1. 8 Bit sind 1 Byte mit 256 Möglichkeiten.
Fotodiode
Diode, die bei Licht einen kleinen Strom erzeugt. Eine LED kann so arbeiten.
Sperrrichtung
Eine Diode ist so angeschlossen, dass (fast) kein Strom fließt.
LDR (Fotowiderstand)
Bauteil, dessen Widerstand bei Licht kleiner wird.
Spannungsteiler
zwei Widerstände in Reihe; an der Verbindungsstelle liegt eine Teilspannung an.
Schwellwert
Grenze, ab der ein Programm umschaltet, zum Beispiel von „hell“ auf „dunkel“.
Hintergrund für Lehrkräfte

Sensorprinzip. Laut Calliope misst der Lichtsensor über einige der roten LEDs der Matrix. Die Firmware lädt die Sperrschichtkapazität der LEDs auf und wertet nach einer festen Zeit die Restspannung aus; der Fotostrom bestimmt, wie weit sie gesunken ist. Spannungs- und Rohwerte auf dieser Seite sind ein didaktisches Modell, keine Messdaten. MakeCode gibt nur den skalierten Wert 0–255 aus.

Wandler. Der Calliope mini 3 arbeitet mit einem Nordic nRF52833 (Arm Cortex-M4, 64 MHz). Dessen ADC arbeitet nach dem Verfahren der sukzessiven Approximation und kann auf bis zu 12 Bit eingestellt werden; MakeCode liefert an den Pins 0–1023 (10 Bit). Der Calliope mini 1 nutzt einen nRF51822.

Störeinflüsse. Die Lichtstärke ist relativ und geräteabhängig. Eigenes Licht der RGB-LEDs, Abdecken einzelner Matrix-Bereiche und der erste Aufruf (liefert 0) beeinflussen die Werte. Für Messreihen eignet sich die serielle Datenanzeige in MakeCode.

Didaktischer Faden. Licht → Ladung/Spannung → Quantisierung → Binärdarstellung → Schwellwert (1 Bit). Die LDR-Station verbindet das mit dem klassischen Spannungsteiler aus dem Technik- bzw. Physikunterricht.

Hinweise für Lehrkräfte

Jahrgang

Technik oder Informatik, Klasse 7–8. Calliope mini 3 und MakeCode.

Ablauf in 45 Minuten

  1. 5′ Einstieg: Orte laufen lassen, Frage, auflösen.
  2. 6′ Station 1: LED statt LDR.
  3. 7′ Station 2: Licht wird zu Spannung.
  4. 7′ Station 3: analog und digital.
  5. 7′ Station 4: Bits.
  6. 8′ Station 5: Lichtstärke in MakeCode anzeigen.
  7. 5′ Check.

Ablauf in 90 Minuten

  1. 45′ wie links.
  2. 10′ Wandler: schrittweise Annäherung.
  3. 25′ Station 6: Messen und Schwellwert finden.
  4. 10′ Extra: LDR am Pin.

Lernziele

  • Die Schülerinnen und Schüler beschreiben, dass der Calliope mini Helligkeit mit LEDs der Anzeige misst.
  • Sie erklären die Kette Licht → Spannung → Zahl → Bits.
  • Sie rechnen 8-Bit-Zahlen zwischen Dual- und Dezimalschreibweise um.
  • Sie programmieren die Lichtstärke in MakeCode und nutzen einen Schwellwert.

Typische Fehlvorstellungen

  • „Im Calliope steckt ein LDR.“ Er misst mit LEDs.
  • „Die Lichtstärke ist in Lux.“ Sie hat keine Einheit und ist geräteabhängig.
  • „Mehr Licht, mehr Restspannung.“ Umgekehrt; die Software dreht es erst am Ende um.
  • „In 8 Bit passen 255 Werte.“ Es sind 256 (0 bis 255).