Advertisement
Guest User

Untitled

a guest
Dec 7th, 2016
79
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.25 KB | None | 0 0
  1. const int In1 = 2; // pin motor derecho
  2. const int In2 = 3; // pin motor derecho
  3.  
  4. const int In3 = 4; // pin motor izquierdo
  5. const int In4 = 5; // pin motor izquierdo
  6.  
  7. const int ENA = 9; // habilita el motor derecho
  8. const int ENB = 10; // habilita el motor izquierdo
  9.  
  10. const int PhotoSensorLeft = 6; // pin del Arduino conectado al sensor óptico Izquierdo
  11. const int PhotoSensorRight = 7; // pin del Arduino conectado al sensor óptico Derecho
  12.  
  13. const int BLANCO = 0;
  14. const int NEGRO = 1;
  15.  
  16. int vel = 100;
  17.  
  18. const int velMax = 200;
  19. const int velMin = 140;
  20.  
  21. void setup() {
  22. Serial.begin(9600);
  23. pinMode(In1, OUTPUT);
  24. pinMode(In2, OUTPUT);
  25. pinMode(In3, OUTPUT);
  26. pinMode(In4, OUTPUT);
  27. pinMode(ENA, OUTPUT);
  28. pinMode(ENB, OUTPUT);
  29. pinMode(PhotoSensorLeft, INPUT);
  30. pinMode(PhotoSensorRight, INPUT);
  31. /*digitalWrite(ENA,HIGH);
  32. digitalWrite(ENB,HIGH);*/
  33. vel = velMax;
  34. analogWrite(ENA, vel);
  35. analogWrite(ENB, vel);
  36. }
  37.  
  38. void loop() {
  39. Serial.println(vel);
  40. int izq = digitalRead(PhotoSensorLeft);
  41. int drc = digitalRead(PhotoSensorRight);
  42. if (izq == BLANCO && drc == BLANCO) {
  43. if (vel > velMin) {
  44. vel = vel - 2;
  45. }
  46. } else if (izq != BLANCO && drc == BLANCO) {
  47. izquierda();
  48. if (vel < velMax) {
  49. vel = vel + 1;
  50. }
  51. } else if (izq == BLANCO && drc != BLANCO) {
  52. derecha();
  53. if (vel < velMax) {
  54. vel = vel + 1;
  55. }
  56. } else {
  57. adelante();
  58. if (vel < velMax) {
  59. vel = vel + 1;
  60. }
  61. }
  62.  
  63. analogWrite(ENA, vel);
  64. analogWrite(ENB, vel);
  65.  
  66.  
  67. }
  68.  
  69. void adelante() {
  70. digitalWrite(In1, HIGH);
  71. digitalWrite(In2, LOW);
  72. digitalWrite(In3, HIGH);
  73. digitalWrite(In4, LOW);
  74. }
  75.  
  76. void atras() {
  77. digitalWrite(In1, LOW);
  78. digitalWrite(In2, HIGH);
  79. digitalWrite(In3, LOW);
  80. digitalWrite(In4, HIGH);
  81. }
  82. void derecha() {
  83. digitalWrite(In1, LOW);
  84. digitalWrite(In2, HIGH);
  85. digitalWrite(In3, HIGH);
  86. digitalWrite(In4, LOW);
  87. delay(10);
  88. }
  89.  
  90. void izquierda() {
  91.  
  92. digitalWrite(In1, HIGH);
  93. digitalWrite(In2, LOW);
  94. digitalWrite(In3, LOW);
  95. digitalWrite(In4, HIGH);
  96. delay(10);
  97. }
  98. void parar() {
  99.  
  100. digitalWrite(In1, LOW);
  101. digitalWrite(In2, LOW);
  102. digitalWrite(In3, HIGH);
  103. digitalWrite(In4, HIGH);
  104. delay(10);
  105. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement