Advertisement
Guest User

Untitled

a guest
Jun 22nd, 2017
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 4.95 KB | None | 0 0
  1.  
  2. int switchPin= 3; //  bump switch on pin 3
  3. int swval; // Variable for reading switch status
  4. int ultraSoundSignal = 2; // Ultrasound signal pin
  5. int val = 0;
  6. int ultrasoundValue = 0;
  7. int timecount = 0; // Echo counter
  8. //int ledPin = 13; // LED connected to digital pin 13
  9.  
  10. //left motor
  11. int InA1 = 7;
  12. int InB1 = 6;
  13. int PWM1 = 5;  //PWM1 connects to pin 5
  14.  
  15. //right motor
  16. int InA2 = 8;
  17. int InB2 = 9;
  18. int PWM2 = 10;  //PWM1 connects to pin 10
  19.  
  20. //pwm values
  21. int PWM1_val = 255; //(25% = 64; 50% = 127; 75% = 191; 100% = 255)
  22. int PWM2_val = 191; //(25% = 64; 50% = 127; 75% = 191; 100% = 255)
  23. int PWM3_val = 127; //(25% = 64; 50% = 127; 75% = 191; 100% = 255)
  24. int PWM4_val = 64;
  25.  
  26.  
  27.  
  28. void setup() {
  29.   pinMode(switchPin, INPUT); // Sets the digital pin as input
  30.   //pinMode(ledPin, OUTPUT); // Sets the digital pin as output
  31.  
  32.   pinMode(InA1, OUTPUT);
  33.   pinMode(InB1, OUTPUT);
  34.   pinMode(PWM1, OUTPUT);
  35.  
  36.   pinMode(InA2, OUTPUT);
  37.   pinMode(InB2, OUTPUT);
  38.   pinMode(PWM2, OUTPUT);
  39. }
  40.  
  41. void loop() {
  42.  
  43.  
  44.  
  45. /* Start Scan
  46. * --------------------------------------------------
  47. */{
  48. timecount = 0;
  49. val = 0;
  50. pinMode(ultraSoundSignal, OUTPUT); // Switch signalpin to output
  51.  
  52. /* Send low-high-low pulse to activate the trigger pulse of the sensor
  53. * -------------------------------------------------------------------
  54. */
  55.  
  56. digitalWrite(ultraSoundSignal, LOW); // Send low pulse
  57. delayMicroseconds(2); // Wait for 2 microseconds
  58. digitalWrite(ultraSoundSignal, HIGH); // Send high pulse
  59. delayMicroseconds(5); // Wait for 5 microseconds
  60. digitalWrite(ultraSoundSignal, LOW); // Holdoff
  61.  
  62. /* Listening for echo pulse
  63. * -------------------------------------------------------------------
  64. */
  65.  
  66. pinMode(ultraSoundSignal, INPUT); // Switch signalpin to input
  67. val = digitalRead(ultraSoundSignal); // Append signal value to val
  68. while(val == LOW) { // Loop until pin reads a high value
  69. val = digitalRead(ultraSoundSignal);
  70. }
  71.  
  72. while(val == HIGH) { // Loop until pin reads a high value
  73. val = digitalRead(ultraSoundSignal);
  74. timecount = timecount +1; // Count echo pulse time
  75. }
  76.  
  77. /* Lite up LED if any value is passed by the echo pulse
  78. * -------------------------------------------------------------------
  79. */
  80.  
  81. //if(timecount > 0){
  82. //digitalWrite(ledPin, HIGH);
  83. //delay(50); //LED on for 50 microseconds
  84. //digitalWrite(ledPin, LOW);
  85. {
  86.  
  87. /* Delay of program
  88. * -------------------------------------------------------------------
  89. */
  90.  
  91. delay(100);
  92.  
  93. }
  94. /* Action based on data
  95. * -------------------------------------------------------------------
  96. */
  97.  
  98. {
  99. ultrasoundValue = timecount; // Append echo pulse time to ultrasoundValue
  100.  
  101.  
  102. }
  103. if (ultrasoundValue > 1100) // set distance to objects, 1200/pwm3 for outside, 1000/pwm4 for inside
  104.  
  105.  
  106. {
  107. /* Drive straight forward
  108. *-----------------------------------------------
  109. */
  110. digitalWrite(InA1, LOW);
  111. digitalWrite(InB1, HIGH);
  112. analogWrite(PWM1, PWM3_val);
  113.  
  114. digitalWrite(InA2, LOW);
  115. digitalWrite(InB2, HIGH);
  116. analogWrite(PWM2, PWM3_val);
  117.  
  118. }
  119. /*------------------------------------------------
  120. */
  121. else
  122. /* Turn hard right
  123. *---------------------------------------------
  124. */
  125. {
  126. digitalWrite(InA1, HIGH);
  127. digitalWrite(InB1, HIGH);
  128. analogWrite(PWM1, PWM3_val);
  129. digitalWrite(InA2, HIGH);
  130. digitalWrite(InB2, HIGH);
  131. analogWrite(PWM2, PWM3_val);
  132. delay(250);
  133.  
  134. digitalWrite(InA1, LOW);
  135. digitalWrite(InB1, HIGH);
  136. analogWrite(PWM1, PWM3_val);
  137.    
  138. digitalWrite(InA2, HIGH);
  139. digitalWrite(InB2, LOW);
  140. analogWrite(PWM2, PWM3_val);
  141. delay(350);
  142.  
  143. digitalWrite(InA1, HIGH);
  144. digitalWrite(InB1, HIGH);
  145. analogWrite(PWM1, PWM3_val);
  146. digitalWrite(InA2, HIGH);
  147. digitalWrite(InB2, HIGH);
  148. analogWrite(PWM2, PWM3_val);
  149. delay(250);
  150.  
  151.  
  152.  
  153. /*----------------------------------------------
  154. */
  155. }
  156.  
  157. /* Backup and turn right when switch gets bumped and closes circuit to ground
  158. *---------------------------------------------------
  159. */
  160. /*
  161. */
  162.  
  163. digitalWrite(switchPin, HIGH); // Sets the pin to high
  164. swval = digitalRead(switchPin); // Read input value and store it
  165. if (swval == LOW) {
  166.  
  167. digitalWrite(InA1, HIGH);
  168. digitalWrite(InB1, HIGH);
  169. digitalWrite(InA2, HIGH);
  170. digitalWrite(InB2, HIGH);
  171.  
  172.  
  173. delay(100);
  174.  
  175. digitalWrite(InA1, HIGH);
  176. digitalWrite(InB1, LOW);
  177. analogWrite(PWM1, PWM3_val);
  178.  
  179.  digitalWrite(InA2, HIGH);
  180.  digitalWrite(InB2, LOW);
  181.  analogWrite(PWM2, PWM3_val);
  182.  
  183.  delay(500);
  184.  
  185.   digitalWrite(InA1, HIGH);
  186. digitalWrite(InB1, HIGH);
  187. analogWrite(PWM1, PWM1_val);
  188.    
  189. digitalWrite(InA2, HIGH);
  190. digitalWrite(InB2, HIGH);
  191. analogWrite(PWM2, PWM2_val);
  192.  
  193. delay(250);
  194.  
  195.  digitalWrite(InA1, HIGH);
  196. digitalWrite(InB1, LOW);
  197. analogWrite(PWM1, PWM1_val);
  198.    
  199. digitalWrite(InA2, LOW);
  200. digitalWrite(InB2, HIGH);
  201. analogWrite(PWM2, PWM2_val);
  202. delay(200);
  203.  
  204.    digitalWrite(InA1, HIGH);
  205. digitalWrite(InB1, HIGH);
  206. analogWrite(PWM1, PWM1_val);
  207.    
  208. digitalWrite(InA2, HIGH);
  209. digitalWrite(InB2, HIGH);
  210. analogWrite(PWM2, PWM2_val);
  211.  
  212. delay(250);
  213.  
  214.  
  215. }
  216.  
  217. /*------------------------------------------------
  218. */
  219.  
  220.  
  221. }
  222. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement