Ja ich habe einen neuen Sensor bekommen,hc-sr04-s__

natürlich wollte ihn gleich mal ausprobieren 😉
So habe ich eine kleine  Einparkhilfe mit
optischer Warnung gebaut ….

So die Teileliste:

In diesem Aufbau habe die LED’s über Minus/ Masse geschaltet,
es bot sich an von der Belegung und hat kein tieferen Sinn.

 

Hier noch einmal der Aufbau:

sonic-parkUnd noch ein kleines Video dazu…

 Hinweis: Für den Code wir die Libary NewPing benötigt! –>Download<–

#include <NewPing.h>
/*****************Config********************/
//Loop Intervall
long interval = 150;

//Ab wieviel cm soll die Farbe leuchten
const int LEDON = 100;
const int GreenRange = 50;
const int YellowRange = 30;
const int RedRange = 1;

//LED Pins der Farben
const int ledPinGreen = 5;
const int ledPinYellow = 4;
const int ledPinRed = 3;

//Ultraschall Sensor Conf
#define TRIGGER_PIN  12
#define ECHO_PIN     11
#define MAX_DISTANCE LEDON // MAX = 500 CM
long previousMillis = 0;
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);

void setup() {
  Serial.begin(115200); // Open serial monitor at 115200 baud to see ping results.
  pinMode(ledPinGreen, OUTPUT);
  pinMode(ledPinYellow, OUTPUT);
  pinMode(ledPinRed, OUTPUT);
}

void loop() {
  unsigned long currentMillis = millis();
  if(currentMillis - previousMillis > interval) {
    previousMillis = currentMillis;

    unsigned int uS = sonar.ping(); // Send ping, get ping time in microseconds (uS).
    Serial.print(F("Ping: "));
    Serial.print(uS / US_ROUNDTRIP_CM); // Convert ping time to distance in cm and print result (0 = outside set distance range)
    Serial.println(F("cm"));

    if(uS / US_ROUNDTRIP_CM >= GreenRange)
    {
      digitalWrite(ledPinGreen, LOW);
      digitalWrite(ledPinYellow, HIGH);
      digitalWrite(ledPinRed, HIGH);
    }
    else if(uS / US_ROUNDTRIP_CM >= YellowRange)
    {
      digitalWrite(ledPinGreen, HIGH);
      digitalWrite(ledPinYellow, LOW);
      digitalWrite(ledPinRed, HIGH);
    }
    else if(uS / US_ROUNDTRIP_CM >= RedRange)
    {
      digitalWrite(ledPinGreen, HIGH);
      digitalWrite(ledPinYellow, HIGH);
      digitalWrite(ledPinRed, LOW);
    }
    else if(uS / US_ROUNDTRIP_CM == 0)
    {
      digitalWrite(ledPinGreen, HIGH);
      digitalWrite(ledPinYellow, HIGH);
      digitalWrite(ledPinRed, HIGH);
    }    
  }
}

 

Gruß Shojo

Kategorien: Atmel / Arduino

27 Kommentare

dw · 20. Mai 2019 um 14:14

