Bei der digitalen Ausgabe wird ein binärer Wert in eine entsprechende Spannung an einem Anschluss umgesetzt. Der Wert 0 entspricht einer Spannung von 0 Volt, der Wert 1 einer Spannung von 3.3 Volt.
Positive Logik (active high)
Bei diesem Ansatz übernimmt der programmierbare Anschluss die Rolle des positiven Pols. Das bedeutet, dass die gesteuerte Leuchtdiode leuchtet, wenn am Anschluss der binäre Wert 1 ausgegeben wird.
| binärer Wert | Spannung an Anschluss | Leuchtdiode |
|---|---|---|
| 0 | 0 Volt | aus |
| 1 | 3.3 Volt | ein |
Anschluss mit micro:bit steuern
Um microbit-Befehle zu verwenden, muss zuerst immer die microbit-Bibliothek importiert werden:
from microbit import *pin.write_digital(value) schaltet den Pin ein oder aus. Der Pin wird eingeschaltet, wenn value den Wert 1 hat und ausgeschaltet, wenn value den Wert 0 hat.
Um auf den Anschluss 1 des micro:bit zuzugreifen, verwendet man die Variable pin1. Das gilt analog für alle anderen Anschlüsse. Mit
pin1.write_digital(True)wird die Spannung am Anschluss 1 auf 3.3 Volt gesetzt, mit
pin1.write_digital(False)wird die Spannung auf 0 Volt gesetzt.
Verfügbare Anschlüsse
Auf dem micro:bit sind die folgenden Anschlüsse verfügbar.
| Variable | zusätzliche Funktion |
|---|---|
pin0 | |
pin1 | |
pin2 | |
pin3 | Display |
pin4 | Display |
pin6 | Display |
pin7 | Display |
pin8 | |
pin9 | Display |
pin10 | Display |
pin12 | |
pin13 | |
pin14 | |
pin15 | |
pin16 | |
pin19 | |
pin20 |
Warnung: Achtung
Die Anschlüsse 5 und 11 sind fix mit den Tasten A und B verbunden. Sie dürfen nur verwendet werden, um eine externe Taste anzuschliessen.
Die Anschlüsse 3, 4, 6, 7, 9 und 10 werden für das Display verwendet. Damit sie «normal» verwendet werden können, muss erst das Display ausgeschaltet werden:
display.off()Endlose Wiederholung
Um wiederholende Befehle auf dem micro:bit auszuführen, definieren wir ein Unterprogramm update(). Im Gegensatz zu Pygame Zero müssen wir aber das Unterprogramm selbst immer wieder aufrufen. Dazu definieren wir mit while eine endlose Schleife:
def update():
...
while True:
update()Aufgabe: Blinkende Leuchtdiode
- Erstelle die oben stehende Schaltung auf der Steckplatine, indem du die Anode der Leuchtdiode via Widerstand mit dem Pin 1 des Micobits verbindest
- Schreibe ein Programm, welches die Leuchtdiode im Sekundentakt blinken lässt. Die Leuchtdiode soll also jeweils eine halbe Sekunde leuchten, dann eine halbe Sekunde nicht leuchten.
Zustatzaufgabe: Erweitere die Schaltung um eine zweite Leuchtdiode. Erweitere das Programm, sodass die beiden Leuchtdioden abwechslungsweise blinken.
Segmentanzeige
Um eine Ziffer darzustellen werden mehrere Leuchtdioden zu einer Segmentanzeige zusammengefasst:
Die runde Leuchtdiode in der Ecke unten rechts (p) kann verwendet werden, um einen Dezimalpunkt darzustellen. Wir verwenden sie nicht.
Verbindung Segmentanzeige – micro:bit
Am besten werden die Anschlüsse der Segmentanzeige wie folgt mit dem micro:bit verbunden:
| Anschluss Segmentanzeige | Anschluss micro:bit |
|---|---|
| GND (mit Widerstand > 80 Ohm) | GND |
| a | 0 |
| b | 1 |
| c | 2 |
| d | 8 |
| e | 12 |
| f | 13 |
| g | 14 |
Es können auch andere Anschlüsse verwendet werden. Dabei muss beachtet werden, dass die Anschlüsse der micro:bit nicht anderweitig belegt sind.
Aufgabe: Segmentanzeige
- Realisiere die oben abgebildtete Schaltung.
- Schreibe ein Programm für den micro:bit, welches die Ziffern 0 bis 9 nacheinander auf der Siebensegmentanzeige anzeigt.
Aufgabe: Würfel
Ändere das Programm, sodass eine zufällige Zahl zwischen 1 und 6 angezeigt wird.
Beim Drücken der Taste A soll folgendes geschehen:
- Anzeige kurz ganz ausschalten.
- Eine neue zufällige Zahl anzeigen.
Mit button_a.was_pressed() wird überprüft, ob die Taste A seit dem letzten Aufruf gedrückt wurde:
if button_a.was_pressed():
# do something