ESP32 Tutorial 31/55 - Projekt LED-Streifen mit Hindernisvermeidung | SunFounder's ESP32 IoT Lernkit
In diesem Tutorial werden wir ein Projekt erstellen, das einen ESP32-Mikrocontroller und einen WS2812-LED-Streifen verwendet, der seine Richtung basierend auf der Hinderniserkennung ändern kann. Wenn der LED-Streifen sich vorwärts bewegt, zeigt er zufällige Farben an, und beim Erkennen eines Hindernisses wechselt er zu einer vorbestimmten Farbe und kehrt die Richtung um. Dieses Projekt zeigt die Fähigkeiten des ESP32 in Kombination mit einem Infrarot-Hindernisvermeidungssensor.
In diesem Tutorial werden wir die notwendigen Hardwarekomponenten, die Verkabelungsanleitungen und den Code behandeln, der erforderlich ist, um dieses Projekt zum Leben zu erwecken. Für eine visuellere Erklärung schauen Sie sich das unten verlinkte Video an (im Video bei 00:00).
Hardware erklärt
Dieses Projekt erfordert mehrere Komponenten, darunter den ESP32-Mikrocontroller, einen WS2812-LED-Streifen und einen Infrarot-Hindernisvermeidungssensor. Der ESP32 ist ein leistungsstarker Mikrocontroller, der über integriertes Wi-Fi und Bluetooth verfügt, was ihn perfekt für IoT-Anwendungen macht. Der WS2812-LED-Streifen ist ein programmierbarer RGB-LED-Streifen, der eine individuelle Steuerung jeder LED ermöglicht und es uns erlaubt, dynamische Lichteffekte zu erzeugen.
Der Infrarot-Wegfahrsensor funktioniert, indem er Infrarotlicht aussendet und Reflexionen von nahegelegenen Objekten erkennt. Wenn ein Hindernis erkannt wird, ändert der Sensor seinen Ausgangszustand, wodurch der ESP32 entsprechend reagieren kann, indem er das Verhalten des LED-Streifens verändert.
Datenblattdetails
| Hersteller | WS2812B |
|---|---|
| Teilenummer | WS2812B |
| Logik/IO-Spannung | 3,3 V (typ.) |
| Versorgungsspannung | 5 V (typ.) |
| Ausgangsstrom (pro Kanal) | 20 mA (max) |
| Spitzenstrom (pro Kanal) | 60 mA (max) |
| PWM-Frequenzanleitung | 400 Hz (typ.) |
| Eingangslogikschwellen | 0,3 Vcc (hoch), 0,1 Vcc (niedrig) |
| Spannungsabfall / RDS(on)/ Sättigung | 1,2 V (max) |
| Thermische Grenzen | 85 °C (max) |
| Paket | Oberflächenmontage |
| Hinweise / Varianten | Verfügbar in verschiedenen Längen und Dichten |
- Stellen Sie sicher, dass der LED-Streifen mit 5 V betrieben wird, um optimale Leistung zu erzielen.
- Verwenden Sie einen geeigneten Widerstand für den Datenpin, um Probleme mit der Signalqualität zu vermeiden.
- Seien Sie vorsichtig bei den Begrenzungen des Ausgangsstroms, um Überhitzung zu vermeiden.
- Trennen Sie die Stromversorgung richtig, um Spannungsspitzen zu vermeiden.
- Passen Sie den Infrarotsensor sorgfältig an, um den gewünschten Erkennungsbereich zu erreichen.
Verdrahtungsanweisungen

Um die Komponenten zu verkabeln, beginnen Sie mit dem Infrarot-Hindernisvermeidungssensor. Verbinden Sie den Ausgangspin des Sensors mit dem Pin25am ESP32. Der mittlere Pin sollte mit dem Ground verbunden werden, und der letzte Pin (VCC) sollte mit einer 3,3 V Stromquelle verbunden werden.
Als nächstes schließen Sie für den WS2812 LED-Streifen den Datenpin (normalerweise das gelbe Kabel) an den Pin an.14am ESP32. Der rote Draht sollte an eine 5 V-Stromquelle angeschlossen werden, und der schwarze Draht sollte mit dem Erdungspunkt verbunden werden. Stellen Sie sicher, dass alle Verbindungen ordnungsgemäß gesichert sind, um lose Verkabelungen zu vermeiden.
Codebeispiele und Anleitung
Hier ist eine kurze Übersicht über den Code, der dieses Projekt ausführt. Zuerst definieren wir die Anzahl der Pixel im LED-Streifen und den Datenpin, der für die Kommunikation verwendet wird:
#define NUM_PIXELS 8
#define DATA_PIN 14In dersetup()Funktion, wir initialisieren den LED-Streifen und den Infrarotsensor:
void setup() {
pixels.begin();
pinMode(AVOID_PIN, INPUT_PULLUP);
uint32_t color = pixels.Color(random(256), random(256), random(256));
pixels.fill(color);
pixels.show();
}In derloop()Funktion, wir prüfen, ob ein Hindernis erkannt wird und steuern den LED-Streifen entsprechend:
if (avoid_value) {
for (int i = 0; i < NUM_PIXELS; i++) {
pixels.setPixelColor(i, color);
pixels.show();
pixels.setPixelColor(i, 0);
delay(100);
}
} else {
for (int i = NUM_PIXELS - 1; i >= 0; i--) {
pixels.setPixelColor(i, color);
pixels.show();
pixels.setPixelColor(i, 0);
delay(100);
}
}Dieser Code erlaubt es dem LED-Streifen, zufällige Farben anzuzeigen, wenn er sich vorwärts bewegt, und die Richtung zu ändern, wenn ein Hindernis erkannt wird. Der vollständige Code wird unter dem Artikel geladen, also schauen Sie sich alle Details an.
Demonstration / Was zu erwarten ist
Wenn die Einrichtung abgeschlossen ist und der Code hochgeladen wurde, sollte der LED-Streifen beginnen, zufällige Farben anzuzeigen, während er sich vorwärts bewegt. Wenn ein Hindernis erkannt wird, wechselt der Streifen zu einer vordefinierten Farbe (zum Beispiel grün) und kehrt die Richtung um. Wenn das Hindernis entfernt wird, fährt der Streifen fort, sich mit zufälligen Farben vorwärts zu bewegen. Beachten Sie, dass der Erfassungsbereich des Infrarotsensors je nach verwendeter Stromversorgung variieren kann (im Video um 10:30).
Videostempel
- 00:00 Start
- 2:14 Einführung in das Projekt
- 4:58 Verdrahtung erklärt
- 7:41 Anpassung des Hindernisvermeidungssensors
- 10:03 Arduino-Code erklärt
- 15:40 Auswahl des ESP32-Boards und des COM-Ports in der Arduino IDE
- 17:22 Projekt 1: Demonstration
- 18:17 Channing die zurückkehrende Farbe
Common Course Links
Common Course Files
Ressourcen & Referenzen
-
DokumentationESP32 Tutorial 31/55 - SunFounder-Dokumentation für fließendes Lichtdocs.sunfounder.com
Dateien📁
Keine Dateien verfügbar.