Tino Hempel
Published © CC BY-SA

Calliope mini als Binäruhr mit Einstellfunktion

Calliope mini wird zur Binäruhr zur Anzeige von Stunden, Minuten und dem Sekundentakt. Die Uhrzeit kann am mini eingestellt werden.

IntermediateProtip1 hour143

Things used in this project

Hardware components

Calliope mini
Calliope mini
×1

Software apps and online services

Calliope MakeCode-Editor

Story

Read more

Code

Quelltext

JavaScript
function zeigeAn (pStunde: number, pMinute: number) {
    ___stunde = pStunde
    ___minute = pMinute
    for (let y = 0; y <= 4; y++) {
        led.unplot(1, y)
        led.unplot(4, y)
    }
    led.unplot(3, 4)
    stelle = 1
    while (___stunde > 0) {
        if (___stunde % 2 == 1) {
            led.plot(1, 5 - stelle)
        }
        ___stunde = Math.idiv(___stunde, 2)
        stelle += 1
    }
    if (___minute >= 32) {
        led.plot(3, 4)
        ___minute += -32
    }
    stelle = 1
    while (___minute > 0) {
        if (___minute % 2 == 1) {
            led.plot(4, 5 - stelle)
        }
        ___minute = Math.idiv(___minute, 2)
        stelle += 1
    }
}
input.onButtonEvent(Button.A, input.buttonEventClick(), function () {
    if (modus == 0) {
        modus += 1
    }
})
let sekunde = 0
let ___minute = 0
let ___stunde = 0
let modus = 0
let stelle = 0
stelle = 0
let volle_sekunde = true
modus = 0
let stunde = 23
let minute = 59
loops.everyInterval(500, function () {
    led.toggle(2, 1)
    led.toggle(2, 3)
    volle_sekunde = !(volle_sekunde)
    if (volle_sekunde) {
        sekunde += 1
        zeigeAn(stunde, minute)
        if (sekunde == 60) {
            sekunde = 0
            minute += 1
            if (minute == 60) {
                minute = 0
                stunde += 1
            }
            if (stunde == 24) {
                stunde = 0
            }
        }
    }
})
basic.forever(function () {
    if (modus != 0) {
        sekunde = 0
        while (modus == 1) {
            led.plot(0, 0)
            if (input.buttonIsPressed(Button.B)) {
                stunde = (stunde + 1) % 24
                zeigeAn(stunde, minute)
                basic.pause(500)
            } else if (input.buttonIsPressed(Button.A)) {
                modus += 1
                basic.pause(500)
            }
        }
        while (modus == 2) {
            led.unplot(0, 0)
            led.plot(3, 0)
            if (input.buttonIsPressed(Button.B)) {
                minute = (minute + 1) % 60
                zeigeAn(stunde, minute)
                basic.pause(500)
            } else if (input.buttonIsPressed(Button.A)) {
                modus = 3
                basic.pause(500)
            }
        }
        if (modus > 2) {
            led.unplot(3, 0)
            modus = 0
        }
    }
})

Credits

Tino Hempel

Tino Hempel

12 projects • 6 followers
Thanks to Petejbell.

Comments