Rust auf dem Raspberry Pi Pico · Teil 7TutorialFortgeschritten

Rust

Rust Pico 07: Taster als digitaler Eingang

Eingänge mit internem Pull-up auslesen. Embedded Rust verständlich erklärt, mit Praxisaufgabe und Musterlösung.

Kapitel: GPIO

Veröffentlicht am

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


← Teil 06 · Teil 08 →