Einleitung
Willkommen zu deinem ersten seriell gesteuerten Projekt auf dem Raspberry Pi Pico! In diesem Tutorial bauen wir eine einfache Schaltung, mit der du eine LED ein- und ausschalten kannst, indem du Befehle in den seriellen Monitor eingibst. Du lernst die Grundlagen der seriellen Kommunikation, digitale Ausgänge und wie du den Velxio Simulator nutzt, um deinen Code ohne Hardware zu testen.
Dieses Projekt ist perfekt für Anfänger, die verstehen möchten, wie Mikrocontroller mit einem Computer kommunizieren. Am Ende wirst du in der Lage sein, das Konzept zu erweitern, um mehrere LEDs zu steuern, Sensoren auszulesen oder sogar ein einfaches Menüsystem zu erstellen.
Schaltungsdurchlauf
Schauen wir uns die Schaltung an, die wir bauen werden. Öffne das Beispiel in Velxio und du wirst die folgenden Komponenten sehen:

- Raspberry Pi Pico (nano-rp2040): Das Gehirn der Operation. Wir verwenden Pin D2 als unseren Steuerpin.
- LED (led-status): Eine grüne LED, die wir ein- und ausschalten. Die Anode (A) verbindet sich mit dem Pico, und die Kathode (C) verbindet sich mit einem Strombegrenzungswiderstand.
- Widerstand (r1): Ein 220Ω Widerstand, um den Strom durch die LED zu begrenzen und Schäden zu vermeiden.
Verdrahtungsdetails
- Von Pico D2 zur LED-Anode: Ein grünes Kabel verbindet Pin D2 des Pico mit der Anode (A) der LED. Dies ist das Steuersignal.
- Von LED-Kathode zum Widerstand: Ein graues Kabel verbindet die Kathode (C) der LED mit einem Ende des Widerstands (Pin 1).
- Vom Widerstand zur Pico GND: Ein schwarzes Kabel verbindet das andere Ende des Widerstands (Pin 2) mit der Masse des Pico (GND.1).
Das war’s! Die Schaltung ist einfach, aber effektiv. Der Widerstand ist unerlässlich, um ein Durchbrennen der LED zu vermeiden. Mit einem 220Ω Widerstand und einer typischen LED-Durchlassspannung von etwa 2V beträgt der Strom etwa (3,3V - 2V) / 220Ω ≈ 6mA, was sicher ist.
Code-Durchlauf
Tauchen wir nun in den Code ein. Öffne den Editor in Velxio und du wirst den folgenden Arduino-Sketch sehen:
// Raspberry Pi Pico — Serial LED Control
// Send '1' to turn LED ON, '0' to turn OFF, '?' for status
void setup() {
pinMode(LED_BUILTIN, OUTPUT);
Serial.begin(115200);
delay(500);
Serial.println("=== Pico LED Control ===");
Serial.println("Commands: 1=ON 0=OFF ?=status");
}
void loop() {
if (Serial.available()) {
char cmd = Serial.read();
switch (cmd) {
case '1':
digitalWrite(LED_BUILTIN, HIGH);
Serial.println("LED: ON");
break;
case '0':
digitalWrite(LED_BUILTIN, LOW);
Serial.println("LED: OFF");
break;
case '?':
Serial.print("LED: ");
Serial.println(digitalRead(LED_BUILTIN) ? "ON" : "OFF");
break;
default:
if (cmd >= ' ') {
Serial.print("Unknown command: ");
Serial.println(cmd);
}
break;
}
}
}
Wie es funktioniert
setup(): Wir setzen den eingebauten LED-Pin als Ausgang, starten die serielle Kommunikation mit 115200 Baud, warten 500ms, damit sich die serielle Verbindung stabilisiert, und geben dann eine Begrüßungsnachricht und Anweisungen aus.loop(): Wir prüfen, ob ein Zeichen im seriellen Puffer verfügbar ist. Wenn ja, lesen wir es und verwenden eineswitch-Anweisung, um drei Befehle zu verarbeiten:'1': Schalte die LED ein (HIGH) und gib eine Bestätigung aus.'0': Schalte die LED aus (LOW) und gib eine Bestätigung aus.'?': Lese den aktuellen Zustand des LED-Pins und gib “ON” oder “OFF” aus.- Jedes andere druckbare Zeichen (ASCII >= 32) gibt eine “Unbekannter Befehl”-Nachricht aus. Nicht druckbare Zeichen werden ignoriert.
Beachte, dass wir LED_BUILTIN verwenden, eine vordefinierte Konstante für die eingebaute LED des Pico (normalerweise auf Pin 25). In unserer Schaltung haben wir eine externe LED an Pin D2 angeschlossen, aber der Code verwendet immer noch die eingebaute LED. Wenn du die externe LED steuern möchtest, ändere LED_BUILTIN in 2 (oder definiere eine Konstante). Für dieses Beispiel funktioniert die eingebaute LED einwandfrei.
Schlüsselkonzepte
- Serielle Kommunikation: Der Pico kommuniziert über USB-Seriell mit deinem Computer.
Serial.begin(115200)setzt die Baudrate – stelle sicher, dass dein serieller Monitor diese Geschwindigkeit verwendet. - Digitaler Ausgang:
pinMode(pin, OUTPUT)unddigitalWrite(pin, HIGH/LOW)sind die Grundlagen der Pin-Steuerung. - Switch-Anweisung: Eine saubere Methode, um mehrere Befehle zu verarbeiten. Sie ist effizienter als eine Kette von
if-else-Anweisungen. - Eingabevalidierung: Der Code ignoriert nicht druckbare Zeichen und warnt vor unbekannten Befehlen. Dies ist eine gute Praxis für robuste Programme.
Häufige Fallstricke & Tipps zur Fehlersuche
- Baudrate des seriellen Monitors: Wenn du Müllzeichen siehst, stimmt die Baudrate deines seriellen Monitors nicht mit 115200 überein. In Velxio ist der serielle Monitor integriert und verwendet automatisch die richtige Rate.
- LED leuchtet nicht: Überprüfe, ob die LED richtig herum ausgerichtet ist (Anode an D2, Kathode an Widerstand). Überprüfe auch den Widerstandswert – zu hoch und die LED wird schwach leuchten; zu niedrig und sie könnte durchbrennen.
- Befehle funktionieren nicht: Stelle sicher, dass du genau ‘1’, ‘0’ oder ’?’ sendest (ohne Anführungszeichen). Der Code liest ein einzelnes Zeichen, daher funktioniert das Senden von “1\n”, weil die ‘1’ zuerst gelesen wird und der Zeilenumbruch ignoriert wird (da er nicht druckbar ist).
- Den Simulator verwenden: Velxios Symbolleiste ermöglicht es dir, deinen Code zu kompilieren und auszuführen.
Klicke auf die Schaltfläche “Run”, um die Simulation zu starten. Die Leinwand-Symbolleiste
bietet dir Steuerelemente wie Pause und Reset. Wenn du Komponenten hinzufügen musst, verwende die Komponentenauswahl
.
Vorgeschlagene Erweiterungen
Sobald das grundlegende Projekt funktioniert, probiere diese Verbesserungen aus:
- Eine externe LED steuern: Ändere
LED_BUILTINin2und schließe eine externe LED an Pin D2 an, wie im Schaltplan gezeigt. - Weitere LEDs hinzufügen: Verwende mehrere Pins und Befehle wie ‘r’ für rot, ‘g’ für grün, ‘b’ für blau.
- PWM-Dimmung: Verwende
analogWrite(), um Helligkeitsstufen einzustellen. Sende Werte wie ‘0’ bis ‘9’ für 0% bis 100% Helligkeit. - Zwei-Wege-Kommunikation: Lasse den Pico Sensordaten (z.B. Temperatur) senden, wenn du einen Befehl wie ‘t’ sendest.
- Menüsystem: Gib ein Menü mit Optionen aus und verwende eine Schleife, um auf gültige Eingaben zu warten.
Aufruf zum Handeln
Bereit, es selbst auszuprobieren? Öffne das Live-Beispiel in Velxio und beginne zu experimentieren: Pico Serial LED Control auf Velxio. Keine Downloads, keine Einrichtung – nur dein Browser und deine Neugier. Viel Spaß beim Hacken!