Hallo!
Bei uns gibt es die Fehlermeldung, dass wir nach void loop und void setup keine Klammer auf schreiben müssen ( function-definition is not allowed here before “{” token ).
Wenn wir die Klammer weglassen steht expected initializer before “Serial”.
Können sie uns bitte weiterhelfen und sagen, woran es liegen könnte ?

Said · 16. Mai 2019 um 09:43

muss es das gleiche steckbrett sein wie in diesem Bild ?

Said · 15. Mai 2019 um 22:26

Welcher Code , ich habe dieses Programm heruntergeladen und wollte fragen wie ich den Code kriege ?

digitalewelt · 2. Mai 2019 um 13:16

Hallo,
Wir haben Ihre Einparkhilfe im Rahmen eines Projektes in der Schule nachgebaut. Jedoch funktioniert der Code bei uns nicht, da steht “Fehler beim Kompilieren”. Könnten Sie uns erklären woran es liegt und wie wir unser Problem lösen können.

Renni · 25. April 2019 um 13:56

Hallo, erstmal cooles Projekt 😉 Wäre es möglich, das Projekt auf einen Arduino Pro Mini 3.3v zu betreiben? Wenn was müsste ich am Code umschreiben?

    Shojo

    Shojo · 25. April 2019 um 14:17

    Nein der Code kann so beibehalten werden, allerdings ist meines Wissens der HC-SR04 auf 5V Versorgungsspannung angewiesen.

      Renni · 25. April 2019 um 14:24

      Könnte ich nicht auch den US-100 nutzen ohne was am Code zu ändern?

        Shojo

        Shojo · 25. April 2019 um 14:27

        Wie es aussieht leider nein, https://bitbucket.org/teckel12/arduino-new-ping/wiki/Home#!ultrasonic-sensors

          Mavo · 26. April 2019 um 23:46

          Hab es mit einer Variablen gelöst, die jeden Zyklus um 1 erhöht wird.
          Bei z.B. 50 Zyklen, werden dann alle LED ausgeschalten.
          Das Fahrzeug parkt also, und nach ca 1min gehen alle Lichter aus.

          So leuchten die LED’s nicht unnötig dauerhaft wenn das KFZ geparkt ist.

          Beim nächsten ausparken wird der Wert der Variable auf 0 gesetzt, um beim nächsten einparken erneut zählen zu können.
          Funktioniert klasse!

Marv · 23. April 2019 um 06:37

Hallo,
Erstmal vielen Dank für deine Mühe!
Ich werde das ganze mit einem Nano umsetzen.

Hat mal jemand versucht alle LED’s auszuschalten sobald das Fahrzeug länger als 3min steht? Um Strom zu sparen wenn das Teil an einer Blockbatterie hängt..

Hat da jemand einen Tip das umzusetzen? Eine UND Verknüpfung der Abstands-Erkennung und einer Zeitverzögerung?

    Shojo

    Shojo · 25. April 2019 um 14:20

    Ja das ist möglich wenn Du dir die millis merkst wenn er auf Grün gesprungen ist.
    Und dann prüfst wenn 3000 ms vergangen sind.

Tobias · 16. März 2019 um 10:01

Was soll ich tun wenn nur die grüne Lampe brennt?

    WienerWorscht123 · 20. März 2019 um 12:54

    JA bei uns ist dieses Problem genauso vertreten?
    Was könnte man da tun? Hat jemand ideen?
    Danke im Voraus LG TIM

    Shojo

    Shojo · 25. April 2019 um 14:22

    Muss ein Verkabelungsfehler sein, aber welcher kann ich natürlich so nicht sagen.

DancingJax · 10. Januar 2018 um 10:31

Ich habe alles aufgebaut und geschrieben, wie Sie es dargestellt haben. Trotzdem leuchten meine Lampen nur kurz auf und danach nur, wenn ich sie nochmal anschließe oder den Code erneut hochlade.

    DancingJax · 10. Januar 2018 um 11:01

    Ich habe das Problem gelöst. Ich habe trotz mehrfacher Kontrolle ein Kabel falsch gesteckt. Vielleicht sollte ich das nächste Mal aufmerksamer sein :D.
    Ich danke für die detaillierte Beschreibung auf Ihrer Seite Shojo und hoffe, dass das nicht Ihr letztes Projekt war.

Cello · 16. November 2017 um 10:54

kann man dort auch ein einen lautsprecher mit einbauen, der je nach lage schneller oder langsamer piept?

Patrick · 30. September 2017 um 20:07

Danke hat supper geklapt! Jetzt wird meine Frau nicht mehr ins Regal fahren!!!

    Shojo

    Shojo · 1. Oktober 2017 um 09:44

    Sehr schön 😀

    Shojo

    Shojo · 1. Oktober 2017 um 10:31

    Wenn Du Bild oder Video Material von deiner Umsetzung hast immer her damit.
    Würde das dann im Blogbeitrag mit aufnehmen.

Berni · 16. Februar 2014 um 16:53

Hier die Libary NewPing:
https://arduino-new-ping.googlecode.com/files/NewPing_v1.5.zip

    Shojo

    Shojo · 16. Februar 2014 um 18:06

    Habe ich jetzt mal im Post mit untergebracht.

    Gruß
    Shojo

vondasein · 16. Juni 2013 um 13:57

Hi,
danke für deine ausführliche Beschreibung. Nach dem Projekt habe ich lange gesucht!!

@ D.: Sicherlich kommt mein Tipp etwas spät. Hast du die NewPing.h libary hinzugefügt. Das musst du vorher tun, sonst erkennt die Arduino IDE den sketch nicht.

gruß

Shojo

Shojo · 2. März 2013 um 22:27

Das ist mit den Infos schwer zu sagen…

Wenn Du es genau so nachgebaut hast, müsste es eigentlich laufen.

D. · 2. März 2013 um 20:06

Hallo,

ich habe Ihre Einparkhilfe nachgebaut und den Code so übernommen leider funktioniert dieser bei mir nicht. Woran kann das liegen?

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.