Garagenstopp
Neues Auto, alte Garage. Normalerweise kein Problem. Nicht so bei einem Bekannten von mir, der nach Kauf seines neuen Autos feststellen musste, dass seine alte Garage (Altbau aus den 1950er Jahren) keinen Zentimeter zu lang ist. Bei einem Spielraum von wenigen cm muss die vordere Stoßstange fast die Garagenwand berühren, damit das Garagentor zu geht. Und auch der Einparksensor des neuen Auto ist da kein Hilfe, weil er bereits ab einem Abstand von ca. 18-20 cm die drohende Berührung mit einem Dauerton signalisiert. Dieser Umstand hat natürlich bei mir gleich Überlegungen zu einem kleinen Arduino-Projekt hervorgerufen:
- Abstandsmessung mit einem Ultraschallsensor (Auflösung <1 cm) an der Garagenwand
- Visualisierung des Abstands mittels LED-Matrix
- Der Ultraschallsensor soll nur während des Einstellens des PKWs aktiv sein (Aktivierung z.B. mit Licht oder Lichthupe, Deaktivierung z.B. zeitgesteuert)
- Helligkeitssteuerung der LED-Matrix in Abhängigkeit des Umgebungslichtes
Abbildung 1: Oben: Licht oder Lichthupe aktiviert über Lichtsensor 1 den Ultraschallsender; Unten: Matrixanzeige visualisiert dem Fahrer den Abstand bis zur Garagenwand; Lichtsensor 2 steuert die Helligkeit der Matrixanzeige;
Testaufbau:
Der Testaufbau besteht neben dem Arduino, den Stromversorgungs- und Anzeigekomponenten aus 4 Sensoren. Dem Ultraschallsensor HC-SR04 oder HY-SRF05 zur Entfernungsmessung, dem Temperatursensor MCP9808 zur Temperaturkompensation des Ultraschallsensors und zwei LDR-Widerstände (Fotowiderstände) zur Erkennung des Scheinwerferlichtes oder der Lichthupe (Lichtsensor 1) und zur Regulierung der Helligkeit der LED-Matrix (Lichtsensor 2). Bei gedrücktem Taster kann mit dem Trimmpoti die Ansprechschwelle des Lichtsensors 1 zur Aktivierung des Ultraschallsenors eingestellt werden. Der Schaltpunkt wird mittels der LED und mittels Balkenanzeige auf dem Matrixmodul visualisiert.
Verwendete Bauteile und Komponenten:
-
1 Arudino Uno
-
1 Ultraschallsensor HC-SR04 oder HY-SRF05 (Achtung: nicht Pinkompatibel zu HC-SR04)
-
1 I2C-Temperatursensor MCP9808 (auf Breakout-Board mit I2C-Pull-Up-Widerständen)
-
2 LDR
-
2 Widerstände 1 kOhm
-
1 Widerstand 220 Ohm
-
1 Trimmpoti 10 kOhm
-
1 DC-DC Wandler (9 - 12 V auf 5 V zur Versorgung der LED-Matrix-Module)
-
2 LED-Matrix mit MAX7219 LED-Driver
-
1 LED grün
-
1 Taster
-
1 Steckernetzteil 9-12 V DC, >1 A
Abbildung 2: Testaufbau der Schaltung "Garagenstop"
Programm Garagenstopp (Testversion):
Hier findet ihr die Version 1.0 des Programms Garagenstopp.ino als Textfile, welches demnächst erstmals in der Garage scharf getestet wird.
Leider kann ich hier keine "ino"-Files hochladen, daher zum Verwenden des Programms ".txt" aus den beiden Dateinamen entfernen und in einem neuen Verzeichnis mit dem Namen "Garagenstopp_1.0" speichern.
Verwendete Libraries:
Neben der Standard-Library Wire verwende ich noch folgende Libraries:
-
Metro: Mit Metro steuer ich die zyklische Wiederholung von Vorgängen. Einen Link zu Metro findet ihr hier: Fremd-Libraries
Sowie meine eigenen Libraries:
- MyMCP9808: Diese Library verwende ich zur Abfrage des Temperatursensors MCP9808 (siehe Temp.sensor MCP9808)
- MyUltrasoundSensor: Wird zur Steuerung des Ultraschallsensors verwendet (siehe Ultraschallsensor)
- MyLedMatrix: Damit steuere ich die Ausgabe auf der LED-Matrix (siehe LED-Matrix MAX7219)