Skip to content

Instantly share code, notes, and snippets.

@Mr-Coxall
Created May 22, 2018 15:21
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/4a6af4c1f0b0235379697d65a6cbcb01 to your computer and use it in GitHub Desktop.
Save Mr-Coxall/4a6af4c1f0b0235379697d65a6cbcb01 to your computer and use it in GitHub Desktop.
# Mr. Coxall
from microbit import *
def convert_dec_to_bin(int_number, binary_digits):
# convert a decimal number to binary stored in an array
if int_number < 0:
# it is a negative number
positive_equivalent = pow(2, binary_digits)-abs(int_number)-1
answer = bin(~positive_equivalent)
answer_array = list(answer)
answer_array.pop(0)
answer_array.pop(0)
answer_array.pop(0)
else:
answer = bin(int_number)
answer_array = list(answer)
answer_array.pop(0)
answer_array.pop(0)
# now pad the front with 0s
while len(answer_array) < binary_digits:
answer_array.insert(0, 0)
answer_array = list(map(int, answer_array))
return answer_array
# starting values
start_number = -8
end_number = 7
number_of_binary_digits = 4
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)
# variable holding the decimal value of a button
a_input = 0
a_input_as_binary = []
b_input = 0
b_input_as_binary = []
while True:
display.clear()
for b_input in range(start_number, end_number+1):
for a_input in range(start_number, end_number+1):
# convert decimal to binary
a_input_as_binary = convert_dec_to_bin(a_input, number_of_binary_digits)
b_input_as_binary = convert_dec_to_bin(b_input, number_of_binary_digits)
# turn on the digital pins
#display.scroll(str(a_input_as_binary))
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]))
#display.scroll(str(b_input_as_binary))
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))
sleep(500)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment