Lesen, Merken und Rechnen

Mithilfe von Variablen lassen sich Werte und Informationen speichern. Sie sind prinzipiell Container für veränderbare Werte. Gespeicherte Variablen können zu einem späteren Zeitpunkt wieder aufgerufen werden, um ihren Wert auszulesen oder zu verändern oder auch um mit ihm zu rechnen. Variablen bestehen immer aus einem eindeutigen Namen. Dieser Name ist beliebig und wird vom Nutzer selbst vergeben.

Verwendung von Variablen

Im folgendem Beispiel kombinieren wir eine Variable mit einer wenn-Bedingung. Wir initialisieren die Variable counter mit dem Wert 0 und die Revisionsnummer des Joy-Cars im beim Start-Block. Im dauerhaft-Block wird mit der wenn-Bedingung geprüft, ob die Variable den Wert 1 besitzt. Trifft dies zu, so aktivieren wir die Scheinwerfer des Joy-Cars. Sollte dies nicht zutreffen, so schalten wir die Scheinwerfer aus. Im Anschluss wird der Wert der Variable counter auf den LEDs angezeigt und dann der Wert der Variable counter um 1 erhöht.

JoyCar.initJoyCar(RevisionMainboard.OnepThree)
let counter = 0
basic.forever(function () {
    if (counter == 1) {
        JoyCar.light(ToggleSwitch.On)
    } else {
        JoyCar.light(ToggleSwitch.Off)
    }
    basic.showString("" + (counter))
    counter += 1
})

Der Beispielcode in MicroPython ist da, weil es ihn auch in MakeCode gibt. Das ist super praktisch, denn wenn du schon mit MakeCode klar kommst, kannst du viel leichter mit MicroPython loslegen. Indem wir Beispielcodes in beiden Umgebungen haben, kannst du ohne große Unterbrechung weiterlernen. So verstehst du besser, wie Programmierung funktioniert und kannst sehen, wie man dieselben Sachen in verschiedenen Programmiersprachen macht.

# Notwendige Bibliotheken importieren
from microbit import *
import neopixel

# Definiere deine Joy Car Mainboard Revision
joycar_rev = 1.3

# Objekt für die LEDs definieren
np = neopixel.NeoPixel(pin0, 8)

# Werte für die Lichter definieren
# welche LEDs aktiviert werden sollen
headlights = (0, 3)
backlights = (5, 6)
indicator_left = (1, 4)
indicator_right = (2, 7)
indicator_warning = (1, 2, 4, 7)

# welche Farbe auf den LEDs angezeigt werden soll
led_white = (60, 60, 60)
led_red = (60, 0, 0)
led_off = (0, 0, 0)
led_red_br = (255, 0, 0)
led_orange = (100, 35, 0)

# Methode zum Aktivieren/Deaktivieren von Lichtern
def lights(on = True):
    if on:
        for x, y in zip(headlights, backlights):
            # Weiß für die Scheinwerfer definieren
            np[x] = led_white
            # Dunkelrot für die Rücklichter definieren
            np[y] = led_red
    else:
        for x, y in zip(headlights, backlights):
            # Schwarz für die Scheinwerfer und Rücklichter definieren
            np[x] = led_off
            np[y] = led_off
    np.show()

# Variable zum Zählen definieren
counter = 0

while True:
    # Prüfen, ob der Zähler 1 ist
    if counter == 1:
        # Abblendlicht anschalten
        lights()
    else:
        # Abblendlicht abschalten
        lights(on = False)

    # Zähler auf LED-Matrix anzeigen
    display.scroll(str(counter))
    # Zähler um 1 erhöhen
    counter += 1

Verändern von Variablen

Im nächsten Schritt erweitern wir unser bisheriges Beispiel noch um eine zusätzliche Komponente. Wir prüfen zusätzlich mit einer weiteren wenn-Abfrage, ob sich der Wert unserer Variable unterhalb von 4 befindet. Trifft dies zu, so erhöhen wir unsere counter-Variable wieder um 1. Sollte dies nicht zutreffen und damit der Wert unserer Variable 4 oder größer sein, so setzen wir unsere Variable wieder zurück auf 0.

Auf diese Weise durchlaufen wir unsere Anweisungen immer wieder aufs Neue, auch ohne den Einsatz einer Schleife.

JoyCar.initJoyCar(RevisionMainboard.OnepThree)
let counter = 0
basic.forever(function () {
    if (counter == 1) {
        JoyCar.light(ToggleSwitch.On)
    } else {
        JoyCar.light(ToggleSwitch.Off)
    }
    basic.showString("" + (counter))
    if (counter < 4) {
        counter += 1
    } else {
        counter = 0
    }
})

Der Beispielcode in MicroPython ist da, weil es ihn auch in MakeCode gibt. Das ist super praktisch, denn wenn du schon mit MakeCode klar kommst, kannst du viel leichter mit MicroPython loslegen. Indem wir Beispielcodes in beiden Umgebungen haben, kannst du ohne große Unterbrechung weiterlernen. So verstehst du besser, wie Programmierung funktioniert und kannst sehen, wie man dieselben Sachen in verschiedenen Programmiersprachen macht.

