feat: Add section "Pin Zustände einlesen"

- Add section about reading Pin values
- Add schematic and image to explain pull-up/pull-down resistors
This commit is contained in:
Laborratte5 2024-05-17 12:40:28 +02:00
parent 31715da813
commit 2d449f0b61
Signed by: Laborratte5
GPG key ID: 3A30072E35202C02
3 changed files with 1282 additions and 0 deletions

File diff suppressed because it is too large Load diff

View file

@ -593,6 +593,81 @@
" print(\"x ist größer als 5\")"
]
},
{
"cell_type": "markdown",
"id": "b679354e-d020-4654-894d-38daeaa3a0c4",
"metadata": {
"editable": false,
"slideshow": {
"slide_type": ""
},
"tags": []
},
"source": [
"## Pin Zustände einlesen\n",
"\n",
"Als nächstes wollen wir den Zustand von Pins einlesen und eine entsprechende Meldung ausgeben.\n",
"GPIO 0 ist praktischerweise mit den \"FLASH\" Knopf auf der Platine des Mikrocontrollers verbunden, sodass wir für unseren Test keine extra Schaltung aufbauen müssen.\n",
"Als erstes initialisieren wir den Pin als Input Pin."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "41b849d5-8693-4f31-9496-13a903a3e72c",
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": []
},
"outputs": [],
"source": [
"eingabe_pin = machine.Pin(0, machine.Pin.IN, machine.Pin.PULL_UP)\n",
"eingabe_signal = machine.Signal(eingabe_pin, invert=True)"
]
},
{
"attachments": {},
"cell_type": "markdown",
"id": "245cb3e5-46e4-4fe6-ae54-0df98b41b35f",
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": []
},
"source": [
"Hier übergeben wir noch einen dritten Parameter an die Pin Funktion.\n",
"Dieser dient dazu, die internen Pull-Up Widerstände des Mikrocontrollers für diesen Eingang zu aktivieren.\n",
"Neben `machine.Pin.PULL_UP` gibt es auch noch `machine.Pin.PULL_DOWN`, falls man Pull-Down Widerstände nutzen möchte.\n",
"Pull-Up und Pull-Down Widerstände sind dazu da, bei geöffnetem Schalter ein eindeutiges Signal an den Mikrocontroller so senden. \n",
"![Pull-Down Widerstand Schaltplan](img/pull-down-resistor.png)\n",
"\n",
"Nun können wir mit der `value()` Methode es `eingabe_pin` Objekts den Wert des Pins auslesen bzw. mit der gleichen Methode des `eingabe_signals` den invertierten Eingang.\n",
"Wir invertieren den Pin in diesem Fall, weil der FLASH Knopf den Eingang des Mikrocontrollers mit Ground (dem Minuspol) verbindet, dadurch wird ein Aus-Signal (0) gelesen wenn der Knopf gedrückt ist.\n",
"Genau wie auch bei dem Umkehren der Zustände der LED ist dies auch bei dem einlesen von Pins durch ein `machine.Signal` möglich. \n",
"**Wichtig:** Die nächste Zeile gibt den Zustand des Pins aus zum Zeitpunkt der Ausführung, ihr müsst den Kopf also schon vor der Ausführung drücken, falls ihr den gedrückten Zustand einlesen wollt."
]
},
{
"cell_type": "code",
"execution_count": null,
"id": "bf1cd20a-a878-449b-8692-527da8ec7800",
"metadata": {
"editable": true,
"slideshow": {
"slide_type": ""
},
"tags": []
},
"outputs": [],
"source": [
"print(eingabe_signal.value())"
]
},
{
"cell_type": "markdown",
"id": "f46a9e10-24ff-4d7f-a31b-3a1c5d47df61",

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB