Guest User

Untitled

a guest
Feb 22nd, 2018
90
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.88 KB | None | 0 0
  1. int sen1, sen2,sen3,sen4;
  2.  
  3.  
  4. #define ENA_PIN 11
  5. #define ENB_PIN 6
  6. #define MOTOR_L_1 10
  7. #define MOTOR_L_2 7
  8. #define MOTOR_R_1 9
  9. #define MOTOR_R_2 8
  10.  
  11. #define FORWARD 0
  12. #define BACK 1
  13. #define LEFT 2
  14. #define RIGHT 3
  15.  
  16. int carSpeed = 150;
  17. int runTime = 2000;
  18. char blueToothVal; //value sent over via bluetooth
  19. char lastValue; //stores last state of device (on/off)
  20. uint8_t val =0;
  21. uint8_t Lval =0;
  22. long long t = 0;
  23. void setup() {
  24. // put your setup code here, to run once:
  25. pinMode(ENA_PIN, OUTPUT);
  26. pinMode(ENB_PIN, OUTPUT);
  27. pinMode(MOTOR_L_1, OUTPUT);
  28. pinMode(MOTOR_L_2, OUTPUT);
  29. pinMode(MOTOR_R_1, OUTPUT);
  30. pinMode(MOTOR_R_2, OUTPUT);
  31. Serial.begin(9600);
  32.  
  33. Serial.println("Copyright © (C) Frizman && WAndreyG");
  34.  
  35.  
  36.  
  37.  
  38. }
  39.  
  40. void loop() {
  41.  
  42. // put your main code here, to run repeatedly:
  43. val = 0;
  44. val |= digitalRead(2)<<0;
  45. val |= digitalRead(3)<<1;
  46. val |= digitalRead(4)<<2;
  47. val |= digitalRead(5)<<3;
  48. Serial.println(val);
  49. switch(val)
  50. {
  51. case 15 :
  52. CAR_move(FORWARD,250,250);t=millis();break;
  53. case 0 : if((millis()-t >2000)&&(Lval !=6)){
  54. digitalWrite(MOTOR_L_1,HIGH);
  55. digitalWrite(MOTOR_L_2,HIGH);
  56. digitalWrite(MOTOR_R_1,HIGH);
  57. digitalWrite(MOTOR_R_2,HIGH);}break;
  58.  
  59. case 9 :
  60. CAR_move(FORWARD,carSpeed,carSpeed);t=millis();break;
  61. case 6 :
  62. CAR_move(FORWARD,250,250);t=millis();break;
  63. case 3 :
  64. CAR_move(RIGHT,150,150);t=millis();break;
  65. case 7 :
  66. CAR_move(RIGHT,150,150);t=millis();break;
  67. case 12 :
  68. CAR_move(LEFT,150,150);t=millis();break;
  69. case 14 :
  70. CAR_move(LEFT,150,150);t=millis();break;
  71. case 8 :
  72. CAR_move(LEFT,150,150);t=millis();break;
  73. case 1 :
  74. CAR_move(RIGHT,150,150);t=millis();break;
  75. }
  76. Lval =val;
  77. }
  78.  
  79.  
  80.  
  81.  
  82. void CAR_move(unsigned char direction, unsigned char speed_left, unsigned char speed_right){
  83. switch(direction){
  84. case 0: digitalWrite(MOTOR_L_1,HIGH);
  85. digitalWrite(MOTOR_L_2,LOW);
  86. digitalWrite(MOTOR_R_1,HIGH);
  87. digitalWrite(MOTOR_R_2,LOW);
  88. break;
  89. case 2: digitalWrite(MOTOR_L_1,HIGH);
  90. digitalWrite(MOTOR_L_2,LOW);
  91. digitalWrite(MOTOR_R_1,HIGH);
  92. digitalWrite(MOTOR_R_2,LOW);;
  93. speed_right -= 125;
  94. speed_left += 105;
  95. break;
  96. case 3: digitalWrite(MOTOR_L_1,HIGH);
  97. digitalWrite(MOTOR_L_2,LOW);
  98. digitalWrite(MOTOR_R_1,HIGH);
  99. digitalWrite(MOTOR_R_2,LOW);
  100. speed_right += 105;
  101. speed_left -= 125;
  102. break;
  103.  
  104. default: break;
  105. }
  106. analogWrite(ENA_PIN,speed_left);
  107. analogWrite(ENB_PIN,speed_right);
  108. }
Add Comment
Please, Sign In to add comment