# benötigte Funktionen und Klassen importieren
#---------------------------------------------------------------------------------------------------
from time import sleep # Zum Anhalten des Programms
from machine import Pin # Zugriff auf die Anschlüsse des Mikrocontrollers
from machine import Timer # Nutzung eines Timers für regelmäßige Ausführung alle 5 Sekunden
from random import randint # Für das Erzeugen von Zufallszahlen
import neopixel # Zur Ansteuerung der NoePixel LED Bausteine
# globale Variablen (Programmkonfiguration)
#---------------------------------------------------------------------------------------------------
PIN = 19 # hier ist die Steuerleitung der NeoPixel am Mikrocontroller angeschlossen
NUM_PIXELS = 8 # wir verwenden hier 8 hintereinandergschaltete NeoPixel LEDs
DELAY_MS = 5000 # 5 Sekunden Verzögerungszeit (für Timer)
# Hilfsvariablen für Farbauswahl
#---------------------------------------------------------------------------------------------------
off = ( 0, 0, 0)
on = (100, 0, 0) # rot
# NeoPixel Objekt zur Ansteuerung der LEDs
#---------------------------------------------------------------------------------------------------
pixel_byte = neopixel.NeoPixel(Pin(PIN), NUM_PIXELS)
#**********************************************************
# Benötigte Funktionen
#**********************************************************
def display_number (num):
global pixel_byte
print(num, "47" ,"{:08b}".format(num))
# --> TODO
# Bits von hinten (2^0) nach vorne (2^7) durchlaufen
for idx in range(NUM_PIXELS) :
# <--
# Zur evtl. Fehlersuche aktivieren (Strg-Shift-a)
print (num)
# --> TODO
# Teilbarkeit durch 2 prüfen und LED entsprechend ein- oder ausschalten
# Tipp: Modulo-Funktion
if num%2 :
pixel_byte[idx] = on
else:
pixel_byte[idx] = off
# <--
# --> TODO
# Zahl durch 2 teilen
# Achtung: ganze Zahlen (Teil vor dem Komma) verwenden ! (-> integer Division mit '//' statt '/')
num=num//2
# <--
pixel_byte.write()
def timer_callback(timer):
rand = randint(0, 255) # neue zufällige Ganzzahl aus [0..255] erzeugen
display_number(rand) # Zahl mit LEDs darstellen
#**********************************************************
# Hauptteil
#**********************************************************
print("Hello, Pi Pico!")
display_number(47)
# create and display new random number in [0..255] every 5 seconds using a timer
#---------------------------------------------------------------------------------------------------
#led_timer = Timer()
#led_timer.init (mode=Timer.PERIODIC, period=DELAY_MS, callback=timer_callback2⁰
2¹
2²
2³
2⁴
2⁵
2⁶
2⁷