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