Advertisement
Guest User

Untitled

a guest
Apr 26th, 2017
69
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.54 KB | None | 0 0
  1. #include <SPI.h>
  2. #include "RF24.h"
  3. #define TRIG_PIN A5
  4. #define ECHO_PIN 2
  5. #define TIME_OUT 5000
  6. #define TRIG1_PIN 1
  7. #define ECHO1_PIN 0
  8.  
  9. const uint64_t pipe = 0xE8E8F0F0E1LL; // địa chỉ phát
  10. RF24 radio(9,10);//thay 10 thành 53 với mega
  11. byte msg[3];
  12. int led_st = 0;
  13. //Motor A
  14. int enA = 8;
  15. int in1 = 7;
  16. int in2 = 6;
  17.  
  18. //Motor B
  19. int in3 = 5;
  20. int in4 = 4;
  21. int enB = 3;
  22.  
  23.  
  24. float GetDistance()
  25. {
  26. long duration, distanceCm;
  27.  
  28. digitalWrite(TRIG_PIN, LOW);
  29. delayMicroseconds(2);
  30. digitalWrite(TRIG_PIN, HIGH);
  31. delayMicroseconds(10);
  32. digitalWrite(TRIG_PIN, LOW);
  33.  
  34. duration = pulseIn(ECHO_PIN, HIGH, TIME_OUT);
  35.  
  36. // convert to distance
  37. distanceCm = duration / 29.1 / 2;
  38.  
  39. return distanceCm;
  40. }
  41.  
  42. float GetDistance1()
  43. {
  44. long duration, distanceCm1;
  45.  
  46. digitalWrite(TRIG1_PIN, LOW);
  47. delayMicroseconds(2);
  48. digitalWrite(TRIG1_PIN, HIGH);
  49. delayMicroseconds(10);
  50. digitalWrite(TRIG1_PIN, LOW);
  51.  
  52. duration = pulseIn(ECHO1_PIN, HIGH, TIME_OUT);
  53.  
  54. // convert to distance1
  55. distanceCm1 = duration / 29.1 / 2;
  56.  
  57. return distanceCm1;
  58. }
  59.  
  60. void setup(){
  61. Serial.begin(115200);
  62. radio.begin();
  63. radio.setAutoAck(1);
  64. radio.setDataRate(RF24_1MBPS); // Tốc độ dữ liệu
  65. radio.setChannel(10); // Đặt kênh
  66. radio.openReadingPipe(1,pipe);
  67. radio.startListening();
  68. pinMode(enA, OUTPUT);
  69. pinMode(in1, OUTPUT);
  70. pinMode(in2, OUTPUT);
  71. pinMode(TRIG_PIN, OUTPUT);
  72. pinMode(ECHO_PIN, INPUT);
  73. pinMode(TRIG1_PIN, OUTPUT);
  74. pinMode(ECHO1_PIN, INPUT);
  75. pinMode(enB,OUTPUT);
  76. pinMode(in3, OUTPUT);
  77. pinMode(in4, OUTPUT);
  78. }
  79.  
  80. void loop(){
  81. // if (radio.available()){
  82. // while (radio.available()){
  83. // radio.read(&msg, sizeof(msg));
  84. // Serial.println(msg[0]);
  85. // if (msg[0]==0) {
  86. // digitalWrite(in1, LOW);
  87. // digitalWrite(in2, LOW);
  88. // analogWrite(enA, 200);
  89. // }
  90. // if (msg[0]==1) {
  91. // digitalWrite(in1, LOW);
  92. // digitalWrite(in2, HIGH);
  93. // analogWrite(enA, 200);
  94. // }
  95. //
  96. // if (msg[0]==2) {
  97. // digitalWrite(in1, HIGH);
  98. // digitalWrite(in2, LOW);
  99. // analogWrite(enA, 200);
  100. // }
  101. // }
  102. // }
  103. long distance = GetDistance();
  104. long distance1 = GetDistance1();
  105. if ((distance >= 10) && (distance1 <=3)) {
  106. if (radio.available()) {
  107. while (radio.available()){
  108. radio.read(&msg, msg[0]);
  109. Serial.println(msg[0]);
  110. if (msg[0]==0) {
  111. //Running motor A
  112. digitalWrite(in1, HIGH);
  113. digitalWrite(in2, LOW);
  114. analogWrite(enA,200);
  115.  
  116. //Speed PWM: 0~255
  117. //Running motor B
  118. digitalWrite(in3, HIGH);
  119. digitalWrite(in4, LOW);
  120. analogWrite(enB, 255);
  121.  
  122. }
  123. if (msg[0]==1) {
  124. //Running motor A
  125. digitalWrite(in1, HIGH);
  126. digitalWrite(in2, LOW);
  127. analogWrite(enA,200);
  128.  
  129. //Speed PWM: 0~255
  130. //Running motor B
  131. digitalWrite(in3, LOW);
  132. digitalWrite(in4, HIGH);
  133. analogWrite(enB, 255);
  134.  
  135. }
  136.  
  137. if (msg[0]==2) {
  138. //Running motor A
  139. digitalWrite(in1, LOW);
  140. digitalWrite(in2, HIGH);
  141. analogWrite(enA,200);
  142.  
  143. //Speed PWM: 0~255
  144. //Running motor B
  145. digitalWrite(in3, HIGH);
  146. digitalWrite(in4, LOW);
  147. analogWrite(enB, 255);
  148.  
  149. }
  150. }
  151. }
  152. }
  153. Serial.println(distance);
  154. Serial.print(distance1);
  155. delay(50);
  156. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement