Melo­dien spie­len

Lese­zeit: 3 Minu­ten
Navi­ga­ti­on

Der Ultra­schall­sen­sor soll als "Syn­the­si­zer" die­nen: je nach Ent­fer­nung soll ein Ton gespielt wer­den.

Ultra­schall­sen­sor

Ein Bei­spiel:

Benö­tig­te Bau­tei­le:

  • Ultra­schall­sen­sor HC-SR04
  • Laut­spre­cher
  • Lei­tungs­dräh­te

Baue die Schal­tung auf.
(Fah­re mit der Maus über das Bild, um die Bezeich­nun­gen der Bau­tei­le zu sehen)

Defi­nie­re die Varia­blen:

# define SENDEN 6 
# define ECHO 7 
# define LAUTSPRECHER 4

// Variable für Zeit und Entfernung initialisieren 
long Zeit;
long Entfernung;

Der setup-Teil:

void setup() 
{  
  pinMode(SENDEN, OUTPUT); 
  pinMode(ECHO, INPUT); 
}

Es ist sinn­voll, das Abspie­len des Tons nur unter­halb einer bestimm­ten Ent­fer­nung (hier 20 cm) zuzu­las­sen.

Im loop-Teil setzt eine ➨map-Anwei­sung die Ent­fer­nung in die Fre­quenz 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ür­lich auch ande­re Fre­quenz­be­rei­che ver­wen­den.



Ver­wand­te Auf­ga­ben:


Letzte Aktualisierung: 15. Apr 2020 @ 10:05