uni

Thing1's amazing uni repo
Log | Files | Refs

lines.ino (766B)


      1 #include "helper.h"
      2 
      3 int prevDir = -1;
      4 
      5 void
      6 setup() {
      7 	delay(3000);
      8 	setupRobot();
      9 }
     10 
     11 void loop() { 
     12 	setLEDs(LOW, LOW, LOW);
     13 	bool left = !isLDRBright(LDRA),
     14 	     mid = !isLDRBright(LDRB),
     15 	     right = !isLDRBright(LDRC);
     16 
     17 	if (right)
     18 		prevDir = RGT;
     19 	else if (left)
     20 		prevDir = LFT;
     21 
     22 	if (left && mid) {
     23 		stepRGT();
     24 	} else if (right && mid) {
     25 		stepLFT();
     26 	} else if (!mid && !left && !right) {
     27 		for (int i = 0; i < 20; i++)
     28 			stepMove(FWD);
     29 	} else {
     30 		while (!(!mid && !left && !right) 
     31 				&& !(right && mid) 
     32 				&& !(left && mid)) {
     33 			switch (prevDir) {
     34 			case LFT: stepLFT(); break;
     35 			case RGT: stepRGT(); break;
     36 			default: stepRGT(); break;
     37 			}
     38 			left = !isLDRBright(LDRA);
     39 			mid = !isLDRBright(LDRB);
     40 			right = !isLDRBright(LDRC);
     41 		}
     42 	}
     43 }