P.H.I.L. PHOTOVORE ROBOT int ledPin = 13; // LED connected to digital pin 13 int left_photocell = 0; //Analog input value int right_photocell = 1; //Analog input value int left_val = 0; //Initial value of LEFT photocell int right_val = 0; //Initial value of RIGHT photocell int left_motor_1a = 6; // Left Motor 1A int left_motor_2a = 7; // Left Motor 2A int left_motor_speed = 9; int right_motor_3a = 11; // Right Motor 3A int right_motor_4a = 12; // Right Motor 4A int right_motor_speed = 10; int threshold = 750; void setup() { pinMode(ledPin, OUTPUT); // sets the digital pin as output pinMode(left_motor_1a, OUTPUT); pinMode(left_motor_2a, OUTPUT); pinMode(left_motor_speed, OUTPUT); pinMode(right_motor_3a, OUTPUT); pinMode(right_motor_4a, OUTPUT); pinMode(right_motor_speed, OUTPUT); Serial.begin(9600); } void loop(){ left_val = analogRead (left_photocell); right_val = analogRead (right_photocell); //Use this part of code ON when you need to calibrate what's a shadow /*Serial.print("LEFT_"); Serial.println(left_val); Serial.println(" "); Serial.print("RIGHT_"); Serial.println(right_val); */ //Serial.println(left_val); //delay(900); if (left_val> threshold || right_val> threshold) { run_away(); } else{ walk(); } } void walk(){ // left motor: digitalWrite(left_motor_1a, LOW); // this is forward digitalWrite(left_motor_2a, HIGH); // this is forward analogWrite(left_motor_speed, 170); // 0-255 // right motor: digitalWrite(right_motor_3a, LOW); // this is forward digitalWrite(right_motor_4a, HIGH); // this is forward analogWrite(right_motor_speed, 170); // 0-255 } void run_away(){ // Temporalmente only go backwards //First just stop everything digitalWrite(left_motor_1a, LOW); // this is backwards digitalWrite(left_motor_2a, LOW); // this is backwards analogWrite(left_motor_speed, 0); // 0-255 // right motor: digitalWrite(right_motor_3a, LOW); // this is backwards digitalWrite(right_motor_4a, LOW); // this is backwards analogWrite(right_motor_speed, 0); // 0-255 delay(900); //Now turn back // left motor: digitalWrite(left_motor_1a, HIGH); // this is backwards digitalWrite(left_motor_2a, LOW); // this is backwards analogWrite(left_motor_speed, 200); // 0-255 // right motor: digitalWrite(right_motor_3a, HIGH); // this is backwards digitalWrite(right_motor_4a, LOW); // this is backwards analogWrite(right_motor_speed, 200); // 0-255 delay(900); //Turn 180 degrees // left motor: digitalWrite(left_motor_1a, LOW); // this is forward digitalWrite(left_motor_2a, HIGH); // this is forward analogWrite(left_motor_speed, 255); // 0-255 digitalWrite(right_motor_3a, HIGH); // this is backwards digitalWrite(right_motor_4a, LOW); // this is backwards analogWrite(right_motor_speed, 255); // 0-255 delay(700); }