Hallo zusammen,
Ich bin noch relativ Anfänger und wollte zwei Abstandssensoren an einen Arduino anschließen. Mit einem hat das Werte auslesen schon gut funktioniert, bei zwei Sensoren bekomme ich als Werte nur 1209 und 0. Ich habe schon gelesen, dass sich die Sensoren gegenseitig stören können und hab zum Test ein Delay eingebaut, das hat jedoch auch nicht geholfen.
Hardware: Ich habe eine Arduino Uno Kopie (von AZ-Delivery) benutzt und zwei HC-SR04 Ultraschall Abstandssensoren. Die Trigger und Echo hab ich an die digital Pins angeschlossen. (trigger1 =Pin 2; echo1=Pin 3; trigger2 = Pin 4; echo2= Pin5). Ansonsten halt Ground an Ground und 5V an 5V.
Mein Code:
int trigger = 2; //triggerpin von Sensor1
int echo = 3; //echopin von Sensor 1
int trigger2 = 4; //triggerpin von Sensor2
int echo2 = 5; //echopin von Sensor 2
long entfernung;
long entfernung2;
long zeit;
long zeit2;
void setup(){
//pinModes festlegen, echos als input, trigger als Outputs
pinMode (echo,INPUT);
pinMode (trigger, OUTPUT);
pinMode(echo2, INPUT);
pinMode(trigger2, OUTPUT);
Serial.begin (9600);
}
void loop(){
//Zeit von Sensor 2 auslesen
digitalWrite (trigger2,LOW);
delayMicroseconds (3);
noInterrupts();
digitalWrite(trigger2, HIGH);
delayMicroseconds(10);
digitalWrite(trigger2, LOW);
zeit= pulseIn(echo2,HIGH);
interrupts();
//Zeit von Sensor 1 auslesen ende
//Zeit in Entfernung umrechnen und ausgeben
zeit=(zeit/2);
entfernung = zeit/29,1;
Serial.println(entfernung);
delay(5000);
//Abstandssensor 1 auslesen
digitalWrite (trigger, LOW);
delayMicroseconds (3);
noInterrupts();
digitalWrite(trigger, HIGH);
delayMicroseconds(10);
digitalWrite(trigger, LOW);
zeit2=pulseIn(echo,HIGH);
//Zeit in Abstand umrechnen
zeit2=(zeit2/2);
entfernung2 = zeit2/29,1;
Serial.println(entfernung2);
delay(5000);
}