Challenge 10: Nachttischlampe

Das Projekt kann über den Link https://github.com/InES-HPMM/zhaw_lightbag in MakeCode importiert werden.

input.onLogoEvent(TouchButtonEvent.Pressed, function () {
    if (Eingeschaltet == true) {
        strip.setBrightness(0)
        strip.showColor(Farbe)
        strip.show()
    } else {
        strip.setBrightness(Helligkeit)
        strip.showColor(Farbe)
        strip.show()
    }
    Eingeschaltet = !(Eingeschaltet)
})
input.onButtonPressed(Button.A, function () {
    Helligkeit += 45
    if (Helligkeit > 255) {
        Helligkeit = 0
    }
    strip.setBrightness(Helligkeit)
    strip.showColor(Farbe)
    strip.show()
})
function wechsel_regenbogen () {
    while (true) {
        for (let Index = 0; Index <= 205; Index++) {
            if (input.buttonIsPressed(Button.B)) {
                return
            }
            strip.showRainbow(1, 360)
            strip.setBrightness(50 + Index)
            strip.show()
            basic.pause(10)
        }
        basic.pause(100)
        for (let Index2 = 0; Index2 <= 205; Index2++) {
            if (input.buttonIsPressed(Button.B)) {
                return
            }
            strip.showRainbow(1, 360)
            strip.setBrightness(255 - Index2)
            strip.show()
            basic.pause(10)
        }
    }
}
input.onButtonPressed(Button.B, function () {
    FarbZaehler += 1
    if (FarbZaehler < FarbListe.length) {
        Farbe = FarbListe[FarbZaehler]
        strip.setBrightness(Helligkeit)
        strip.showColor(Farbe)
        strip.show()
    } else if (FarbZaehler == FarbListe.length) {
        strip.showRainbow(1, 360)
    } else if (FarbZaehler == FarbListe.length + 1) {
        wechsel_regenbogen()
    } else {
        wechsel_farbig()
        FarbZaehler = -1
    }
})
function wechsel_farbig () {
    st_rot = 0
    st_gruen = 127
    st_blau = 255
    st_delta_rot = 2
    st_delta_gruen = 2
    st_delta_blau = 2
    while (true) {
        if (input.buttonIsPressed(Button.B)) {
            return
        }
        Farbe = neopixel.rgb(st_rot, st_gruen, st_blau)
        strip.showColor(Farbe)
        strip.setBrightness(Helligkeit)
        strip.show()
        basic.pause(50)
        st_rot += st_delta_rot
        st_gruen += st_delta_gruen
        st_blau += st_delta_blau
        if (st_rot > 255) {
            st_rot = 255
            st_delta_rot = st_delta_rot * -1
        }
        if (st_rot < 0) {
            st_rot = 0
            st_delta_rot = st_delta_rot * -1
        }
        if (st_gruen > 255) {
            st_gruen = 255
            st_delta_gruen = st_delta_gruen * -1
        }
        if (st_gruen < 0) {
            st_gruen = 0
            st_delta_gruen = st_delta_gruen * -1
        }
        if (st_blau > 255) {
            st_blau = 255
            st_delta_blau = st_delta_blau * -1
        }
        if (st_blau < 0) {
            st_blau = 0
            st_delta_blau = st_delta_blau * -1
        }
    }
}
let st_delta_blau = 0
let st_delta_gruen = 0
let st_delta_rot = 0
let st_blau = 0
let st_gruen = 0
let st_rot = 0
let FarbListe: number[] = []
let Eingeschaltet = false
let Helligkeit = 0
let Farbe = 0
let strip: neopixel.Strip = null
let FarbZaehler = 0
FarbZaehler = 0
strip = neopixel.create(DigitalPin.P0, 12, NeoPixelMode.RGB)
Farbe = neopixel.rgb(255, 200, 25)
strip.showColor(Farbe)
Helligkeit = 102
Eingeschaltet = true
strip.show()
FarbListe = [
neopixel.rgb(255, 0, 0),
neopixel.rgb(0, 255, 0),
neopixel.rgb(0, 0, 255),
neopixel.rgb(255, 200, 25)
]