====== 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()
})