

Der Ultraschallsensor soll als “Synthesizer” dienen: je nach Entfernung soll ein Ton gespielt werden.

Ein Beispiel:

Benötigte Bauteile:
- Ultraschallsensor HC-SR04
- Lautsprecher
- Leitungsdrähte

Damit der Ultraschallsensor ordnungsgemäß arbeiten kann, musst du ihn so einstecken, dass Sender und Empfänger nach vorn zeigen, damit das Signal ungehindert gesendet und empfangen werden kann. Die Leitungsdrähte werden auf der Rückseite eingesteckt.
Baue die Schaltung auf.
(Fahre mit der Maus über das Bild, um die Bezeichnungen der Bauteile zu sehen)
Definiere die Variablen, der setup-Teil definiert den pinMode des Sende- und Empfangsteils des Unltraschallsensors.
1 2 3 4 5 6 7 8 9 10 11 12 13 | #define SENDEN 9 #define ECHO 8 #define LAUTSPRECHER 7 // Variable für Zeit und Entfernung initialisieren long Zeit; long Entfernung; void setup() { pinMode(SENDEN, OUTPUT); pinMode(ECHO, INPUT); } |
Es ist sinnvoll, das Abspielen des Tons nur unterhalb einer bestimmten Entfernung (hier 20 cm) zuzulassen.
Im loop-Teil setzt eine ⇒map-Anweisung die Entfernung in die Frequenz des Tons um:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 | void loop() { // Sender kurz ausschalten um Störungen des Signals zu vermeiden digitalWrite(SENDEN, LOW); delay(10); // Signal für 10 Mikrosekunden senden digitalWrite(SENDEN, HIGH); delayMicroseconds(10); // Sender ausschalten digitalWrite(SENDEN, LOW); // pulseIn ⇒ Zeit messen, bis das Signal zurückkommt Zeit = pulseIn(ECHO, HIGH); /* Entfernung in cm berechnen Zeit/2 ⇒ nur eine Strecke soll berechnet werden Umrechnung in cm */ Entfernung = (Zeit / 2) * 0.03432; // nur Entfernungen < 200 cm zulassen if (Entfernung < 200) { delay(500); // Entfernung 1 bis 200 auf Frequenzbereich 200 – 1000 umwandeln tone(LAUTSPRECHER, map(Entfernung, 1, 200, 200, 1000), 500); } } |
Du kannst natürlich auch andere Frequenzbereiche verwenden.
Verwandte Anleitungen:
Letzte Aktualisierung:






