Geschwindigkeitskontrollen haben oft einen schlechten Ruf, aber sie erfüllen einen lebenswichtigen Zweck: Sie schützen uns. Egal ob vor Schulen, in Wohngebieten oder an gefährlichen Kreuzungen, Blitzer sorgen dafür, dass Verkehrsteilnehmer den Fuß vom Gas nehmen. Die Physik dahinter ist unbestechlich. Ein Auto, das mit 50 km/h fährt, hat einen deutlich kürzeren Bremsweg als eines, das mit 70 km/h unterwegs ist. Geschwindigkeitsüberwachungen retten also aktiv Leben, indem sie die Reaktionszeit und die Aufprallenergie drastisch reduzieren. In diesem MINT-Projekt schauen wir uns an, wie genau diese Technik funktioniert.
Echter Blitzer vs. MINT-Modell
Ein echter Blitzer (wie z. B. ein Lasermessgerät oder ein Radar-System) arbeitet hochkomplex. Er nutzt Infrarotstrahlen, den Doppler-Effekt oder Piezosensoren im Asphalt, um Fahrzeuge auf den Millimeter und die Millisekunde genau zu erfassen. Zudem müssen die Kameras bei jedem Wetter scharfe, gerichtsverwertbare Bilder liefern.
Für unser Projekt konzentrieren wir uns auf das Kernprinzip der Geschwindigkeitsmessung, die Weg-Zeit-Berechnung:
- Kurzform: v = s / t
- Ausgeschrieben: Geschwindigkeit = Weg / Zeit
- Mathematische Darstellung (mit Bruchstrich): v = s ∕ t
- Mit Erklärung der Variablen: v (Geschwindigkeit) = s (Wegstrecke) / t (Zeit)
Anstatt Laser oder Radar nutze ich zwei simple Lichtwiderstände (LDRs). Anstatt echte Fotos zu schießen (was am Arduino sehr aufwendig wäre), generiert der Code vorgegebene ASCII-Kunstwerke als "Beweisfotos" und speichert das Ganze als echtes Strafzettel-Protokoll auf einer SD-Karte ab. So lernst du das physikalische Prinzip und die Informatik dahinter, ohne dich mit hunderten Euro teurer Hardware herumschlagen zu müssen.
Die Verdrahtung

- Sensor 1 (Start): Schließe den ersten LDR an den analogen Pin A1 an.
- Sensor 2 (Stopp): Schließe den zweiten LDR an den analogen Pin A0 an.
- Der Blitz: Verbinde die rote LED (mit Vorwiderstand!) an Pin 7.
- SD-Karte: Verbinde dein SD-Modul mit den typischen SPI-Pins. Wenn du das WS5100 Shield nutzt, ist der Pin 4 für die SD-Karte zuständig. Wichtig: Der Pin 10 muss beim WS5100 im Code auf HIGH gesetzt werden, um die Netzwerkfunktion abzuschalten, damit die SD-Karte sauber arbeiten kann.
Wie die Messung genau funktioniert
Die Logik hinter unserem Modell ist reine Schulphysik: Geschwindigkeit ist Strecke geteilt durch Zeit. Wir bauen die beiden LDRs in einem exakt definierten Abstand zueinander auf (z. B. 11 Zentimeter). Im Serial Monitor kannst duz diese Werte genau verfolgen.
- Start: Sobald das Spielzeugauto über den ersten LDR fährt, wirft es einen Schatten. Der Arduino erkennt diesen Helligkeitsabfall und startet eine extrem präzise Stoppuhr (mit der Funktion micros()).
- Stopp: Wenn das Auto den zweiten LDR verdunkelt, stoppt der Arduino die Zeit.
- Die Mathematik: Der Arduino nimmt nun den festen Abstand (11 cm) und teilt ihn durch die gemessene Zeit zwischen den beiden Sensoren. Mit einem kleinen Faktor rechnen wir diesen Wert dann in km/h um. Ist der Wert höher als unser gesetztes Limit, löst der Blitz aus.
Die 3 wichtigsten Stellen im Code
1. Die Präzisions-Zeitmessung
Hier startet und stoppt das System. Wir nutzen micros() anstelle von millis(), da bei kurzen Distanzen (wie 11 cm) jede Mikrosekunde über die Genauigkeit entscheidet.
// Start
if (startZeit == 0 && wertStart < schwelle) {
startZeit = micros();
}
// Stopp
if (wertStopp < schwelle) {
stoppZeit = micros();
}2. Die Berechnung und Skalierung
Dieser Code-Block übersetzt die gemessenen Mikrosekunden in eine verständliche km/h-Anzeige für dein Modellauto.
float dauerSekunden = (stoppZeit - startZeit) / 1000000.0;
// (Strecke in Meter / Zeit in Sekunden) * 3.6 (für km/h) * Skalierungsfaktor 100
float geschwindigkeitSkaliert = ((abstandCm / 100.0) / dauerSekunden) * 3.6 * 100.0;3. Das "Frau I/O" SD-Protokoll
Wenn jemand zu schnell war, schreibt der Arduino eine .txt-Datei auf die SD-Karte. Die Makros __DATE__ und __TIME__ synchronisieren dabei die Zeit deines PCs beim Hochladen mit dem Arduino.
// Auszug aus der Speicher-Funktion
dataFile.println("Beamter: Frau I/O");
dataFile.print("Sie fuhren mit einer Geschwindigkeit von ");
dataFile.print(speed, 0);
dataFile.println(" km/h.");
if (diff >= 30) {
dataFile.println("!!! URTEIL: FUEHRERSCHEIN ENTZOGEN !!!");
}
// Hier wird dann das ASCII-Bild geladen
Wichtiger Hinweis zur Uhrzeit (RTC ohne Batterie)
Da dieses Projekt als reiner Modellaufbau für den Unterricht gedacht ist, haben wir ganz bewusst auf eine zusätzliche Knopfzelle für die interne Echtzeituhr (RTC) verzichtet. Das hält den Aufbau simpel und günstig. Das bedeutet für dich allerdings in der Praxis: Bevor du den Blitzer aufbaust und vorführst, musst du den Code kurz neu auf den Arduino hochladen. Genau in diesem Moment zieht sich der Arduino die aktuelle Uhrzeit von deinem PC. Solange er danach am Strom bleibt, tickt die Uhr exakt weiter und Frau I/O verteilt die Strafzettel mit dem korrekten Zeitstempel!








