safwan092

Car Robot BLDC BT Simple MIT App Inventor

Nov 21st, 2024
72
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.62 KB | None | 0 0
  1. #include <SoftwareSerial.h>
  2.  
  3. SoftwareSerial mySerial(7, 6); // RX, TX
  4.  
  5.  
  6. //////////////////////////////////////////////////////////////////////////
  7. //Left Motors Pin Connections To Arduino Uno
  8. //////////////////////////////////////////////////////////////////////////
  9. const int L_Motor_PIN_DIR = 2; // Motor direction signal
  10. const int L_Motor_PIN_BRK = 3; // Motor Break signal
  11. const int L_Motor_PIN_PWM = 9; // 490Hz pins 3, 9, 10, 11
  12. const int L_Motor_PIN_S = 12; // Motor Speed Input signal
  13. //////////////////////////////////////////////////////////////////////////
  14. //------------------------------------------------------------------------
  15. //////////////////////////////////////////////////////////////////////////
  16. //Right Motors Pin Connections To Arduino Uno
  17. //////////////////////////////////////////////////////////////////////////
  18. const int R_Motor_PIN_DIR = 4; // Motor direction signal
  19. const int R_Motor_PIN_BRK = 5; // Motor Break signal
  20. const int R_Motor_PIN_PWM = 10; // 490Hz pins 3, 9, 10, 11
  21. const int R_Motor_PIN_S = 11; // Motor Speed Input signal
  22. //////////////////////////////////////////////////////////////////////////
  23. int set_Speed = 25;
  24. int tSafeTime = 100;
  25. int timeForEachMotion = 500;
  26.  
  27.  
  28. unsigned char Bluetooth_val;
  29.  
  30.  
  31. void hornON() {
  32. digitalWrite(13, 1);
  33. }
  34. void hornOFF() {
  35. digitalWrite(13, 0);
  36. }
  37.  
  38. void setup() {
  39. pinMode(13, OUTPUT);
  40. Serial.begin(9600);
  41. mySerial.begin(9600);
  42. setupMotorDriversPins();
  43. Break_All_Motors();
  44.  
  45. }
  46.  
  47. void loop() {
  48. readingBT();
  49. }//end of Loop
  50.  
  51.  
  52. void readingBT() {
  53. if (mySerial.available()) {
  54. Bluetooth_val = mySerial.read();
  55. Serial.println(char(Bluetooth_val));
  56. switch (Bluetooth_val)
  57. {
  58. case '1':
  59. Front (set_Speed, timeForEachMotion);
  60. //safeGuardMotors();
  61. //Break_All_Motors();
  62. break;
  63. case '2':
  64. Back (set_Speed, timeForEachMotion);
  65. //safeGuardMotors();
  66. // Break_All_Motors();
  67. break;
  68. case '3':
  69. Left (set_Speed, timeForEachMotion);
  70. //safeGuardMotors();
  71. // Break_All_Motors();
  72. break;
  73. case '4':
  74. Right (set_Speed, timeForEachMotion);
  75. //safeGuardMotors();
  76. //Break_All_Motors();
  77. break;
  78. case '5': Break_All_Motors();
  79. break;
  80. case 'G': Break_All_Motors();
  81. break;
  82. case 'I': Break_All_Motors();
  83. break;
  84. case 'H': Break_All_Motors();
  85. break;
  86. case 'J': Break_All_Motors();
  87. break;
  88. case 'W': Break_All_Motors();
  89. break;
  90. case 'w': Break_All_Motors();
  91. break;
  92. case 'U': Break_All_Motors();
  93. break;
  94. case 'u': Break_All_Motors();
  95. break;
  96. case 'V': hornON();
  97. break;
  98. case 'v': hornOFF();
  99. break;
  100. case 'X': Break_All_Motors();
  101. break;
  102. case 'x': Break_All_Motors();
  103. break;
  104. case 'D': Break_All_Motors();
  105. break;
  106. }
  107. }
  108. }
  109.  
  110.  
  111.  
  112. void setupMotorDriversPins() {
  113. pinMode(L_Motor_PIN_DIR, OUTPUT);
  114. pinMode(L_Motor_PIN_BRK, OUTPUT);
  115. pinMode(L_Motor_PIN_PWM, OUTPUT);
  116. pinMode(L_Motor_PIN_S, INPUT);
  117. pinMode(R_Motor_PIN_DIR, OUTPUT);
  118. pinMode(R_Motor_PIN_BRK, OUTPUT);
  119. pinMode(R_Motor_PIN_PWM, OUTPUT);
  120. pinMode(R_Motor_PIN_S, INPUT);
  121. }
  122.  
  123. void Break_All_Motors() {
  124. digitalWrite(L_Motor_PIN_BRK, 1);
  125. digitalWrite(R_Motor_PIN_BRK, 1);
  126. }
  127.  
  128. void Front(int setTheSpeed, int timeToDelay) {
  129. safeGuardMotors();
  130. analogWrite(L_Motor_PIN_PWM, setTheSpeed);//15
  131. analogWrite(R_Motor_PIN_PWM, setTheSpeed);//15
  132. digitalWrite(L_Motor_PIN_DIR, 1);
  133. digitalWrite(R_Motor_PIN_DIR, 0);
  134. delay(timeToDelay);
  135. }
  136.  
  137. void Back(int setTheSpeed, int timeToDelay) {
  138. safeGuardMotors();
  139. analogWrite(L_Motor_PIN_PWM, setTheSpeed);//15
  140. analogWrite(R_Motor_PIN_PWM, setTheSpeed);//15
  141. digitalWrite(L_Motor_PIN_DIR, 0);
  142. digitalWrite(R_Motor_PIN_DIR, 1);
  143. delay(timeToDelay);
  144. }
  145.  
  146.  
  147. void Right(int setTheSpeed, int timeToDelay) {
  148. safeGuardMotors();
  149. analogWrite(L_Motor_PIN_PWM, setTheSpeed);//15
  150. analogWrite(R_Motor_PIN_PWM, setTheSpeed);//15
  151. digitalWrite(L_Motor_PIN_DIR, 1);
  152. digitalWrite(R_Motor_PIN_DIR, 1);
  153. delay(timeToDelay);
  154. }
  155.  
  156. void Left(int setTheSpeed, int timeToDelay) {
  157. safeGuardMotors();
  158. analogWrite(L_Motor_PIN_PWM, setTheSpeed);//15
  159. analogWrite(R_Motor_PIN_PWM, setTheSpeed);//15
  160. digitalWrite(L_Motor_PIN_DIR, 0);
  161. digitalWrite(R_Motor_PIN_DIR, 0);
  162. delay(timeToDelay);
  163. }
  164.  
  165. void safeGuardMotors() {
  166. delay(tSafeTime);
  167. digitalWrite(L_Motor_PIN_BRK, 0);
  168. digitalWrite(R_Motor_PIN_BRK, 0);
  169. delay(tSafeTime);
  170. }
  171.  
  172.  
Advertisement
Add Comment
Please, Sign In to add comment