Advertisement
Guest User

Untitled

a guest
Dec 10th, 2019
93
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 19.66 KB | None | 0 0
  1. /*
  2. Description: ECT501 - Embedded Systems, Individual task - Fault tolerance
  3. Author: Valentinas Navickas, Southampton Solent University
  4. Date: 03/12/2019
  5. */
  6. // include libraries will be used
  7. #include <QTRSensors.h>
  8. #include <Wire.h>
  9. #include <Adafruit_MotorShield.h>
  10.  
  11. // defining sensors, which is part of QTRSensor library
  12. #define NUM_SENSORS 8 // number of sensors used
  13. #define NUM_SAMPLES_PER_SENSOR 4 // average 4 analog samples per sensor reading
  14. #define EMITTER_PIN 2 // emitter is controlled by digital pin 2
  15.  
  16. /*
  17. define global variables, which will be used later
  18. state to remember state, what it was doing at that time and when it was turning left right and how hard.
  19. <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<------------------------>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>@@@@@@@@@@@@@@@@@@@@@@@@@@
  20. 0 - 90Degree Left, 1 - Hard left, 2 - Med left, 3 - Low Left, 4 - MiddleL, 5 - MiddleR, 6 - Low right, 7 - Med right, 8 - Hard right, 9 - 90Degree right, 10 - No black line found
  21. <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<------------------------>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>@@@@@@@@@@@@@@@@@@@@@@@@@@
  22. set to be default state 4 middle for now.
  23. dark is defined when sensor reads 800
  24. waiting is part of delay variable, which could be changed easily.
  25. sumSensor is variable, which stores total sum of sensorValues for later to determine, how many sensors are trigerred
  26. wasStateTen, tooManySensors, reset, noLineTimer is variables to remember, default 0
  27. */
  28. int sumSensor = 0, wasStateTen = 0, tooManySensors = 0, reset = 0, noLineTimer = 0, state = 4, dark = 800, waiting = 50;
  29.  
  30. // all 8 QTR sensors are connected to analog inputs 15 through 8, respectively
  31. QTRSensorsAnalog qtra((unsigned char[]) { 15, 14, 13, 12, 11, 10, 9, 8},
  32. NUM_SENSORS, NUM_SAMPLES_PER_SENSOR, EMITTER_PIN);
  33. unsigned int sensorValues[NUM_SENSORS];
  34.  
  35. //Motorshield library setup, first motor is set to M1 and other on M4
  36. Adafruit_MotorShield AFMS = Adafruit_MotorShield();
  37. Adafruit_DCMotor *myMotor1 = AFMS.getMotor(1);
  38. Adafruit_DCMotor *myMotor3 = AFMS.getMotor(4);
  39.  
  40. void setup() {
  41. Serial.begin(9600); // set up Serial library at 9600 bps
  42. AFMS.begin(); // create with the default frequency 1.6KHz
  43. // RELEASE function of library allows to stop motors if they are for some reason running
  44. myMotor1->run(RELEASE);
  45. myMotor3->run(RELEASE);
  46. pinMode(13, OUTPUT); //set arduino LED to an output
  47. digitalWrite(13, HIGH); // turn on Arduino's LED to indicate we are in calibration mode
  48. Serial.println("Calibrating");
  49.  
  50. // make the calibration take about 10 seconds
  51. for (int i = 0; i < 400; i++)
  52. {
  53. qtra.calibrate(); // reads all sensors 10 times at 2.5 ms per six sensors (i.e. ~25 ms per call)
  54. }
  55. digitalWrite(13, LOW); // turn off Arduino's LED to indicate we are through with calibration
  56.  
  57. // print the calibration minimum values measured when emitters were on
  58. for (int i = 0; i < NUM_SENSORS; i++)
  59. {
  60. Serial.print(qtra.calibratedMinimumOn[i]);
  61. Serial.print(' ');
  62. }
  63. Serial.println();
  64.  
  65. // print the calibration maximum values measured when emitters were on
  66. for (int i = 0; i < NUM_SENSORS; i++)
  67. {
  68. Serial.print(qtra.calibratedMaximumOn[i]);
  69. Serial.print(' ');
  70. }
  71. Serial.println();
  72. }
  73.  
  74. void loop() {
  75. // Function to update all sensor readins and variables
  76. updateValues();
  77. //
  78. if(sumSensor >= 3500){
  79. tooManySensors = 1; //If it triggers too many sensors, which is sum of all current sensor values, set that variable to 1
  80. }
  81. if(sumSensor < 3500){
  82. tooManySensors = 0; //opposite of above.
  83. }
  84.  
  85. //if at any time, sensors detects no black line, set state variable to 10
  86. if(sensorValues[0] < dark && sensorValues[1] < dark && sensorValues[2] < dark && sensorValues[3] < dark && sensorValues[4] < dark && sensorValues[5] < dark && sensorValues[6] < dark && sensorValues[7] < dark){
  87. state = 10;
  88. }
  89.  
  90. //whatever we set reset = 1, we will trigger this part where it will reset our timer and set state accordigly, which sensor was triggered at that time
  91. if(reset == 1){
  92. reset = 0;
  93. noLineTimer = 0;
  94. wasStateTen = 0;
  95. rememberState();
  96. }
  97.  
  98. //////////////WHEN NO WHITE LINE DETECTED, WAIT FOR 3S BEFORE SEARCHING////////////////////////////
  99. // if state was 10 (at any point no black line detected and this part was not reached before
  100. if(state == 10 && wasStateTen == 0){
  101.  
  102. //if at any point line is detected, set reset to = 1, which will later reset the state and trigger line following algorithm.
  103. if(sensorValues[0] > dark || sensorValues[1] > dark || sensorValues[2] > dark || sensorValues[3] > dark || sensorValues[4] > dark || sensorValues[5] > dark || sensorValues[6] > dark || sensorValues[7] > dark){
  104. reset = 1;
  105. }
  106.  
  107. //If robot has reached timer 3s and during that time it has not found black line
  108. if(noLineTimer >= 3000){
  109. //myMotor1->run(BACKWARD);
  110. //myMotor3->run(FORWARD);
  111. //myMotor1->setSpeed(75);
  112. //myMotor3->setSpeed(75);
  113. Serial.println("no black line FOUND do something like circle");
  114. wasStateTen = 1; //Once we set this variable, we will never come back here until we reset it
  115. }
  116.  
  117. //If timer is not reached, update timer add 100ms
  118. else{
  119. noLineTimer = noLineTimer + 100;
  120. delay(100);
  121. }
  122. }
  123.  
  124. //If robot has waited 3s and did not find line, do this continuisly until it finds
  125. while(wasStateTen == 1){
  126. updateValues();
  127. if(sensorValues[0] > dark || sensorValues[1] > dark || sensorValues[2] > dark || sensorValues[3] > dark || sensorValues[4] > dark || sensorValues[5] > dark || sensorValues[6] > dark || sensorValues[7] > dark){
  128. wasStateTen = 0;
  129. reset = 1; //if at any point line is detected, set reset to = 1, which will later reset the state and trigger line following algorithm.
  130. }
  131. if(wasStateTen == 0){
  132. myMotor1->run(FORWARD);
  133. myMotor3->run(FORWARD);
  134. myMotor1->setSpeed(40);
  135. myMotor3->setSpeed(75);
  136. delay(waiting);
  137. }
  138. } //while wasStateTen 1
  139.  
  140. ///////////////////////SIMPLE LINE FOLLOWER/////////////////////////////
  141. //If robot have not triggered many sensors and our current state is not 10(no black line)
  142. if(tooManySensors == 0 && state != 10){
  143. int wasUsed = 0; //Sensor readings could read dark for more than 1 sensor, this will ensure condition is only triggered once
  144. Serial.println("toomanysensors = 0");
  145.  
  146. //90 Degree will be checked first before following simple line///////////////////////
  147. if(sensorValues[0] > dark && sensorValues[1] > dark && sensorValues[2] > dark && sensorValues[3] > dark && wasUsed == 0){
  148. myMotor1->run(FORWARD);
  149. myMotor3->run(BACKWARD);
  150. myMotor1->setSpeed(75);
  151. myMotor3->setSpeed(25); // was 25
  152. Serial.println("right for 90 DEGREE");
  153. wasUsed = 1;
  154. delay(waiting);
  155. }
  156. if(sensorValues[4] > dark && sensorValues[5] > dark && sensorValues[6] > dark && sensorValues[7] > dark && wasUsed == 0){
  157. myMotor1->run(BACKWARD);
  158. myMotor3->run(FORWARD);
  159. myMotor1->setSpeed(25);
  160. myMotor3->setSpeed(75); // was 25
  161. Serial.println("left for 90 DEGREE");
  162. wasUsed = 1;
  163. delay(waiting);
  164. }
  165. //90 Degree will be checked first before following simple line///////////////////////
  166.  
  167. //left hard
  168. if(sensorValues[7] > dark && wasUsed == 0){
  169. myMotor1->run(BACKWARD);
  170. myMotor3->run(FORWARD);
  171. myMotor1->setSpeed(30);
  172. myMotor3->setSpeed(110);
  173. Serial.println("left hard when toomanysensor = 0");
  174. wasUsed = 1;
  175. delay(waiting);
  176. }
  177.  
  178. //left medium
  179. if(sensorValues[6] > dark && wasUsed == 0){
  180. myMotor1->run(BACKWARD);
  181. myMotor3->run(FORWARD);
  182. myMotor1->setSpeed(30);
  183. myMotor3->setSpeed(100);
  184. Serial.println("left medium when toomanysensor = 0");
  185. wasUsed = 1;
  186. delay(waiting);
  187. }
  188.  
  189. //left low
  190. if(sensorValues[5] > dark && wasUsed == 0){
  191. myMotor1->run(FORWARD);
  192. myMotor3->run(FORWARD);
  193. myMotor1->setSpeed(50);
  194. myMotor3->setSpeed(75); // was 25
  195. Serial.println("left low when toomanysensor = 0");
  196. wasUsed = 1;
  197. delay(waiting);
  198. }
  199.  
  200. //forward
  201. if((sensorValues[4] > dark || sensorValues[3] > dark) && wasUsed == 0){
  202. myMotor1->run(FORWARD);
  203. myMotor3->run(FORWARD);
  204. myMotor1->setSpeed(70);
  205. myMotor3->setSpeed(75);
  206. Serial.println("forward when toomanysensor = 0");
  207. wasUsed = 1;
  208. delay(waiting);
  209. }
  210.  
  211. //right low
  212. if(sensorValues[2] > dark && wasUsed == 0){
  213. myMotor1->run(FORWARD);
  214. myMotor3->run(FORWARD);
  215. myMotor1->setSpeed(75);
  216. myMotor3->setSpeed(50); // was 25
  217. Serial.println("right low when toomanysensor = 0");
  218. wasUsed = 1;
  219. delay(waiting);
  220. }
  221.  
  222. //right medium
  223. if(sensorValues[1] > dark && wasUsed == 0){
  224. myMotor1->run(FORWARD);
  225. myMotor3->run(BACKWARD);
  226. myMotor1->setSpeed(100);
  227. myMotor3->setSpeed(30); // was 25
  228. Serial.println("right medium when toomanysensor = 0");
  229. wasUsed = 1;
  230. delay(waiting);
  231. }
  232.  
  233. //right hard
  234. if(sensorValues[0] > dark && wasUsed == 0){
  235. myMotor1->run(FORWARD);
  236. myMotor3->run(BACKWARD);
  237. myMotor1->setSpeed(110);
  238. myMotor3->setSpeed(30); // was 25
  239. Serial.println("right hard when toomanysensor = 0");
  240. wasUsed = 1;
  241. delay(waiting);
  242. }
  243. rememberState(); //At the very end it is important to remember, where we triggered sensor and this function allows to remember
  244. }// simple line follower ends here
  245. ///////////////////////SIMPLE LINE FOLLOWER/////////////////////////////
  246.  
  247. /*
  248. state to remember state, when it was turning left right and how hard.
  249. <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<----------->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  250. 0 - 90Degree Left, 1 - Hard left, 2 - Med left, 3 - Low Left, 4 - MiddleL, 5 - MiddleR, 6 - Low right, 7 - Med right, 8 - Hard right, 9 - 90Degree right, 10 - No black line found
  251. set to be default middle for now.
  252. state 0 and state 9 is not used in this code, but might be utilized later.
  253. */
  254. //////////////////////// LINE FOLLOWER WHEN TOO MANY SENSORS ARE TRIGERRED ///////////////////////////////////
  255. // essential to have different code to follow spiral line seperatly as it triggers many sensors
  256. //If robot have triggered many sensors and our current state is not equal to state 10(no black line)
  257.  
  258. if(tooManySensors == 1 && state != 10){
  259. Serial.println("toomanysensors = 1");
  260.  
  261. if(sensorValues[0] > dark){
  262. //if robot wants to turn right hard, check if our state was 7(right med)
  263. if(state == 7){
  264. myMotor1->run(FORWARD);
  265. myMotor3->run(BACKWARD);
  266. myMotor1->setSpeed(110);
  267. myMotor3->setSpeed(50); // was 25
  268. Serial.println("right hard");
  269. state = 8; //update state that robot was turning right hard at that time
  270. }
  271. }
  272. if(sensorValues[1] > dark){
  273. //if robot wants to turn right med, check if our state was 6(right low) or state 8(right hard)
  274. if(state == 6 || state == 8){
  275. myMotor1->run(FORWARD);
  276. myMotor3->run(BACKWARD);
  277. myMotor1->setSpeed(100);
  278. myMotor3->setSpeed(30); // was 25
  279. Serial.println("right medium");
  280. state = 7; //update state that robot was turning right medium at that time
  281. }
  282. }
  283. if(sensorValues[2] > dark){
  284. //if robot wants to turn right low, check if our state was 5(MiddleR) or state 7(right med)
  285. if(state == 5 || state == 7){
  286. myMotor1->run(FORWARD);
  287. myMotor3->run(FORWARD);
  288. myMotor1->setSpeed(75);
  289. myMotor3->setSpeed(50); // was 25
  290. Serial.println("right low");
  291. state = 6; //update state that robot was turning right low at that time
  292. }
  293. }
  294. if(sensorValues[3] > dark){
  295. //if robot wants to turn right low, check if our state was 4(MiddleL) or state 6(low right)
  296. if(state == 4 || state == 6){
  297. myMotor1->run(FORWARD);
  298. myMotor3->run(FORWARD);
  299. myMotor1->setSpeed(75);
  300. myMotor3->setSpeed(65);
  301. Serial.println("Middle to Right");
  302. state = 5; //update state that robot was turning MiddleR at that time
  303. }
  304. }
  305. if(sensorValues[4] > dark){
  306. //if robot wants to turn right low, check if our state was 3(low left) or state 5(MiddleR)
  307. if(state == 3 || state == 5){
  308. myMotor1->run(FORWARD);
  309. myMotor3->run(FORWARD);
  310. myMotor1->setSpeed(65);
  311. myMotor3->setSpeed(75);
  312. Serial.println("Middle to Left");
  313. state = 4; //update state that robot was turning MiddleL at that time
  314. }
  315. }
  316. if(sensorValues[5] > dark){
  317. //if robot wants to turn right low, check if our state was 2(med left) or state 4(MiddleL)
  318. if(state == 2 || state == 4){
  319. myMotor1->run(FORWARD);
  320. myMotor3->run(FORWARD);
  321. myMotor1->setSpeed(50);
  322. myMotor3->setSpeed(75); // was 25
  323. Serial.println("Left Low");
  324. state = 3; //update state that robot was turning left low at that time
  325. }
  326. }
  327. if(sensorValues[6] > dark){
  328. //if robot wants to turn right low, check if our state was 1(Hard left) or state 3(low left)
  329. if(state == 1 || state == 3){
  330. myMotor1->run(BACKWARD);
  331. myMotor3->run(FORWARD);
  332. myMotor1->setSpeed(30);
  333. myMotor3->setSpeed(100); // was 25
  334. Serial.println("Left Middle");
  335. state = 2; //update state that robot was turning left middle at that time
  336. }
  337. }
  338. if(sensorValues[7] > dark){
  339. //if robot wants to turn left hard, check if our state was 2(left med)
  340. if(state == 2){
  341. myMotor1->run(BACKWARD);
  342. myMotor3->run(FORWARD);
  343. myMotor1->setSpeed(50);
  344. myMotor3->setSpeed(110); // was 25
  345. Serial.println("Left Hard");
  346. state = 1; //update state that robot was turning left hard at that time
  347. ////delay(waiting);(waiting);(waiting);
  348. }
  349. }
  350. }//While toomanysensors == 1
  351. //////////////////////// LINE FOLLOWER WHEN TOO MANY SENSORS ARE TRIGERRED ///////////////////////////////////
  352.  
  353. } //LOOP
  354.  
  355. /*
  356. state to remember state, when it was turning left right and how hard.
  357. <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<----------->>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
  358. 0 - 90Degree Left, 1 - Hard left, 2 - Med left, 3 - Low Left, 4 - MiddleL, 5 - MiddleR, 6 - Low right, 7 - Med right, 8 - Hard right, 9 - 90Degree right, 10 - No black line found
  359. set to be default middle for now.
  360. */
  361. void updateValues(){
  362. for (unsigned char i = 0; i < NUM_SENSORS; i++)
  363. {
  364. Serial.print(sensorValues[i]);
  365. Serial.print('\t');
  366. }
  367. for (int i = 0; i < NUM_SENSORS; i++){
  368. sumSensor += sensorValues[i];
  369. }
  370. Serial.print(state);
  371. Serial.print('\t');
  372. Serial.println(sumSensor);
  373. Serial.print("No line timer ");
  374. Serial.print(noLineTimer);
  375. }
  376.  
  377. void rememberState(){
  378. if(sensorValues[0] > dark){
  379. Serial.println("Reseted state to 8");
  380. state = 8;
  381. }
  382. if(sensorValues[1] > dark){
  383. Serial.println("Reseted state to 7");
  384. state = 7;
  385. }
  386. if(sensorValues[2] > dark){
  387. Serial.println("Reseted state to 6");
  388. state = 6;
  389. }
  390. if(sensorValues[3] > dark){
  391. Serial.println("Reseted state to 5");
  392. state = 5;
  393. }
  394. if(sensorValues[4] > dark){
  395. Serial.println("Reseted state to 4");
  396. state = 4;
  397. }
  398. if(sensorValues[5] > dark){
  399. Serial.println("Reseted state to 3");
  400. state = 3;
  401. }
  402. if(sensorValues[6] > dark){
  403. Serial.println("Reseted state to 2");
  404. state = 2;
  405. }
  406. if(sensorValues[7] > dark){
  407. Serial.println("Reseted state to 1");
  408. state = 1;
  409. }
  410. }
  411.  
  412.  
  413.  
  414.  
  415.  
  416.  
  417.  
  418.  
  419.  
  420. /*
  421. if(sensorValues[0] > dark || sensorValues[1] > dark || sensorValues[2] > dark){
  422. if(sensorValues[2] > dark){
  423. myMotor1->run(FORWARD);
  424. myMotor3->run(BACKWARD);
  425. myMotor1->setSpeed(75);
  426. myMotor3->setSpeed(50); // was 25
  427. Serial.println("right low");
  428. state = 5;
  429. lcd.setCursor(0,0);
  430. lcd.print("right LOW ");
  431. ////delay(waiting);(waiting);(50);
  432. }
  433. else if(sensorValues[1] > dark && state >= 5){
  434. myMotor1->run(FORWARD);
  435. myMotor3->run(BACKWARD);
  436. myMotor1->setSpeed(100);
  437. myMotor3->setSpeed(30); // was 25
  438. Serial.println("right medium");
  439. state = 6;
  440. lcd.setCursor(0,0);
  441. lcd.print("right MEDIUM ");
  442. ////delay(waiting);(waiting);(50);
  443. }
  444. else if(sensorValues[0] > dark && state >= 5){
  445. myMotor1->run(FORWARD);
  446. myMotor3->run(FORWARD);
  447. myMotor1->setSpeed(110);
  448. myMotor3->setSpeed(30); // was 25
  449. Serial.println("right hard");
  450. state = 7;
  451. lcd.setCursor(0,0);
  452. lcd.print("right HARD ");
  453. ////delay(waiting);(waiting);(50);
  454. }
  455. else{
  456. state = 4;
  457. ////delay(waiting);(waiting);(50);
  458. }
  459. }
  460.  
  461.  
  462. if(sensorValues[7] > dark || sensorValues[6] > dark || sensorValues[5] > dark){
  463. if(sensorValues[5] > dark){
  464. myMotor1->run(FORWARD);
  465. myMotor3->run(BACKWARD);
  466. myMotor1->setSpeed(50);
  467. myMotor3->setSpeed(75); // was 25
  468. Serial.println("left low");
  469. state = 3;
  470. lcd.setCursor(0,0);
  471. lcd.print("left LOW ");
  472. ////delay(waiting);(waiting);(50);
  473. }
  474. else if(sensorValues[6] > dark && state >= 3){
  475. myMotor1->run(FORWARD);
  476. myMotor3->run(BACKWARD);
  477. myMotor1->setSpeed(30);
  478. myMotor3->setSpeed(100); // was 25
  479. Serial.println("left medium");
  480. state = 2;
  481. lcd.setCursor(0,0);
  482. lcd.print("left MEDIUM");
  483. ////delay(waiting);(waiting);(50);
  484. }
  485. else if(sensorValues[7] > dark && state >= 3){
  486. myMotor1->run(BACKWARD);
  487. myMotor3->run(BACKWARD);
  488. myMotor1->setSpeed(30);
  489. myMotor3->setSpeed(110); // was 25
  490. Serial.println("left hard");
  491. state = 1;
  492. lcd.setCursor(0,0);
  493. lcd.print("left HARD ");
  494. ////delay(waiting);(waiting);(50);
  495. }
  496. else{
  497. state = 4;
  498. ////delay(waiting);(waiting);(50);
  499. }
  500. }
  501. if(sensorValues[4] > dark && sensorValues[3] > dark){
  502. myMotor1->run(FORWARD);
  503. myMotor3->run(BACKWARD);
  504. myMotor1->setSpeed(75);
  505. myMotor3->setSpeed(70);
  506. Serial.println("foward");
  507. state = 4;
  508. //////delay(waiting);(waiting); (1000);
  509. lcd.setCursor(0,0);
  510. lcd.print("Forward");
  511. }
  512. //////////////////////////// 90 degree angles///////////////////////////////
  513. if(sensorValues[4] > dark && sensorValues[3] > dark && sensorValues[0] > dark && sensorValues[1] > dark && sensorValues[2] > dark){
  514. myMotor1->run(FORWARD);
  515. myMotor3->run(FORWARD);
  516. myMotor1->setSpeed(75);
  517. myMotor3->setSpeed(25); // was 25
  518. Serial.println("right for 90 DEGREE");
  519. state = 8;
  520. lcd.setCursor(0,0);
  521. lcd.print("right for 90 DEGREE ");
  522. ////delay(waiting);(waiting);(100);
  523. }
  524. if(sensorValues[4] > dark && sensorValues[3] > dark && sensorValues[7] > dark && sensorValues[6] > dark && sensorValues[5] > dark){
  525. myMotor1->run(BACKWARD);
  526. myMotor3->run(BACKWARD);
  527. myMotor1->setSpeed(25);
  528. myMotor3->setSpeed(75); // was 25
  529. Serial.println("left for 90 DEGREE");
  530. state = 0;
  531. ////delay(waiting);(waiting);(100);
  532. }
  533. //////////////////////////// 90 degree angles///////////////////////////////
  534. if()
  535. myMotor1->run(FORWARD);
  536. myMotor3->run(BACKWARD);
  537. myMotor1->setSpeed(s);
  538. myMotor3->setSpeed(t); // was 25
  539. s = s + 5;
  540. t = t = 3
  541. ////delay(waiting);(waiting);(100);
  542. }
  543. else{
  544. s = 50;
  545. t = 30;
  546. }
  547. */
  548.  
  549. /*
  550. if(sensorValues[0] > 800)
  551. {
  552. lcd.setCursor(0,0);
  553. lcd.print("Reading 1");
  554. }
  555. if(sensorValues[1] > 800)
  556. {
  557. lcd.setCursor(0,0);
  558. lcd.print("Reading 2");
  559. }
  560. if(sensorValues[2] > 800)
  561. {
  562. lcd.setCursor(0,0);
  563. lcd.print("Reading 3");
  564. }
  565. if(sensorValues[3] > 800)
  566. {
  567. lcd.setCursor(0,0);
  568. lcd.print("Reading 4");
  569. }
  570. if(sensorValues[4] > 800)
  571. {
  572. lcd.setCursor(0,0);
  573. lcd.print("Reading 5");
  574. }
  575. if(sensorValues[5] > 800)
  576. {
  577. lcd.setCursor(0,0);
  578. lcd.print("Reading 6");
  579. }
  580. if(sensorValues[6] > 800)
  581. {
  582. lcd.setCursor(0,0);
  583. lcd.print("Reading 7");
  584. }
  585. if(sensorValues[7] > 800)
  586. {
  587. lcd.setCursor(0,0);
  588. lcd.print("Reading 8");
  589. }
  590. */
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement