Inhaltsverzeichnis

Lösungen zu den Challenges von Beispiel 1

Challenge 1

Versuche die LEDs in einer anderen Farbe z.B. Grün oder Violett anzuzeigen.

input.onButtonPressed(Button.A, function () {
    if (position <= 9) {
        position += 1
    }
})
input.onButtonPressed(Button.B, function () {
    if (position >= 0) {
        position += -1
    }
})
let position = 0
let strip = neopixel.create(DigitalPin.P0, 10, NeoPixelMode.RGB)
position = 0
basic.forever(function () {
    strip.showColor(neopixel.colors(NeoPixelColors.Black))
    strip.setPixelColor(position, neopixel.colors(NeoPixelColors.Violet))
    strip.show()
})

Challenge 2

Versuche die Anzahl der LEDs immer um 2 pro Tastendruck zu erhöhen bzw. zu verringern.

input.onButtonPressed(Button.A, function () {
    if (position <= 9) {
        position += 2
    }
})
input.onButtonPressed(Button.B, function () {
    if (position >= 0) {
        position += -2
    }
})
let position = 0
let strip = neopixel.create(DigitalPin.P0, 10, NeoPixelMode.RGB)
position = 0
basic.forever(function () {
    strip.showColor(neopixel.colors(NeoPixelColors.Black))
    strip.setPixelColor(position, neopixel.colors(NeoPixelColors.Red))
    strip.show()
})

Challenge 3

Versuche die LEDs blinken zu lassen, d.h. die LEDs 500 Millisekunden leuchten zu lassen, dann abzudrehen und nach 500 Millisekunden wieder leuchten zu lassen.

input.onButtonPressed(Button.A, function () {
    if (position <= 9) {
        position += 1
    }
})
input.onButtonPressed(Button.B, function () {
    if (position >= 0) {
        position += -1
    }
})
let position = 0
let strip = neopixel.create(DigitalPin.P0, 10, NeoPixelMode.RGB)
position = 0
basic.forever(function () {
    strip.showColor(neopixel.colors(NeoPixelColors.Black))
    strip.setPixelColor(position, neopixel.colors(NeoPixelColors.Red))
    strip.show()
    basic.pause(500)
    strip.showColor(neopixel.colors(NeoPixelColors.Black))
    strip.show()
    basic.pause(500)
})

Challenge 4

Versuche alle LEDs beim Drücken von A und B auszuschalten.

input.onButtonPressed(Button.A, function () {
    color = neopixel.colors(NeoPixelColors.Red)
    if (position <= 9) {
        position += 1
    }
})
input.onButtonPressed(Button.AB, function () {
    color = neopixel.colors(NeoPixelColors.Black)
})
input.onButtonPressed(Button.B, function () {
    color = neopixel.colors(NeoPixelColors.Red)
    if (position >= 0) {
        position += -1
    }
})
let color = 0
let position = 0
let strip = neopixel.create(DigitalPin.P0, 10, NeoPixelMode.RGB)
position = 0
color = neopixel.colors(NeoPixelColors.Red)
basic.forever(function () {
    strip.clear()
    strip.setPixelColor(position, color)
    strip.show()
})

Challenge 5

Versuche die LEDs in einer zufälligen Farbe anzuzeigen.

Lösungsvorschlag A zu Challenge 5

Hinweis zu folgender Lösung: Hier wird eine Zufallsfarbe erzeugt, indem pro Farbanteil eine Zufallszahl im Bereich 0 bis 255 erzeugt wird.

input.onButtonPressed(Button.A, function () {
    if (position <= 9) {
        position += 1
    }
    color = getRandomColor()
})
function getRandomColor () {
    greenComponent = randint(0, 255)
    blueComponent = randint(0, 255)
    redComponent = randint(0, 255)
    color = neopixel.rgb(redComponent, greenComponent, blueComponent)
    return color
}
input.onButtonPressed(Button.B, function () {
    if (position >= 0) {
        position += -1
    }
    color = getRandomColor()
})
let redComponent = 0
let blueComponent = 0
let greenComponent = 0
let position = 0
let color = 0
color = getRandomColor()
let strip = neopixel.create(DigitalPin.P0, 10, NeoPixelMode.RGB)
position = 0
basic.forever(function () {
    strip.clear()
    strip.setPixelColor(position, color)
    strip.show()
})

Lösungsvorschlag B zu Challenge 5

input.onButtonPressed(Button.A, function () {
    if (position <= 9) {
        position += 1
    }
    color = getRandomColor()
})
function getRandomColor () {
    colorSelection = randint(0, 7)
    if (colorSelection == 0) {
        color = neopixel.colors(NeoPixelColors.Red)
    } else if (colorSelection == 1) {
        color = neopixel.colors(NeoPixelColors.Orange)
    } else if (colorSelection == 2) {
        color = neopixel.colors(NeoPixelColors.Yellow)
    } else if (colorSelection == 3) {
        color = neopixel.colors(NeoPixelColors.Green)
    } else if (colorSelection == 4) {
        color = neopixel.colors(NeoPixelColors.Blue)
    } else if (colorSelection == 5) {
        color = neopixel.colors(NeoPixelColors.Indigo)
    } else if (colorSelection == 6) {
        color = neopixel.colors(NeoPixelColors.Violet)
    } else if (colorSelection == 7) {
        color = neopixel.colors(NeoPixelColors.Purple)
    } else {
        color = neopixel.colors(NeoPixelColors.Black)
    }
    return color
}
input.onButtonPressed(Button.B, function () {
    if (position >= 0) {
        position += -1
    }
    color = getRandomColor()
})
let colorSelection = 0
let position = 0
let color = 0
color = getRandomColor()
let strip = neopixel.create(DigitalPin.P0, 10, NeoPixelMode.RGB)
position = 0
basic.forever(function () {
    strip.clear()
    strip.setPixelColor(position, color)
    strip.show()
})