Inhaltsverzeichnis
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
http://www.bilderhoster.net/1r6wpfkc.jpg.html