Rückfahrampel

Ihr wollt nicht mehr rückwärts gegen eure Haus- oder Garagenwand fahren? Dann bietet euch dieser Artikel die Lösung!

Hierfür werden folgende Materialien benötigt:

·        1x Großes Kunststoffgehäuse für Ampel und Steuerplatine

·        1x Kleines Kunststoffgehäuse für Ultraschallsensor

·        1x Arduino Nano

·        2x Buchsenleisten

·        1x Ultraschallsensor

·        1x Lochrasterplatine

·        3x 20mm LED (rotgelbgrün)

·        1x LED rot als Status-LED

·        4x 1kOhm Widerstand

·        3x Transistor 547B

·        1x Spannungswandler 5V (LM7805)

·        1x Kippschalter

·        1x 4-Ardiges Kabel

·        1x RJ11 Stecker

·        1x RJ11 Buchse

·        Schaltlitze

·        1x 12V DV-Steckernetzteil als Stromquelle

·        1x Buchse für Netzteil

zum Bau

Zunächst  werden für die LEDs die Löcher mit einem Forstnerbohrer in das große Gehäuse gebohrt. Das große Gehäuse wird außerdem mit Löchern für den Schalter, die Status-LED, die RJ-11 Buchse und die Buchse für das Netzteil versehen. Im kleinen Gehäuse werden 2 Löcher für den Ultraschallsensor und ein Loch für das Kabel gebohrt.
Im ersten Schritt werden die LEDs mit Sekundenkleber in das große Gehäuse geklebt und nach dem Schaltplan verkabelt.      

Danach wird der Ultraschallsensor in das kleine Gehäuse eingesetzt und das Kabel an ihn angelötet.

Um nun die Steuerung der Ampel zu realisieren werden 2 Reihen an Stiftleisten auf die Lochrasterplatine gelötet um den Arduino Nano zu halten. Da der Arduino mit 5V versorgt werden muss,  wird der Spannungswandler wie im Schaltplan gezeigt mit dem Arduino verbunden und 2 kleine Kondensatoren eingebaut, um die Spannung zu glätten.

Um nun die 20mm LEDs anzusteuern werden Transistoren benötigt, da diese 12V benötigen und nicht mit den vom Arduino bereitgestellten 5V funktionieren. Hierfür werden Transistoren des Typs BC547B benutzt. Diese werden auch wie im Schaltplan mit den entsprechenden Basisvorwiderständen verlötet.

Da der Ultraschallsensor mit dem Arduino verbunden werden muss wird hierfür ein 4 adriges Kabel benötigt. Um jedoch den Sensor von der Ampel zum Transport trennen zu können, wird in der Ampel eine RJ-11 Buchse eingelötet. Und an das Kabel wird der entsprechende Stecker befestigt.

Nun werden noch die LEDs mit der Steuerplatine verbunden, dies geschieht mit der Schaltlitze.

Das einzige was nun noch fehlt ist der Code für den Arduino, diesen findet ihr direkt hier unter diesem Eintrag. Nach der Übertragung des Codes empfiehlt es sich die Ampel zunächst im Haus zu testen, indem man den Sensor langsam an die Wand heran führt und prüft ob die Ampel bei den entsprechenden Abständen die Farben anzeigt.

Das einzige was nun noch fehlt ist der Code für den Arduino, diesen findet ihr direkt hier unter diesem Eintrag. Nach der Übertragung des Codes empfiehlt es sich die Ampel zunächst im Haus zu testen, indem man den Sensor langsam an die Wand heran führt und prüft ob die Ampel bei den entsprechenden Abständen die Farben anzeigt.

  1. int trigger=6; //Trigger-Pin des Ultraschallsensors
  2. int echo=5; // Echo-Pin des Ultraschallsensors
  3. long dauer=0; // Variable, unter der die Zeit gespeichert wird, die eine Schallwelle bis zur Reflektion und zurück benötigt.
  4. long entfernung=0; // Variable, unter der die berechnete Entfernung gespeichert wird.
  5.  
  6. int led_rot = 4; //Pin an dem die Rote LED angeschlossen ist
  7. int led_gelb = 3; //Pin an dem die gelbe LED angeschlossen ist
  8. int led_gruen = 2; //Pin an dem die grüne LED angeschlossen ist
  9. int abstand_rot =25; // Abstand in cm bei dem die Rote LED angehen soll.
  10. int abstand_gelb =50; // Abstand in cm bei dem die Gelbe LED angehen soll.
  11. int abstand_gruen =100; // Abstand in cm bei dem die grüne LED angehen soll.
  12.  
  13. void setup(){
  14.   pinMode(trigger, OUTPUT); // Trigger-Pin ist ein Ausgang
  15.   pinMode(echo, INPUT); // Echo-Pin ist ein Eingang
  16.  
  17.   pinMode(led_rot, OUTPUT); //Alle LED Pins sind Ausgänge
  18.   pinMode(led_gelb, OUTPUT);
  19.   pinMode(led_gruen, OUTPUT);
  20. }
  21.  
  22. void loop() {
  23.   digitalWrite(trigger, LOW); //Hier nimmt man die Spannung für kurze Zeit vom Trigger-Pin, damit man später beim senden des Trigger-Signals ein rauschfreies Signal hat.
  24.   delay(5); //Dauer: 5 Millisekunden
  25.   digitalWrite(trigger, HIGH); //Jetzt sendet man eine Ultraschallwelle los.
  26.   delay(10); //Dieser „Ton“ erklingt für 10 Millisekunden.
  27.   digitalWrite(trigger, LOW);//Dann wird der „Ton“ abgeschaltet.
  28.   dauer = pulseIn(echo, HIGH); //Mit dem Befehl „pulseIn“ zählt der Mikrokontroller die Zeit in Mikrosekunden, bis der Schall zum Ultraschallsensor zurückkehrt.
  29.   entfernung = (dauer/2) * 0.03432; //Nun berechnet man die Entfernung in Zentimetern.
  30.   if (entfernung<=abstand_rot){     //Die rote LED wird angeschaltet, wenn der Abstand kleiner dem definierten Wert ist
  31.     digitalWrite(led_gruen, LOW);
  32.     digitalWrite(led_gelb, LOW);
  33.     digitalWrite(led_rot, HIGH);
  34.   }
  35.   else if (entfernung<=abstand_gelb){ //Die gelbe LED wird angeschaltet, wenn der Abstand kleiner dem definierten Wert ist
  36.     digitalWrite(led_gruen, LOW);
  37.     digitalWrite(led_gelb, HIGH);
  38.     digitalWrite(led_rot, LOW);
  39.     }
  40.   else if (entfernung<=abstand_gruen){ //Die grüne LED wird angeschaltet, wenn der Abstand kleiner dem definierten Wert ist
  41.     digitalWrite(led_gruen, HIGH);
  42.     digitalWrite(led_gelb, LOW);
  43.     digitalWrite(led_rot, LOW);
  44.     }
  45.   else{
  46.     digitalWrite(led_gruen, LOW); //ist keiner der Abstände erreicht, sind alle LEDs aus
  47.     digitalWrite(led_gelb, LOW);
  48.     digitalWrite(led_rot, LOW);
  49.     }
  50. }

Hier geht's zum entsprechenden Video