Irgendwie hat die (?) Calliope zu wenig Ein- und Ausgänge für Ampelprojekte und ähnliches was ich gerne in höheren Klassen machen möchte. Abhilfe schafft hier ein IO-Port Expander. In unserem Fall der MCP23017. Er bietet 2x8 also 16 Ein- und Ausgänge. Dabei ist jeder einzelne Port sowohl als Eingang als auch als Ausgang zu programmieren. Man kann dem MCP23017 bis zu 8 verschiedene Hardwareadressen zuweisen und so dann bis zu 8x16=128 Ports verwenden. Das sollte für alles reichen.
Grundlage für alles waren die Artikel von Robert Fromm:
Arduino und I2C (wo auch der Schaltplan zu finden ist) und Calliope Mini und I2C
Lesen und begeistert sein! Vielen Dank Robert!
Und es gilt wie für viele Calliope-Materialien
Robert Fromm und Michael Klein
Für meine Schüler ist das ganze vielleicht etwas zu blöde wenn man über Javascript programmieren muss.
Desshalb hier die Variante über Custom Blocks:1. Gehe auf https://makecode.calliope.cc
2. Klicke bei der Blockansicht auf Javascript
3. Beim Explorer auf den Pfeil klicken
4. Der Explorer klappt auf und wir klicken auf das +
5. Los gehts !
6. Es erscheint eine neue Datei custom.ts
7. Hier die Beispieldatei löschen und meine Version einfügen. Bei einem Klick auf Blöcke haben wir ein neues Blockmenü Custom mit den gewünschten Funktionen:
Und zack das Beispielprogramm geschrieben:
Wird Taste 1&2 gedrückt (Bitwerte werden addiert) werden LED 1 und 2 angeschaltet. Bei Taste 2 die LED 2 und bei Taste 3 die LED 3.
Wenn die LED nach dem Loslassen der Taste erlöschen soll, sollte in den letzten ansonsten-Zweig ein
Beschreibe an Adresse 0x20 das Register Bitmuster_B mit dem Wert 00000000
eingefügt werden.
Inzwischen habe ich es auch geschafft ein Paket zu erstellen:
https://github.com/MKleinSB/pxt-MCP23017
Und hier das ganze mit einer professionell gefertigten Platine und dem passenden Projekt auf Hackster.
Comments