Ecrire deux chiffres sur une matrice 8x8

do it yourself - janvier 2021

La carte Microbit a une matrice 5x5. Un peu juste pour y inscrire un nombre à deux chiffres en toute clarté. Dans Makecode, l'extension whaleysansfont le permet avec des chiffres sur une matrice de 2x5, mais le résultat n'est pas très lisible.

On utilise une matrice 8x8 branchée sur les ports 13, 15, 16 et le 3V, et exploitée avec l'extension MAX7219_8x8 et le code suivant :

let liste = ["0", "9"] // défini les chiffres de 0 à 9 sur une matrice 3x5
liste[0] = "B01111111,B01000001,B01111111"
liste[1] = "B00000000,B00000000,B01111111"
liste[2] = "B01111001,B01001001,B01001111"
liste[3] = "B01001001,B01001001,B01111111"
liste[4] = "B00001111,B00001000,B01111111"
liste[5] = "B01001111,B01001001,B01111001"
liste[6] = "B01111111,B01001001,B01111001"
liste[7] = "B00000001,B00000001,B01111111"
liste[8] = "B01111111,B01001001,B01111111"
liste[9] = "B01001111,B01001001,B01111111"
let sc_diz = 0
let sc_unit = 0
let scorematrix = "00" // les données complètes à afficher sur la matrice

max7219_matrix.setup(
    1,
    DigitalPin.P16,
    DigitalPin.P15,
    DigitalPin.P14,
    DigitalPin.P13
)

max7219_matrix.for_4_in_1_modules(
    rotation_direction.none,
    false
)

max7219_matrix.brightnessForOne(2, 0) // pour pas que ça pique les yeux

basic.forever(function () {
    scorematrix = "" + liste[sc_diz] + ",B00000000,B00000000," + liste[sc_unit] // les deux colonnes vides au centre forment l'espace entre les deux chiffres
    max7219_matrix.displayCustomCharacter(
    max7219_matrix.getCustomCharacterArray(
    scorematrix
    ),
    0,
    true
    )
})

// de là, on défini les variables sc_diz et sc_unit pour respectivement la dizaine et l'unité

input.onButtonPressed(Button.A, function () {
    sc_diz = sc_diz + 1
    if (sc_diz >= 10) {
        sc_diz = 0
    }
})

input.onButtonPressed(Button.B, function () {
    sc_unit = sc_unit + 1
    if (sc_unit >= 10) {
        sc_unit = 0
    }
})