ich bin noch etwas unerfahren mit der Programmierung mit C und Arduino. Für mein aktuelles Projekt habe ich einen Sketch für mehrere Ultraschallsensoren geschrieben die Seriell abgefragt werden. Den Abstand der einzelnen Sensoren bekomme ich ausgelesen. Diese möchte ich mit logischen Verknüpfungen auswerten sodass ein Motor damit angesteuert wird.
Mein Code für den Motor: US0 und US2 sind vom Datentyp Integer und liefern den Abstand der US in cm.
Leider funktioniert der Code mit if(US0||US2 > 10) nicht und die Anweisung wird nicht richtig ausgeführt. Habe ich hier etwas grundsätzlich falsch gemacht oder wie kann ich bei einer If Anweisung mehrere unterschiedliche Variablen auswerten.
Ich würde mich auf eure Antworten und Tips sehr freuen
Für die Ultraschallsensoren verwende ich diesen Sketch. Habe lang überlegt wie ich hierbei die Zykluszeit kurz halten kann, aber ich denke der Sketch ist effektiv. Ich habe später vor die US an einer Felge an meinem Roboter anzubringen, da dürften sich die Echos eigentlich nicht gegenseitig stören. Danke für den Hinweis
void Ultraschall() //Ultraschallsensor
{
for(int i=0;i <3; i++)
{
digitalWrite(Trigger, LOW);
delayMicroseconds(2);
digitalWrite(Trigger, HIGH);
delayMicroseconds(10);
digitalWrite(Trigger, LOW);
int duration = pulseIn(US[i], HIGH)/2/29;
switch(i)
{
case 0:
US0=duration;
break;
case 1:
US1=duration;
break;
case 2:
US2=duration;
break;
}
delay(15);
}
}
Doch, die können sich sehr wohl gegenseitig stören.
Zwar werden die Sensoren mit 4m Reichweite angegeben, aber meist schaffen sie 5 auch noch-und das doppelte kriegen sie dann wirklich hin (weil der Ping ja vor-und zurückkkommt).
In Innenräumen wird das schnell ein Problem- ich selber betreib vier der Dinger "gleichzeitig"- das gibt immer mal Störungen, wenn man sie zu fix hintereinander benutzt.