Advertisement
Guest User

Untitled

a guest
Jan 24th, 2018
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.80 KB | None | 0 0
  1. #include <QTRSensors.h>
  2.  
  3. #define NUM_SENSORS 2
  4. #define NUM_SAMPLES_PER_SENSOR 4
  5. #define EMITTER_PIN 99 //DINGSBUMS FEHLT NOCH
  6.  
  7.  
  8. //Constanten / INT festlegen
  9.  
  10. const int engineRightPin1 = 2; // IN: 1
  11. const int engineRightPin2 = 3; // IN: 2
  12. const int engineRightSpeedPin = 11; // ENA
  13.  
  14. const int engineLeftPin1 = 12; // IN: 3
  15. const int engineLeftPin2 = 13; // IN: 4
  16. const int engineLeftSpeedPin = 5; // ENB
  17.  
  18. const int sensorLeft = 11;
  19. const int sensorRight = 10;
  20.  
  21. int sR, sL;
  22.  
  23. QTRSensorsAnalog qtra((unsigned char[]) {
  24. sensorRight, sensorLeft
  25. },
  26. NUM_SENSORS, NUM_SAMPLES_PER_SENSOR, EMITTER_PIN);
  27. unsigned int sensorValues[NUM_SENSORS];
  28.  
  29. // Setup - Pins werden hier an den Arduino weiter gegeben
  30. void setup() {
  31. //Steuerung / Auslesung des rechten Motors
  32. pinMode(engineRightPin1, OUTPUT);
  33. pinMode(engineRightPin2, OUTPUT);
  34. pinMode(engineRightSpeedPin, OUTPUT);
  35. //Steuerung / Auslesung des linken Motors
  36. pinMode(engineLeftPin1, OUTPUT);
  37. pinMode(engineLeftPin2, OUTPUT);
  38. pinMode(engineLeftSpeedPin, OUTPUT);
  39. //LED
  40. pinMode(LED_BUILTIN, OUTPUT); // LED Lampe, welche auf dem Board ist
  41.  
  42. // Kalibration der Sensoren
  43. for (int i = 0; i < 250; i++) { // Kalibration dauert ca. 5 Sekunden
  44. qtra.calibrate();
  45. delay(20);
  46. }
  47. }
  48.  
  49. void sRight(int speed) {
  50. analogWrite(engineRightSpeedPin, speed);
  51. }
  52.  
  53. void sLeft(int speed) {
  54. analogWrite(engineLeftSpeedPin, speed);
  55. }
  56.  
  57. void cRight() {
  58. digitalWrite(engineRightPin1, HIGH);
  59. digitalWrite(engineRightPin2, LOW);
  60. }
  61.  
  62. void ccRight() {
  63. digitalWrite(engineRightPin1, LOW);
  64. digitalWrite(engineRightPin2, HIGH);
  65.  
  66. }
  67.  
  68. void cLeft() {
  69. digitalWrite(engineLeftPin1, HIGH);
  70. digitalWrite(engineLeftPin2, LOW);
  71. }
  72.  
  73. void ccLeft() {
  74. digitalWrite(engineLeftPin1, LOW);
  75. digitalWrite(engineLeftPin1, HIGH);
  76. }
  77.  
  78. void bRight() {
  79. digitalWrite(engineRightPin1, HIGH);
  80. digitalWrite(engineRightPin2, HIGH);
  81. sRight(255);
  82. }
  83.  
  84. void bLeft() {
  85. digitalWrite(engineLeftPin1, HIGH);
  86. digitalWrite(engineLeftPin2, HIGH);
  87. sLeft(255);
  88. }
  89.  
  90. void oRight() {
  91. digitalWrite(engineRightPin1, LOW);
  92. digitalWrite(engineRightPin2, LOW);
  93. sRight(0);
  94. }
  95.  
  96. void oLeft() {
  97. digitalWrite(engineLeftPin1, LOW);
  98. digitalWrite(engineLeftPin2, LOW);
  99. sLeft(0);
  100. }
  101.  
  102.  
  103. void forward() {
  104. cRight();
  105. cLeft();
  106. sRight(255);
  107. sLeft(255);
  108. }
  109.  
  110. void reverse() {
  111. ccRight();
  112. ccLeft();
  113. sRight(255);
  114. sLeft(255);
  115. }
  116.  
  117. void stoped() {
  118. bRight();
  119. bLeft();
  120. }
  121.  
  122. void turn() {
  123. stoped();
  124. reverse();
  125. delay(1);
  126. cRight();
  127. sRight(255);
  128. ccLeft();
  129. sLeft(255);
  130. }
  131. void loop() {
  132. sR = analogRead(sensorRight);
  133. sL = analogRead(sensorLeft);
  134.  
  135. forward();
  136.  
  137. while (sR < 750 || sL < 750) {
  138. sR = analogRead(sensorRight);
  139. sL = analogRead(sensorLeft);
  140. turn();
  141. }
  142.  
  143.  
  144. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement