2018-07-10 15:50:17 +02:00
//----- 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.
2018-07-09 11:18:52 +02:00
2018-07-10 15:50:17 +02:00
long abstand_cm , echo_dauer ;
2018-07-09 11:18:52 +02:00
void setup ( ) {
2018-07-10 15:50:17 +02:00
// Monitor
Serial . begin ( 115200 ) ; // Serial Monitor aktivieren. Mit dem Monitor kann man sich Werte und Meldungen anzeigen lassen.
2018-07-09 11:18:52 +02:00
2018-07-10 15:50:17 +02:00
// 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
2018-07-09 11:18:52 +02:00
}
void loop ( ) {
2018-07-10 15:50:17 +02:00
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
2018-07-09 11:18:52 +02:00
digitalWrite ( US_TRIG , LOW ) ;
delayMicroseconds ( 2 ) ;
digitalWrite ( US_TRIG , HIGH ) ;
delayMicroseconds ( 10 ) ;
digitalWrite ( US_TRIG , LOW ) ;
2018-07-10 15:50:17 +02:00
// Messung der Dauer in Mikrosekundenmeasure bis das ECHO Pin vom Ultraschallsensor HIGH wird
echo_dauer = pulseIn ( US_ECHO , HIGH ) ;
2018-07-09 11:18:52 +02:00
// 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
2018-07-10 15:50:17 +02:00
// 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 ;
2018-07-09 11:18:52 +02:00
2018-07-10 15:50:17 +02:00
//Messwert am Monitor anzeigen
Serial . print ( " ABSTAND_MESSEN. Der Abstand in cm ist: " ) ;
Serial . println ( abstand_cm ) ;
2018-07-09 11:18:52 +02:00
2018-07-10 15:50:17 +02:00
//Kurz warten, bevor evetuell wieder eine Messung startet
delay ( 250 ) ;
2018-07-09 11:18:52 +02:00
2018-07-10 15:50:17 +02:00
return ( abstand_cm ) ;
2018-07-09 11:18:52 +02:00
}