1. Einführung

Aufgabe 1: Wir wollen unserem Arduino beibringen, eine LED in Pin 13 leuchten zu lassen, wenn die Entfernung kleiner als 12 cm ist.

Wie funktioniert der Ultraschallsensor HC-SR04?

Der Ultraschallsensor sendet einen kurzen Schallimpuls aus, der sich mit Schallgeschwindigkeit in der Luft bewegt. Wenn dieser Impuls auf ein Objekt trifft, wird er reflektiert und gelangt als Echo zurück zum Ultraschallsensor. Die Zeitspanne zwischen dem Aussenden des Schallimpulses und dem Empfang des Echosignals wird vom Ultraschallsensor gemessen, um die Entfernung zum Objekt zu berechnen. Das funktioniert genauso wie bei Fledermäusen, die sich so in der Dunkelheit zurechtfinden!

                                   Bildquelle: https://www.microsonic.de/de/service/ultraschallsensoren/prinzip.htm

 

Die Schallgeschwindigkeit in der Luft beträgt 343,2 Meter pro Sekunde. Um diesen Wert in Zentimeter pro Millisekunde umzurechnen, führen wir folgende Schritte durch:

Umrech­nung in cm 343,2 m • 100 = 34.320 cm
Stre­cke pro Sekunde 343.000 : 1.000 = 34,32 cm
Stre­cke pro Millisekunde:  34,3 : 1.000 = 0,03432 cm

Bei der Programmierung sollte die Dezimalstelle in der Zahl im Format der angloamerikanischen Schreibweise mit einem Punkt verwendet werden.

2.Schaltpläne

2.1.Arduino UNO



 

 

2.2.ESP32 Wroom



 

3. Die Programmcode


int trigPin = 7;
int echoPin = 6;
int ledPin = 13;
int zeit; // Hier speichern wir, wie lange der Schall unterwegs ist.
int abstand; // Hier speichern wir den gemessenen Abstand.

void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(ledPin, OUTPUT);
}
void loop() {
// Wir messen den Abstand zum nächsten Objekt.
digitalWrite(trigPin, LOW); // Lautsprecher aus.
delay(2);
digitalWrite(trigPin, HIGH); // Lautsprecher gibt Ton aus.
delay(10);
digitalWrite(trigPin, LOW); // Lautsprecher aus.
zeit = pulseIn(echoPin, HIGH); // Hier wird gemessen, wann das Mikrofon den
// Ton hört.
abstand = zeit * 0.034 / 2; // Umrechnung des Abstands von Zeit in
// Zentimeter.
if (abstand < 12) { // Wenn der Abstand kleiner als 12 Zentimeter ist.
digitalWrite(ledPin, HIGH); // Schalte die LED an.
} else { // sonst
digitalWrite(ledPin, LOW); // Schalte die LED aus.
}

Aufgabe 2:

Erstelle einen Rückfahrwarner, bei dem du eine LED und einen Piezo-Lautsprecher anschließt. Wenn sich ein Objekt nähert, soll die LED schneller blinken, und die Töne des Piezo-Lautsprechers sollen in kürzeren Abständen abgespielt werden.

4.Schaltpläne

4.1.Arduino UNO



 

4.2.ESP32 Wroom



 

5. Die Programmcode

5.1.Arduino UNO


int trigPin = 9;
int echoPin = 10;
int ledPin = 3;
int buzzer=4;
int zeit; // Hier speichern wir, wie lange der Schall unterwegs ist.
int abstand; // Hier speichern wir den gemessenen Abstand.

void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(ledPin, OUTPUT);
pinMode(buzzer, OUTPUT);


}
void loop() {
// Wir messen den Abstand zum nächsten Objekt.
digitalWrite(trigPin, LOW); // Lautsprecher aus.
delay(2);
digitalWrite(trigPin, HIGH); // Lautsprecher gibt Ton aus.
delay(10);
digitalWrite(trigPin, LOW); // Lautsprecher aus.
zeit = pulseIn(echoPin, HIGH); // Hier wird gemessen, wann das Mikrofon den
// Ton hört.
abstand = zeit * 0.034 / 2; // Umrechnung des Abstands von Zeit in
// Zentimeter.
if (abstand < 12) { // Wenn der Abstand kleiner als 12 Zentimeter ist.

tone(buzzer, 100);
digitalWrite(ledPin, HIGH); // Schalte die LED an.
delay(abstand*3);
noTone(buzzer);
digitalWrite(ledPin, HIGH); // Schalte die LED an.
delay(abstand*3);


} else { // sonst
digitalWrite(ledPin, LOW); // Schalte die LED aus.
noTone(buzzer);
}
}

 

5.2.ESP32 Wroom


int trigPin = 19;
int echoPin = 18;
int ledPin = 5;
int buzzer=17;
int zeit; // Hier speichern wir, wie lange der Schall unterwegs ist.
int abstand; // Hier speichern wir den gemessenen Abstand.

void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(ledPin, OUTPUT);
pinMode(buzzer, OUTPUT);


}
void loop() {
// Wir messen den Abstand zum nächsten Objekt.
digitalWrite(trigPin, LOW); // Lautsprecher aus.
delay(2);
digitalWrite(trigPin, HIGH); // Lautsprecher gibt Ton aus.
delay(10);
digitalWrite(trigPin, LOW); // Lautsprecher aus.
zeit = pulseIn(echoPin, HIGH); // Hier wird gemessen, wann das Mikrofon den
// Ton hört.
abstand = zeit * 0.034 / 2; // Umrechnung des Abstands von Zeit in
// Zentimeter.
if (abstand < 12) { // Wenn der Abstand kleiner als 12 Zentimeter ist.

tone(buzzer, 100);
digitalWrite(ledPin, HIGH); // Schalte die LED an.
delay(abstand*3);
noTone(buzzer);
digitalWrite(ledPin, HIGH); // Schalte die LED an.
delay(abstand*3);


} else { // sonst
digitalWrite(ledPin, LOW); // Schalte die LED aus.
noTone(buzzer);
}
}