Ja ich habe einen neuen Sensor bekommen,
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:
Und 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