//----- Werte für den Ultraschallsensor ----- #define US_TRIG 12 // Pin an dem der TRIG Pin des Ultraschallsensor angeschlossen ist. 'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. #define US_ECHO 14 // Pin an dem der ECHO Pin des Ultraschallsensor angeschlossen ist. 'GPIO' muss man weglassen -> also z.B. nicht GPIO88 sondern nur 88. long abstand_cm, echo_dauer; void setup() { // Monitor Serial.begin(115200); // Serial Monitor aktivieren. Mit dem Monitor kann man sich Werte und Meldungen anzeigen lassen. // Ultraschallsensor pinMode(US_TRIG, OUTPUT); // Ultraschallsensor: TRIG ist ein Ausgangspin. Es wird ein Signal zum Ultraschallsensor gesendet pinMode(US_ECHO, INPUT); // Ultraschallsensor: ECHO ist ein Eingangspin. Es wird ein Signal vom Ultraschallsensor empfangen } void loop() { AbstandMessen(); } //-------------- Funktionen und Prozeduren ------------------------- long AbstandMessen(void){ long abstand_cm,echo_dauer; // Messung starten - ein kurzer Pulse "HIGH" wird zum TRIG pin des Ultraschallsensors geschickt digitalWrite(US_TRIG,LOW); delayMicroseconds(2); digitalWrite(US_TRIG,HIGH); delayMicroseconds(10); digitalWrite(US_TRIG,LOW); // Messung der Dauer in Mikrosekundenmeasure bis das ECHO Pin vom Ultraschallsensor HIGH wird echo_dauer = pulseIn(US_ECHO,HIGH); // convert into cm ... 344m/sec is the speed of noise - thus 34400cm/sec ... or 34,400cm/milisec ... or 0,0344cm/microsec // the echo has to go the distance twice - forth and back - so the duration has to be the half of the measured one // distance_cm = echo_duration/2 * 0,0344 or distance_cm = echo_duration/2 / 29,1 or distance_cm = echo_duration * 0,0172 // distance_cm = (echo_duration/2) / 29.1; abstand_cm = echo_dauer * 0.0172; //Messwert am Monitor anzeigen Serial.print("ABSTAND_MESSEN. Der Abstand in cm ist:"); Serial.println(abstand_cm); //Kurz warten, bevor evetuell wieder eine Messung startet delay(250); return(abstand_cm); }