Teil 07: Taster als digitaler Eingang
Lernziel: Eingänge mit internem Pull-up auslesen.
Voraussetzungen: Der Rust-PC-Grundlagenkurs bzw. Grundkenntnisse in Rust; außerdem die vorangegangenen Pico-Lektionen. Zielboard: Pico 2 / Pico 2 W (ARM); Hinweise für RP2040 in der Kursübersicht.
Worum geht es?
Ein Taster zwischen GPIO14 und GND wird mit Pull-up betrieben. Ohne Betätigung ist der Eingang High, gedrückt Low. So sind keine zusätzlichen externen Pull-up-Widerstände erforderlich. Lese einen Tasterzustand in der Hauptschleife ein und steuere damit die LED.
Schritt für Schritt
use embassy_rp::gpio::{Input, Pull, Output, Level};
use embassy_time::{Duration, Timer};
let taste = Input::new(p.PIN_14, Pull::Up);
let mut led = Output::new(p.PIN_15, Level::Low);
loop {
if taste.is_low() { led.set_high(); }
else { led.set_low(); }
Timer::after(Duration::from_millis(10)).await;
}
Einordnung: Zum Polling später Entprellung ergänzen.
Hintergrund und häufige Fehler
- Board prüfen: Pico/Pico W (RP2040) und Pico 2/Pico 2 W (RP2350) brauchen unterschiedliche Compilerziele und Boardkonfigurationen.
- Hardware zuerst: Vor dem Flashen Pinbelegung, gemeinsame Masse und 3,3-V-Pegel prüfen.
- Versionsstand: Übernehme die passenden Embassy-Beispiele und Abhängigkeiten aus demselben Repository-Stand; APIs ändern sich zwischen Releases.
- Schrittweise testen: Erst ein kleines funktionsfähiges Beispiel, danach jeweils genau eine Änderung vornehmen.
Selbst ausprobieren
Baue den Taster ein und erkläre, warum is_low() für „gedrückt“ steht.
Musterlösung anzeigen
Der Pull-up zieht den offenen Eingang auf High; der gedrückte Taster verbindet ihn mit GND (Low).
Dokumentation für deine Versuche
Notiere verwendetes Board, Verdrahtung, Git-Commit oder Bibliotheksversion, Build-Befehl, Ergebnis und aufgetretene Fehlermeldungen. Halte dazu ein Foto oder einen Screenshot fest, der später in den Website-Beitrag übernommen werden kann.
Weiterführende Informationen
- Embassy – offizielles Repository und RP-Beispiele
- Embassy-Dokumentation
- RP-HAL mit RP2040-/RP235x-Hinweisen
