Advertisement
Guest User

Untitled

a guest
Apr 14th, 2021
115
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.71 KB | None | 0 0
  1. int echo = 10; //Sensor Pins
  2. int trigger = 7;
  3. int zeit = 0; //Variablen für die spätere berechnung der Zeit/Entfernung
  4. int strecke = 0;
  5.  
  6. int mR = 13; // Motoren
  7. int mL = 12;
  8.  
  9. int gR = 11; // Geschwindigkeit motoren
  10. int gL = 3;
  11.  
  12. int bR = 8; // Bremsen
  13. int bL = 9;
  14.  
  15. void setup() {
  16.  
  17. pinMode(mR, OUTPUT); // Hier im Setup werden die Pin Modes für alle Nötigen Komponenten gewählt
  18. pinMode(mL, OUTPUT);
  19.  
  20. pinMode(gR, OUTPUT);
  21. pinMode(gL, OUTPUT);
  22.  
  23. pinMode(bR, OUTPUT);
  24. pinMode(bL, OUTPUT);
  25.  
  26. pinMode(trigger, INPUT);
  27. pinMode(echo, OUTPUT);
  28.  
  29. digitalWrite(trigger,LOW); //Reset des sensors um Fehler zu vermeiden
  30.  
  31. }
  32.  
  33. void loop() {
  34.  
  35. digitalWrite(echo,HIGH); // Ultraschallwelle los senden
  36. delay(10);
  37. digitalWrite(echo,LOW); // Senden der UW stoppen
  38.  
  39. zeit = pulseIn(trigger,HIGH); // Zeit bis der Schall zurück kommt speichern
  40.  
  41. strecke = (zeit/2) * 0.03432; // Entfernung zu Hindernis berechnen
  42.  
  43.  
  44. if (strecke > 20) { // Wenn kein Hindernis in 20cm -> fahr
  45.  
  46. digitalWrite(bL, LOW);
  47. digitalWrite(bR, LOW);
  48.  
  49. digitalWrite(mR,HIGH);
  50. digitalWrite(mL,HIGH);
  51.  
  52. analogWrite(gL, 255); // (Geschwindigkeit wird festgelegt)
  53. analogWrite(gR, 255);
  54.  
  55.  
  56.  
  57. if (strecke <= 10) { // Wenn der Messwert kleiner als 10 cm ist -> halt an
  58.  
  59. Serial.println("bremsung");
  60.  
  61.  
  62. digitalWrite(bL, HIGH); // hält an
  63. digitalWrite(bR, HIGH);
  64.  
  65. digitalWrite(bL, LOW);
  66. digitalWrite(bR, LOW);
  67. digitalWrite(mL, HIGH);
  68. digitalWrite(mR, LOW); // 90 grad nach rechts drehen um zu prüfen ob es in diese Richtung weiter geht
  69.  
  70. delay(285); // hier Zeit die für 90 grad drehung benötigt wird
  71.  
  72. digitalWrite(bL, HIGH);
  73. digitalWrite(bR, HIGH);
  74.  
  75. if (strecke > 30) { // Wenn es Weitergeht, fahr Los
  76.  
  77. digitalWrite(bL, LOW);
  78. digitalWrite(bR, LOW);
  79.  
  80. digitalWrite(mL,HIGH);
  81. digitalWrite(mR,HIGH);
  82.  
  83. else {
  84. digitalWrite(bL, LOW); // Wenn es nicht weitergeht, 180 grad drehen und in diese Richtung fahren
  85. digitalWrite(bR, LOW);
  86.  
  87. digitalWrite(mR,HIGH);
  88. digitalWrite(mL,LOW);
  89.  
  90. delay(525); // Zeit für 180 drehung
  91.  
  92. digitalWrite(bL, HIGH);
  93. digitalWrite(bR, HIGH);
  94.  
  95. delay(100); // Kurze Bremsung nach der Drehung um zu weites Drehen zu vermeiden
  96.  
  97. digitalWrite(bL, LOW);
  98. digitalWrite(bR, LOW);
  99.  
  100. digitalWrite(mR, HIGH);
  101. digitalWrite(mL, HIGH);
  102.  
  103.  
  104. }
  105. }
  106. }
  107.  
  108. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement