Challenge 3: Regenbogen
Lasse auf deinem LED-Ring ein Regenbogen leuchten. Programmiere deinen micro:bit so, dass du den Regenbogen mit dem Berühren des Logos aus- und wieder einschalten kannst.
let strip = neopixel.create(DigitalPin.P0, 12, NeoPixelMode.RGB)
let ring_zustand = 0
basic.forever(function () {
if (input.logoIsPressed()) {
if (ring_zustand == 0) {
strip.showRainbow(1, 360)
ring_zustand = 1
} else if (ring_zustand == 1) {
strip.showColor(neopixel.colors(NeoPixelColors.Black))
ring_zustand = 0
} else {
}
strip.show()
// Diese Schleife Blockiert, bis das Logo wieder losgelassen wird
while (input.logoIsPressed()) {
}
}
})
Zusatzaufgabe
- Ändere die Helligkeit des Lichts. Klicke auf A und der Regenbogen wird heller. Klicke auf B und er wird dunkler.
- Was passiert, wenn die Helligkeit >255 ist oder kleiner 0? Programmiere, dass die Helligkeit nicht < 0 oder > 255 werden kann.
input.onButtonPressed(Button.A, function () {
ring_helligkeit += -16
if (ring_helligkeit < 0) {
ring_helligkeit = 0
}
strip.setBrightness(ring_helligkeit)
strip.show()
})
input.onButtonPressed(Button.B, function () {
ring_helligkeit += 16
if (ring_helligkeit > 255) {
ring_helligkeit = 255
}
strip.setBrightness(ring_helligkeit)
strip.show()
})
let ring_helligkeit = 0
let strip: neopixel.Strip = null
strip = neopixel.create(DigitalPin.P0, 12, NeoPixelMode.RGB)
let ring_zustand = 0
ring_helligkeit = 128
basic.forever(function () {
if (input.logoIsPressed()) {
if (ring_zustand == 0) {
strip.showRainbow(1, 360)
ring_zustand = 1
} else if (ring_zustand == 1) {
strip.showColor(neopixel.colors(NeoPixelColors.Black))
ring_zustand = 0
} else {
}
strip.setBrightness(ring_helligkeit)
strip.show()
// Diese Schleife Blockiert, bis das Logo wieder losgelassen wird
while (input.logoIsPressed()) {
}
}
})