Advertisement
Guest User

Untitled

a guest
Mar 21st, 2018
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.97 KB | None | 0 0
  1. //Sterownik
  2. // D3 - PWMA
  3. // D5 - AIN1
  4. // D4 - AIN2
  5. // D6 - BIN1
  6. // D7 - BIN2
  7. // D9 - PWMB
  8. //Odleglosc
  9. // D12 - ECHO
  10. // D11 - TRIG
  11. //Zblizenie
  12. // PRZOD :
  13. // A1 - A0
  14. // D10 - D0
  15. // TYL:
  16. // A0 - A0
  17. // D2 - D0
  18. #include<Wire.h>
  19.  
  20. #define PWMA 3
  21. #define AIN1 5
  22. #define AIN2 4
  23. #define BIN1 6
  24. #define BIN2 7
  25. #define PWMB 9
  26. #define ECHO 12
  27. #define TRIG 11
  28. #define xA0 A1
  29. #define xD0 10
  30. #define yA0 A0
  31. #define yD0 2
  32.  
  33. int CM;
  34. long CZAS;
  35. int TCRT5000x1;
  36. int TCRT5000x2;
  37.  
  38. void setup() {
  39. pinMode(PWMA,OUTPUT);
  40. pinMode(AIN1,OUTPUT);
  41. pinMode(AIN2,OUTPUT);
  42. pinMode(BIN1,OUTPUT);
  43. pinMode(BIN2,OUTPUT);
  44. pinMode(PWMB,OUTPUT);
  45. pinMode(ECHO,OUTPUT);
  46. pinMode(TRIG,OUTPUT);
  47. pinMode(xA0,OUTPUT);
  48. pinMode(xD0,OUTPUT);
  49. pinMode(yA0,OUTPUT);
  50. pinMode(yD0,OUTPUT);
  51. Serial.begin(9600);
  52. Serial.println("Debug: ");
  53. digitalWrite(PWMA,LOW);
  54. digitalWrite(PWMB,LOW);
  55.  
  56. }
  57.  
  58. void loop() {
  59. lewo();
  60. for(int i=10;i<500;i+=10)
  61. {
  62. pomiar_odleglosci();
  63. odbicie();
  64. delay(10);
  65. }
  66. prawo();
  67. for(int i=10;i<500;i+=10)
  68. {
  69. pomiar_odleglosci();
  70. odbicie();
  71. delay(10);
  72. }
  73.  
  74. }
  75.  
  76. void pomiar_odleglosci()
  77. {
  78. digitalWrite(TRIG, LOW); //ustawienie stanu wysokiego na 2 uS - impuls inicjalizujacy - patrz dokumentacja
  79. delayMicroseconds(2);
  80. digitalWrite(TRIG, HIGH); //ustawienie stanu wysokiego na 10 uS - impuls inicjalizujacy - patrz dokumentacja
  81. delayMicroseconds(15);
  82. digitalWrite(TRIG, LOW);
  83. digitalWrite(ECHO, HIGH);
  84. CZAS = pulseIn(ECHO, HIGH);
  85. CM = CZAS / 58; //szerokość odbitego impulsu w uS podzielone przez 58 to odleglosc w cm - patrz dokumentacja
  86. Serial.print("Odleglosc[cm]: ");
  87. Serial.println(CM);
  88. }
  89.  
  90. void przod()
  91. {
  92. digitalWrite(PWMA,HIGH);
  93. digitalWrite(PWMB,HIGH);
  94.  
  95. digitalWrite(AIN1,HIGH);
  96. digitalWrite(AIN2,LOW);
  97. digitalWrite(BIN1,HIGH);
  98. digitalWrite(BIN2,LOW);
  99. }
  100.  
  101. void tyl()
  102. {
  103. digitalWrite(PWMA,HIGH);
  104. digitalWrite(PWMB,HIGH);
  105.  
  106. digitalWrite(AIN1,LOW);
  107. digitalWrite(AIN2,HIGH);
  108. digitalWrite(BIN1,LOW);
  109. digitalWrite(BIN2,HIGH);
  110. }
  111.  
  112. void stoj()
  113. {
  114. digitalWrite(PWMA,LOW);
  115. digitalWrite(PWMB,LOW);
  116.  
  117. digitalWrite(AIN1,LOW);
  118. digitalWrite(AIN2,LOW);
  119. digitalWrite(BIN1,LOW);
  120. digitalWrite(BIN2,LOW);
  121. }
  122.  
  123. void lewo() // albo prawo, uj wie XD
  124. {
  125. digitalWrite(PWMA,HIGH);
  126. digitalWrite(PWMB,HIGH);
  127.  
  128. digitalWrite(AIN1,HIGH);
  129. digitalWrite(AIN2,LOW);
  130. digitalWrite(BIN1,LOW);
  131. digitalWrite(BIN2,HIGH);
  132. }
  133.  
  134. void prawo() // a moze lewo no nie wiem xD
  135. {
  136. digitalWrite(PWMA,HIGH);
  137. digitalWrite(PWMB,HIGH);
  138.  
  139. digitalWrite(AIN1,LOW);
  140. digitalWrite(AIN2,HIGH);
  141. digitalWrite(BIN1,HIGH);
  142. digitalWrite(BIN2,LOW);
  143. }
  144.  
  145. void odbicie() // niby powyzej 500 to czornyj linio
  146. {
  147. TCRT5000x1=analogRead(xA0);
  148. TCRT5000x2=analogRead(yA0);
  149. Serial.print("Pomiar z TRCT5000(PRZOD/TYL): ");
  150. Serial.print(xA0);
  151. Serial.print(" / ");
  152. Serial.println(yA0);
  153. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement