Hausaufgaben7 Tipp 2: Unterschied zwischen den Versionen
Zur Navigation springen
Zur Suche springen
Die Seite wurde neu angelegt: „---- → zurück zum Hauptartikel: Termin 7: Ultraschall Notbremse“ |
Keine Bearbeitungszusammenfassung |
||
| (Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt) | |||
| Zeile 1: | Zeile 1: | ||
Im zweiten Schritt wird die Funktion <code>dreheRobot</code> programmiert, die den Roboter in Richtung des Ziele dreht. | |||
== Quelltext == | |||
<div style="width:1200px; height:300px; overflow:auto; border: 2px solid #088"> | |||
<pre> | |||
void dreheRobot(int DrehWinkel_s16){ // Eingang Winkel in deg, | |||
/* Winkelbereich -90°..90° */ | |||
int nPower = 90; // | |||
int Delay_s16 = 0; | |||
if(DrehWinkel_s16<-90 || DrehWinkel_s16>90){ | |||
Serial.println("ERROR: Winkel außerhalb des gültigen Bereichs."); | |||
} | |||
else{ | |||
// Sollwinkel: | |||
Delay_s16=abs(DrehWinkel_s16)*40/9; // Platzdrehung abwarten Power: 90, 400ms -> 90° | |||
Serial.print("Delay: "); | |||
Serial.print(Delay_s16); | |||
if (DrehWinkel_s16<0){ | |||
nPower = nPower*(-1); // Winkel_s16<0: Rechtsdrehung | |||
} | |||
Alf.MotorRun(-nPower,+nPower); // Alf Drehung | |||
delay(Delay_s16); | |||
Alf.Brake(); | |||
Serial.print(" - Drehung: "); | |||
Serial.println(DrehWinkel_s16); | |||
} | |||
} | |||
</pre> | |||
</div> | |||
---- | ---- | ||
→ zurück zum Hauptartikel: [[AlphaBot:_Ultraschall_Notbremse|Termin 7: Ultraschall Notbremse]] | → zurück zum Hauptartikel: [[AlphaBot:_Ultraschall_Notbremse|Termin 7: Ultraschall Notbremse]] | ||
Aktuelle Version vom 8. Mai 2022, 14:44 Uhr
Im zweiten Schritt wird die Funktion dreheRobot programmiert, die den Roboter in Richtung des Ziele dreht.
Quelltext
void dreheRobot(int DrehWinkel_s16){ // Eingang Winkel in deg,
/* Winkelbereich -90°..90° */
int nPower = 90; //
int Delay_s16 = 0;
if(DrehWinkel_s16<-90 || DrehWinkel_s16>90){
Serial.println("ERROR: Winkel außerhalb des gültigen Bereichs.");
}
else{
// Sollwinkel:
Delay_s16=abs(DrehWinkel_s16)*40/9; // Platzdrehung abwarten Power: 90, 400ms -> 90°
Serial.print("Delay: ");
Serial.print(Delay_s16);
if (DrehWinkel_s16<0){
nPower = nPower*(-1); // Winkel_s16<0: Rechtsdrehung
}
Alf.MotorRun(-nPower,+nPower); // Alf Drehung
delay(Delay_s16);
Alf.Brake();
Serial.print(" - Drehung: ");
Serial.println(DrehWinkel_s16);
}
}
→ zurück zum Hauptartikel: Termin 7: Ultraschall Notbremse