Lautsprecher mit Ultraschallsensor steuern (Arduino)?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet

Sehr gute Idee! Wir könnten das Projekt zusammen machen. Mit Arduino habe ich Erfahrung, mit Ultraschall und einem Piezo als Pieper, jedoch noch nicht. Aber das ist nicht schlimm, das kann ich schnell lernen.

Als erstes würde ich mir Gedanken machen wie das mit dem Ultraschall funktioniert. Ich habe dieses Video gefunden. In der Beschreibung habe ich dann den Code dazu gefunden.

Dein Vorhaben ähnelt einem Rückfahrsensor für ein Auto. Wenn das Auto sich einem Gegenstand nähert, beginnt ein Ton zu piepsen, je nachdem wie weit sich das Auto schon dem Gegenstand genähert hat.

Dann solltest du dir noch diesen Artikel durchlesen. Dort lernst du wie man einen Ton, einer bestimmten Frequenz wiedergibst. Dort steht:

tone(8, 300); // …spiele diesen Ton...
delay(1000); //…und zwar für eine Sekunde...
noTone(8); // Ton abschalten

Die 8 steht für den Pin, an dem der Pieper angeschlossen ist. Die 300 für die Tonhöhe. Die Tonhöhe kannst du dabei wählen von 0 (tief) bis 1023 (hoher Ton).

Jetzt muss man beide Codes ineinander integrieren: Das könnte dann so aussehen:

// http://playground.arduino.cc/Code/NewPing
#include <NewPing.h>

#define TRIG_PIN 5
#define ECHO_PIN 11
#define MAX_DIST 400
int piezo = 8; //PIN des Piezo Piepers
NewPing sonar(TRIG_PIN, ECHO_PIN, MAX_DIST); // NewPing initialisieren

void setup() {
  Serial.begin(9600);
  pinMode(piezo, OUTPUT);
}

void loop() {
  delay(50);
  unsigned int distanceCM = sonar.ping_cm();
  Serial.print(distanceCM);
  Serial.println("cm");
  int tonhoehe = 1023 - distanceCM * 1023 / MAX_DIST; //Umrechnen von einer Skala von 0 - 400 cm zu einer Skala Tonhöhe von 0 bis 1023.
  tone(piezoPIN, tonhoehe); // …spiele diesen Ton...
}

Je geringer die Distanz des Autos zum Gegenstand, desto höher wird der Ton. Bei int tonhoehe nehme ich diese Umrechnung vor. Also bei einer Distanz von 400 cm, wird eine tonhöhe von 0 errechnet. Bei einer Distanz von 0 cm eine Tonhöhe von 1023.

Das Anschließen lernst du aus dem Video. Der Piezosensor wird an Pin 8 und Ground angeschlossen. Dann wärst du eigentlich auch schon fertig :)



Nur wenn sich das tongebende Signal auf den Sensor zubewegt wird der empfangene Ton höher (Dopplereffekt). Die tatsächliche Entfernung wirkt sich dabei nur auf die Intensität aus, nicht aber auf die Frequenz.

Woher ich das weiß:Berufserfahrung – Lehrer u. Fachbetreuer für Mathematik und Physik i.R.