|
Abstandsmessung
Zum Messen von Abständen benutzt man sogenannte Distanzsensoren.
In der Arduinospielwiese sollen zwei unterschiedliche Typen zur
Anwendung kommen:
- Messung mittels Ultraschall
- Messung mittels Licht
Der Distanzsensor "HC-SR04", zu haben hier,
arbeitet mit Ultraschall.
Er besitzt vier gut beschriftetet Pins:
- Vcc ( = 5V )
- Echo
- Trigg ( = Trigger )
- GND (= Ground = 0V)
Hier ein Programm:
/*
Distanzsensor HC-SR04
Aufgaben:
a) rote LED bei Unterschreitung eines Abstands (Grenze), sonst gruene LED
b) Ausgabe des Abstands als Wert im seriellen Monitor
www.arduinospielwiese.de
*/
//die benutzten Pins
int ledGruen = 10;
int ledRot = 11;
int echoPin = 12;
int triggerPin = 13;
//ein paar Variablen
int Dauer, Abstand, Grenze = 20;
void setup() {
Serial.begin (9600);
pinMode(triggerPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(ledRot, OUTPUT);
pinMode(ledGruen, OUTPUT);
}
void loop() {
//einen Ping senden
digitalWrite(triggerPin, LOW);
delayMicroseconds(2);
digitalWrite(triggerPin, HIGH);
delayMicroseconds(10);
digitalWrite(triggerPin, LOW);
Dauer = pulseIn(echoPin, HIGH);
Abstand = (Dauer/2) / 29.1;
// LEDs zeigen Unterschreitung einer
Abstands-Grenze
if (Abstand < Grenze) {
digitalWrite(ledRot, HIGH);
digitalWrite(ledGruen, LOW);
}
else {
digitalWrite(ledRot,LOW);
digitalWrite(ledGruen,HIGH);
}
// Zahlenwerte im seriellen Monitor ausgeben
if (Abstand >= 200 || Abstand <= 0){
Serial.println("ausserhalb
der Reichweite");
}
else {
Serial.print(Abstand);
Serial.println(" cm");
}
delay(250);
}
|