# Notwendige Bibliotheken importieren
from microbit import *
import neopixel

# Definiere deine Joy Car Mainboard Revision
joycar_rev = 1.3

# Objekt für die LEDs definieren
np = neopixel.NeoPixel(pin0, 8)

# Werte für die Lichter definieren
# welche LEDs aktiviert werden sollen
headlights = (0, 3)
backlights = (5, 6)
indicator_left = (1, 4)
indicator_right = (2, 7)
indicator_warning = (1, 2, 4, 7)

# welche Farbe auf den LEDs angezeigt werden soll
led_white = (60, 60, 60)
led_red = (60, 0, 0)
led_off = (0, 0, 0)
led_red_br = (255, 0, 0)
led_orange = (100, 35, 0)

# Methode zum Aktivieren/Deaktivieren von Lichtern
def lights(on = True):
    if on:
        for x, y in zip(headlights, backlights):
            # Weiß für die Scheinwerfer definieren
            np[x] = led_white
            # Dunkelrot für die Rücklichter definieren
            np[y] = led_red
    else:
        for x, y in zip(headlights, backlights):
            # Schwarz für die Scheinwerfer und Rücklichter definieren
            np[x] = led_off
            np[y] = led_off
    np.show()

# Variable zum Zählen definieren
counter = 0

while True:
    # Prüfen, ob der Zähler 1 ist
    if counter == 1:
        # Abblendlicht anschalten
        lights()
    else:
        # deactivate lights
        lights(on = False)

    # Zähler auf LED-Matrix anzeigen
    display.scroll(str(counter))

    # Der Zähler soll im Intervall zwischen 0 und 4 liegen
    if counter < 4:
        # Zähler um 1 erhöhen
        counter += 1
    else:
        # Zähler auf 0 zurücksetzen
        counter = 0

Variable -1

Natürlich muss eine Variable nicht immer nur um 1 erhöht werden. Variablen können auch gesenkt werden und auch für komplexere mathematische Rechnungen verwendet werden. Da die Variablen nur einen Container darstellen, können sie praktisch für jeden Wert, jeden Zwischenspeicher und jede Rechnung benutzt werden. Im nächsten Beispiel zeigen wir noch einmal, wie unser bisheriges Beispiel mit einer Subtraktion, anstatt einer Addition, funktioniert. Dieses Mal haben wir anstatt des ändere Variable-Blocks den setze Variable auf-Block verwendet und diesen mit einer mathematischen Operation versehen (counter - 1).

JoyCar.initJoyCar(RevisionMainboard.OnepThree)
let counter = 0
basic.forever(function () {
    if (counter == 1) {
        JoyCar.light(ToggleSwitch.On)
    } else {
        JoyCar.light(ToggleSwitch.Off)
    }
    basic.showString("" + (counter))
    if (counter > 0) {
        counter = counter - 1
    } else {
        counter = 4
    }
})

Der Beispielcode in MicroPython ist da, weil es ihn auch in MakeCode gibt. Das ist super praktisch, denn wenn du schon mit MakeCode klar kommst, kannst du viel leichter mit MicroPython loslegen. Indem wir Beispielcodes in beiden Umgebungen haben, kannst du ohne große Unterbrechung weiterlernen. So verstehst du besser, wie Programmierung funktioniert und kannst sehen, wie man dieselben Sachen in verschiedenen Programmiersprachen macht.

# Notwendige Bibliotheken importieren
from microbit import *
import neopixel

# Definiere deine Joy Car Mainboard Revision
joycar_rev = 1.3

# Objekt für die LEDs definieren
np = neopixel.NeoPixel(pin0, 8)

# Werte für die Lichter definieren
# welche LEDs aktiviert werden sollen
headlights = (0, 3)
backlights = (5, 6)
indicator_left = (1, 4)
indicator_right = (2, 7)
indicator_warning = (1, 2, 4, 7)

# welche Farbe auf den LEDs angezeigt werden soll
led_white = (60, 60, 60)
led_red = (60, 0, 0)
led_off = (0, 0, 0)
led_red_br = (255, 0, 0)
led_orange = (100, 35, 0)

# Methode zum Aktivieren/Deaktivieren von Lichtern
def lights(on = True):
    if on:
        for x, y in zip(headlights, backlights):
            # Weiß für die Scheinwerfer definieren
            np[x] = led_white
            # Dunkelrot für die Rücklichter definieren
            np[y] = led_red
    else:
        for x, y in zip(headlights, backlights):
            # Schwarz für die Scheinwerfer und Rücklichter definieren
            np[x] = led_off
            np[y] = led_off
    np.show()

# Variable zum Zählen definieren
counter = 0

while True:
    # Prüfen, ob der Zähler 1 ist
    if counter == 1:
        # Abblendlicht anschalten
        lights()
    else:
        # Abblendlicht abschalten
        lights(on = False)

    # Zähler auf LED-Matrix anzeigen
    display.scroll(str(counter))

    # Der Zähler soll im Intervall 4 bis 0 liegen (rückwärts)
    if counter > 0:
        # Zähler um 1 verringern
        counter -= 1
    else:
        # Zähler auf 4 zurücksetzen
        counter = 4