Files
Binary-Light-Box/main.py

95 lines
2.7 KiB
Python

function updateNumber () {
Denary = 0
for (let item = 0; item <= columns.length - 1; item++) {
if (columns[item]) {
Denary += columnValues[item]
}
}
updateDisplay(Denary)
}
function updateColumn () {
for (let item = 0; item <= columns.length - 1; item++) {
updateFlag(item, sensePins[item])
}
}
function switchSensors () {
if (pins.digitalReadPin(DigitalPin.P1) == 1) {
sensePins[0] = true
} else if (pins.digitalReadPin(DigitalPin.P1) == 0) {
sensePins[0] = false
}
if (pins.digitalReadPin(DigitalPin.P2) == 1) {
sensePins[1] = true
} else if (pins.digitalReadPin(DigitalPin.P2) == 0) {
sensePins[1] = false
}
if (pins.digitalReadPin(DigitalPin.P3) == 1) {
sensePins[2] = true
} else if (pins.digitalReadPin(DigitalPin.P3) == 0) {
sensePins[2] = false
}
if (pins.digitalReadPin(DigitalPin.P4) == 1) {
sensePins[3] = true
} else if (pins.digitalReadPin(DigitalPin.P4) == 0) {
sensePins[3] = false
}
if (pins.digitalReadPin(DigitalPin.P6) == 1) {
sensePins[4] = true
} else if (pins.digitalReadPin(DigitalPin.P6) == 0) {
sensePins[4] = false
}
if (pins.digitalReadPin(DigitalPin.P7) == 1) {
sensePins[5] = true
} else if (pins.digitalReadPin(DigitalPin.P7) == 0) {
sensePins[5] = false
}
if (pins.digitalReadPin(DigitalPin.P8) == 1) {
sensePins[6] = true
} else if (pins.digitalReadPin(DigitalPin.P8) == 0) {
sensePins[6] = false
}
if (pins.digitalReadPin(DigitalPin.P9) == 1) {
sensePins[7] = true
} else if (pins.digitalReadPin(DigitalPin.P9) == 0) {
sensePins[7] = false
}
if (pins.digitalReadPin(DigitalPin.P10) == 1) {
sensePins[8] = true
} else if (pins.digitalReadPin(DigitalPin.P10) == 0) {
sensePins[8] = false
}
}
function updateFlag (column: number, flag: boolean) {
if (flag) {
columns[column] = true
} else if (!(flag)) {
columns[column] = false
}
}
function updateDisplay (number: number) {
serial.writeString("/")
serial.writeNumber(number)
}
let Denary = 0
let columnValues: number[] = []
let columns: boolean[] = []
let sensePins: boolean[] = []
serial.redirect(
SerialPin.P0,
SerialPin.P16,
BaudRate.BaudRate9600
)
sensePins = [false, false, false, false, false, false, false, false, false]
columns = [false, false, false, false, false, false, false, false, false]
columnValues = [1, 2, 4, 8, 16, 32, 64, 128, 256]
Denary = 0
updateDisplay(Denary)
let ready = true
basic.forever(function () {
if (ready) {
switchSensors()
updateColumn()
updateNumber()
}
})