Ultraschall alla Geiger Müller

Author: Florian Richter, bearbeitet von Wilfried Klaas

Board: Arduino Uno, Leonardo

Hallo, ein weiterer Ultraschall-Abstandssensor, diesmal like a Geiger-Müller-Zähler.

Material:

  • Arduino Uno
  • Ultraschallmodul HC-SR04
  • kleiner Lautsprecher
  • 6 (7)* Drähte
  • Breadboard (oder zusammenlöten…)

Das Modul mit dem Arduino wie folgt verbinden:
Vcc → 5V
Trig → Pin 3
Echo → Pin 2
Gnd → Gnd

Lautsprecher + → Pin 4
Lautsprecher - → Gnd

* Bei bedarf noch zwischen Lautsprecher - und dem Arduino einen Schalter, Knopf oder sowas bauen, dann hat man die akustische Anzeige nur auf Knopfdruck.


11.09.2013 WKLA

Ich hab mir mal die Teile besorgt und aufgebaut. Zus. habe ich einen Taster an Pin 7 angeschlossen. Damit kann man nun den Ultraschallsensor ein und ausschalten. Und ich habe den Sketch etwas kommentiert. Der originale Sketch ist weiter unten zu finden.

Ein/Ausschalter → Pin 7 und GND

Damit kann der Ein/Ausschalter in der Lautsprecherleitung wegfallen. Dafür aber bitte einen kleinen Widerstand in die Lautsprecherleitung (255Ohm). So wie hier.
Aufbau:

ultra.ino
// Serial Monitor einschalten!
 
// Pins für den HC-SR04 
#define trigPin 3
#define echoPin 2
 
// Pin für den Beeper
#define beeper 4
 
// Pin für den Ein/Ausschalter
#define onSwitch 7
 
void setup ()
{
  Serial.begin (9600);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
  pinMode(onSwitch,INPUT_PULLUP);
}
 
void loop()
{
  // Nur einschalten wenn der Schalter gedrückt ist
  if (digitalRead(onSwitch)==0) {
    // Variablen definieren
    float zwischensumme, entfernt, tonTon;
 
    // Ultraschall module triggern
    digitalWrite(trigPin, HIGH);
    delayMicroseconds(1000);
    digitalWrite(trigPin, LOW);
 
    // und Echo lesen
    zwischensumme = pulseIn(echoPin, HIGH);
 
    // entfernung berechnen
    entfernt = (zwischensumme/2) / 29.1;
 
    Serial.print(entfernt);
    Serial.println(" cm Entfernung");
 
    // Tonhöhe berechnen    
    tonTon = (zwischensumme) / 29.1;
    int thisPitch = map(entfernt, 0, 200, 2093, 22);
 
    // und ausgeben
    tone(beeper, thisPitch);
    delay(5);
    noTone(beeper);
    delay(tonTon);
  } 
  else {
    // einfach etwas warten
    delay(100);
  }
}

Originale Sketch

ultra.ino
// Serial Monitor einschalten!
 
#define trigPin 3
#define echoPin 2
 
void setup ()
{
  Serial.begin (9600);
  pinMode(trigPin, OUTPUT);
  pinMode(echoPin, INPUT);
}
 
void loop()
{
  int zwischensumme, entfernt, tonTon;
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(1000);
  digitalWrite(trigPin, LOW);
  zwischensumme = pulseIn(echoPin, HIGH);
  entfernt = (zwischensumme/2) / 29.1;
  tonTon = (zwischensumme) / 29.1;
  Serial.print(entfernt);
  Serial.println(" cm Entfernung");
  int thisPitch = map(entfernt, 0, 200, 2093, 22);
  tone(4, thisPitch);
  delay(5);
  noTone(4);
  delay(tonTon);
}

Viel Spaß Florian

Diskussion

Florian, 2014/01/24 10:57
Und hier noch ein Bild, wie dies aufgebaut ist. Ist zwar nicht das Original aus dem Video, aber der Aufbau ist der gleiche.
http://www.bilderhoster.net/1r6wpfkc.jpg.html
Florian, 2014/01/24 10:56
Hier noch ein kleines Video: http://www.youtube.com/watch?v=jnQDmi5C8oM
Melden Sie sich an, um einen Kommentar zu erstellen.
arduino/ohter/user/ultraschall.txt · Zuletzt geändert: 2018/11/04 10:51 von 127.0.0.1
CC Attribution-Share Alike 4.0 International
Driven by DokuWiki Recent changes RSS feed Valid CSS Valid XHTML 1.0