Hast du dich jemals gefragt, wie Schiffe im Nebel navigieren oder wie Flughäfen den Luftraum überwachen? Das Prinzip dahinter ist faszinierend einfach und lässt sich mit einem Arduino, einem Ultraschallsensor und einem Display wunderbar nachbauen. In diesem Projekt zeige ich dir, wie du dein eigenes Desktop-Radar baust – inklusive grafischer Oberfläche und Einstellungsmenü.
Wie funktioniert ein Radar im Original?
Das Wort RADAR steht für Radio Detection and Ranging. Ein echtes Radar sendet elektromagnetische Wellen (Radiowellen) aus. Diese breiten sich mit Lichtgeschwindigkeit aus. Trifft eine Welle auf ein Hindernis (z. B. ein Flugzeug), wird sie reflektiert und zum Empfänger zurückgeschickt. Da wir die Lichtgeschwindigkeit kennen, müssen wir nur die Zeit messen, bis das Signal wieder bei uns eintrifft, um die Entfernung zu berechnen.
Das Arduino-Radar: Schall statt Funk
Bei unserem Projekt nutzen wir statt Radiowellen Ultraschall. Das Prinzip bleibt das gleiche, aber wir arbeiten mit der Schallgeschwindigkeit (ca. $343 m/s$).
- Der Sensor: Der HC-SR04 Ultraschallsensor sendet einen kurzen Ton aus, den wir nicht hören können.
- Der Servo: Damit wir nicht nur in eine Richtung messen, montieren wir den Sensor auf einen Servo-Motor. Dieser dreht den Sensor Stück für Stück von $0^\circ$ bis $180^\circ$.
- Die Berechnung: Der Arduino misst die Zeit in Mikrosekunden, die der Schall für den Hin- und Rückweg braucht. Mit der Formelerrechnet er die Entfernung in Zentimetern.
- $$Distanz = \frac{Zeit \times 0,034}{2}$$
- Das Display: Die Daten werden in Echtzeit auf ein ILI9486 TFT-Display gezeichnet, sodass eine klassische Radar-Anzeige entsteht.
Hardware und PIN-Definition
Für dieses Projekt habe ich einen Arduino R4 Minima verwendet, da dieser genug Power für die Grafikberechnung hat. Die Steuerung erfolgt über einen Drehencoder mit Tastfunktion.
| Komponente | Pin am Arduino | Beschreibung |
| Ultraschall TRIG | 7 | Auslöser für den Messimpuls |
| Ultraschall ECHO | 6 | Empfänger des Echos |
| Servo PWM | 5 | Steuerung der Drehbewegung |
| Encoder Button | 4 | Menü aufrufen / Bestätigen |
| Encoder A | 2 | Drehrichtung (Interrupt Pin) |
| Encoder B | 3 | Drehrichtung |
| TFT Display | SPI Pins | Grafik-Ausgabe (ILI9486) |
Ein Blick in den Code: So wird es schlau
Der Code ist in drei große Bereiche unterteilt, die dafür sorgen, dass das Radar flüssig läuft und du es einfach bedienen kannst.
1. Die Filter-Logik (Anti-Flacker-System)
Ultraschallsensoren können manchmal "lügen", wenn Schallwellen ungünstig reflektiert werden. Deshalb nutzt der Code die Funktion getCleanDistance(). Hier wird nicht nur einmal gemessen, sondern der Arduino vergleicht zwei Messungen kurz hintereinander. Weichen diese zu stark voneinander ab, wird eine dritte Kontrollmessung gemacht. Das sorgt für ein extrem ruhiges Bild auf dem Display ohne "Geister-Objekte".
2. Die Radar-Grafik
Um die Punkte auf dem runden Radar-Grid zu zeichnen, nutzt der Arduino Trigonometrie. Da das Display X und Y Koordinaten "denkt", wir aber Winkel und Distanz haben, rechnen wir das intern um:

Ein alter Punkt wird immer gelöscht, bevor ein neuer gezeichnet wird, damit das Display nicht "zumüllt".
3. Das Menü-System
Das Highlight ist das integrierte Menü. Du kannst während des Betriebs den Encoder-Taster drücken, um in den Einstellungsmodus zu wechseln.
- Betrieb: Schaltet den Scan ein oder aus.
- Max/Min Dist: Hier legst du fest, in welchem Bereich das Radar Objekte suchen soll (bis zu $300 cm$).
- Speed: Hier kannst du die Geschwindigkeit des Servos in vier Stufen anpassen.
Damit der Encoder auch bei schnellen Drehungen keine Schritte verpasst, wird Pin 2 über einen Interrupt abgefragt. Das bedeutet, egal was der Arduino gerade tut, er pausiert kurz sein Hauptprogramm, zählt den Encoder-Schritt und macht sofort weiter.
Tipp: Wenn du merkst, dass dein Servo beim Anlaufen das Display kurz flackern lässt, baue einen großen Elko (z. B. $1000 \mu F$) in die Stromversorgung ein. Das fängt die Stromspitzen ab und hält dein System stabil!
Viel Spaß beim Nachbauen und Experimentieren mit deinem eigenen Arduino-Radar!
Der obere Servo wird nicht benötigt. Das Gestell gehört zu einem Sonnenverfolger, deshalb sind es zwei Servors.
Der Arduino Code für das Radar







