Skip to content

Instantly share code, notes, and snippets.

@Mr-Coxall
Created May 3, 2018 19:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Mr-Coxall/8fb48712ca66524e572b21d494dfde16 to your computer and use it in GitHub Desktop.
Save Mr-Coxall/8fb48712ca66524e572b21d494dfde16 to your computer and use it in GitHub Desktop.
# Mr. Coxall
# This Micro:Bit Python code goes through all the combinations of 2 44-bit positive binary numbers
from microbit import *
# variable holding the decimal value of a button
a_input = 0
a_input_as_binary = []
b_input = 0
b_input_as_binary = []
def convert_decimal_to_binary(decimal_number, input_letter):
# this function accepts a decimal number
# and converts it to the binary equivalent
# it returns the binary number in a list
if isinstance(decimal_number, int) and decimal_number <= 15 and decimal_number >= 0 and isinstance(input_letter, str) and (input_letter == "A" or input_letter == "B"):
remainder_stack = []
while decimal_number > 0:
remainder = decimal_number % 2
remainder_stack.append(remainder)
decimal_number = decimal_number // 2
binary_number = []
while not remainder_stack == []:
binary_number.append(remainder_stack.pop())
# if not returning 4 digits, add leading 0s
while not len(binary_number) == 4:
binary_number.insert(0, 0)
return binary_number
else:
return "error"
pin0.write_digital(0)
pin1.write_digital(0)
pin2.write_digital(0)
pin8.write_digital(0)
pin12.write_digital(0)
pin13.write_digital(0)
pin14.write_digital(0)
pin15.write_digital(0)
display.show(Image.YES)
sleep(500)
while True:
display.clear()
for b_input in range(0, 15+1):
for a_input in range(0, 15+1):
# convert decimal to binary
a_input_as_binary = convert_decimal_to_binary(a_input, "A")
b_input_as_binary = convert_decimal_to_binary(b_input, "B")
# turn on the digital pins
pin0.write_digital(int(a_input_as_binary[3]))
pin1.write_digital(int(a_input_as_binary[2]))
pin2.write_digital(int(a_input_as_binary[1]))
pin8.write_digital(int(a_input_as_binary[0]))
pin12.write_digital(int(b_input_as_binary[3]))
pin13.write_digital(int(b_input_as_binary[2]))
pin14.write_digital(int(b_input_as_binary[1]))
pin15.write_digital(int(b_input_as_binary[0]))
display.scroll(str(a_input) + "+" + str(b_input) + "=" + str(a_input+b_input))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment