Advertisement
DevMakoto

elvin_v1

Dec 5th, 2015
373
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.09 KB | None | 0 0
  1. #include <Ultrasonic.h>
  2.  
  3. #define MOTOR_1_FORWARD 5
  4. #define MOTOR_1_BACK 6
  5. #define MOTOR_2_FORWARD 9
  6. #define MOTOR_2_BACK 10
  7.  
  8. #define TRIG 3
  9. #define ECHO 2
  10.  
  11. #define OBSTRACLE_DISTANCE 30.0
  12. #define TURN_DELAY 200
  13.  
  14. Ultrasonic ultrasonic(TRIG, ECHO);
  15.  
  16. float distance = 0;
  17. int estado = 'g';
  18.  
  19. void setup()
  20. {
  21. pinMode(MOTOR_1_FORWARD, OUTPUT);
  22. pinMode(MOTOR_1_BACK, OUTPUT);
  23. pinMode(MOTOR_2_FORWARD, OUTPUT);
  24. pinMode(MOTOR_2_BACK, OUTPUT);
  25.  
  26. stopMove();
  27. }
  28.  
  29. void loop()
  30. {
  31.  
  32. checkDistance();
  33.  
  34. moove();
  35.  
  36. delay(10);
  37. }
  38.  
  39. void checkDistance()
  40. {
  41. distance = ultrasonic.Ranging(CM);
  42. }
  43.  
  44.  
  45. void moove()
  46. {
  47. if( distance > OBSTRACLE_DISTANCE )
  48. {
  49. if(Serial.available()>0){
  50. estado = Serial.read();
  51. }
  52.  
  53. if(estado=='a') // Boton desplazar al Frente
  54. {
  55. goForward();
  56. }
  57. if(estado=='b') // Boton IZQ
  58. {
  59. goLeft();
  60. }
  61. if(estado=='c') // Boton Parar
  62. {
  63. stopMove();
  64. }
  65. if(estado=='d') // Boton DER
  66. {
  67. goRight();
  68. }
  69. if(estado=='e') // Boton Reversa
  70. {
  71. goBack();
  72. }
  73. if (estado=='g') // Boton OFF, detiene los motores no hace nada
  74. {
  75. }
  76. delay(TURN_DELAY);
  77. }
  78. else
  79. {
  80. stopMove();
  81. }
  82. }
  83.  
  84.  
  85. void goForward()
  86. {
  87. digitalWrite(MOTOR_1_FORWARD, HIGH);
  88. digitalWrite(MOTOR_1_BACK, LOW);
  89. digitalWrite(MOTOR_2_FORWARD, HIGH);
  90. digitalWrite(MOTOR_2_BACK, LOW);
  91. }
  92.  
  93. void goBack()
  94. {
  95. digitalWrite(MOTOR_1_FORWARD, LOW);
  96. digitalWrite(MOTOR_1_BACK, HIGH);
  97. digitalWrite(MOTOR_2_FORWARD, LOW);
  98. digitalWrite(MOTOR_2_BACK, HIGH);
  99. }
  100.  
  101. void goLeft()
  102. {
  103. digitalWrite(MOTOR_1_FORWARD, LOW);
  104. digitalWrite(MOTOR_1_BACK, HIGH);
  105. digitalWrite(MOTOR_2_FORWARD, HIGH);
  106. digitalWrite(MOTOR_2_BACK, LOW);
  107. }
  108.  
  109. void goRight()
  110. {
  111. digitalWrite(MOTOR_1_FORWARD, HIGH);
  112. digitalWrite(MOTOR_1_BACK, LOW);
  113. digitalWrite(MOTOR_2_FORWARD, LOW);
  114. digitalWrite(MOTOR_2_BACK, HIGH);
  115. }
  116.  
  117. void stopMove()
  118. {
  119. digitalWrite(MOTOR_1_FORWARD, LOW);
  120. digitalWrite(MOTOR_1_BACK, LOW);
  121. digitalWrite(MOTOR_2_FORWARD, LOW);
  122. digitalWrite(MOTOR_2_BACK, LOW);
  123. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement