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.
#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:
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 < 20 cm zulassen
if (Entfernung < 20)
{
delay(500);
// Entfernung 1 bis 20 auf Frequenzbereich 200 – 1000 umwandeln
tone(LAUTSPRECHER, map(Entfernung, 1, 20, 200, 1000), 500);
}
}
Du kannst natürlich auch andere Frequenzbereiche verwenden.
Verwandte Anleitungen:
Letzte Aktualisierung: