Challenge 4: Lauflicht

Auf deinem LED-Ring soll immer nur eine LED leuchten. Immer nach einer Sekunde springt das Licht zur benachbarten LED und bewegt sich so endlos im Kreis.

let richtung = 0
let strip = neopixel.create(DigitalPin.P0, 12, NeoPixelMode.RGB)
richtung = 1
let led_index = 0
basic.forever(function () {
    led_index = led_index + richtung
    led_index = led_index % 12
    strip.showColor(neopixel.colors(NeoPixelColors.Black))
    strip.setPixelColor(led_index, neopixel.colors(NeoPixelColors.Orange))
    strip.show()
    basic.pause(1000)
})

Zusatzaufgabe

  • Ändere bei Logoklick die Richtung.
  • Programmiere das Lauflicht so, dass es nach jedem Schritt eine andere Farbe hat.
  • Programmiere das Licht so, dass es langsam ausschaltet und währenddessen das nächste Licht langsam einschaltet. Tipp: Du brauchst dazu Variablen und Logikbauteile.
  • Lasse immer zwei benachbarte LEDs gemeinsam im Kreis laufen. Wie löst du den Übergang von der LED 11 zur LED 0?
input.onLogoEvent(TouchButtonEvent.Pressed, function () {
    richtung = richtung * -1
})
let richtung = 0
let strip = neopixel.create(DigitalPin.P0, 12, NeoPixelMode.RGB)
richtung = 1
let led_index = 0
basic.forever(function () {
    led_index = led_index + richtung
    led_index = led_index % 12
    strip.showColor(neopixel.colors(NeoPixelColors.Black))
    strip.setPixelColor(led_index, neopixel.colors(NeoPixelColors.Orange))
    strip.show()
    basic.pause(1000)
})