Hackster is hosting Hackster Holidays, Ep. 6: Livestream & Giveaway Drawing. Watch previous episodes or stream live on Monday!Stream Hackster Holidays, Ep. 6 on Monday!
Daniel Havlik
Published © CC BY-SA

Codeschloss

Ein Codeschloss. Man muss mittels der LEDs einen 5-stelligen Code einstellen um es zu öffnen.

IntermediateFull instructions provided1 hour7,260
Codeschloss

Things used in this project

Hardware components

Calliope mini
Calliope mini
×1

Story

Read more

Schematics

Screenshot http://pxt.calliope.cc Editor

Die Blockansicht des Programms

Code

Script-Code für den Editor auf http://pxt.calliope.cc

Typescript
Auf "JavaScript" klicken und den Code einfügen.
let bearbeite_spalte = 0
let loesung_der_spalte = 0
let spaltenwert = 0
let code_richtig = 0
let loesung = ""
basic.forever(() => {
    code_richtig = 0
    for (let spalte = 0; spalte <= 4; spalte++) {
        loesung_der_spalte = parseInt(loesung.charAt(spalte))
        for (let zeile = 0; zeile <= 4; zeile++) {
            if (led.point(spalte, zeile)) {
                if (zeile == loesung_der_spalte) {
                    code_richtig += 1
                }
            }
        }
    }
    if (code_richtig == 5) {
        basic.setLedColor(Colors.Green)
    } else {
        basic.setLedColor(Colors.Red)
    }
})
input.onButtonPressed(Button.A, () => {
    music.playTone(Note.C, music.beat(BeatFraction.Sixteenth))
    spaltenwert = 0
    bearbeite_spalte += 1
    if (bearbeite_spalte > 4) {
        bearbeite_spalte = 0
    }
    for (let index = 0; index <= 4; index++) {
        led.unplot(bearbeite_spalte, index)
    }
    for (let i = 0; i < 3; i++) {
        led.unplot(bearbeite_spalte, spaltenwert)
        basic.pause(100)
        led.plot(bearbeite_spalte, spaltenwert)
        basic.pause(100)
    }
})
input.onButtonPressed(Button.B, () => {
    music.playTone(Note.C5, music.beat(BeatFraction.Sixteenth))
    led.unplot(bearbeite_spalte, spaltenwert)
    spaltenwert += 1
    if (spaltenwert > 4) {
        spaltenwert = 0
    }
    led.plot(bearbeite_spalte, spaltenwert)
})
loesung = "12043"
led.plot(0, 0)
basic.setLedColor(Colors.Red)
music.setTempo(200)

Credits

Daniel Havlik

Daniel Havlik

5 projects • 5 followers
Hacker, Maker, Tinkerer at Eigenbaukombinat Halle e.V., Software Engineer, Python Developer, Owner at gocept gmbh & co. kg.

Comments