Source code for lessons.lesson_3_and_4.main

"""
# Raspberry Pi Pico W LESSON 3: Understanding and Using Binary Numbers
# https://www.youtube.com/watch?v=C_xiDka0Nm0&list=PLGs0VKk2DiYz8js1SJog21cDhkBqyAhC5&index=3

# Raspberry Pi Pico W LESSON 4: Create a Binary Counter Using the Pico W
# https://www.youtube.com/watch?v=P1dzHNgAtvg&list=PLGs0VKk2DiYz8js1SJog21cDhkBqyAhC5&index=4
"""

import time
from machine import Pin  # pylint: disable=import-error

PIN1 = Pin(13, Pin.OUT)
PIN2 = Pin(12, Pin.OUT)
PIN4 = Pin(11, Pin.OUT)
PIN8 = Pin(10, Pin.OUT)
PINS = [PIN8, PIN4, PIN2, PIN1]

NUMBERS = {
    0: (False, False, False, False),
    1: (False, False, False, True),
    2: (False, False, True, False),
    3: (False, False, True, True),
    4: (False, True, False, False),
    5: (False, True, False, True),
    6: (False, True, True, False),
    7: (False, True, True, True),
    8: (True, False, False, False),
    9: (True, False, False, True),
    10: (True, False, True, False),
    11: (True, False, True, True),
    12: (True, True, False, False),
    13: (True, True, False, True),
    14: (True, True, True, False),
    15: (True, True, True, True),
}


[docs] def get_val(n_val) -> int: """ Convert TRUE to 1 and FALSE to 0 :param n_val: :return: """ return 1 if n_val is True else 0
[docs] def set_pin_val(pin, val) -> None: """ Set Pin value -> ON/OFF :param pin: :param val: :return: """ pin.value(val)
[docs] def set_all_pins(pin_vals: tuple) -> None: """ Set value for all pins :param pin_vals: :return: """ for index, pin_val in enumerate(pin_vals): val = get_val(pin_val) pin = PINS[index] set_pin_val(pin, val)
if __name__ == '__main__': # Main loop while True: for i, vals in NUMBERS.items(): set_all_pins(vals) print(f"number: {i}, pins: {vals}") time.sleep(3)