int leftEnablePin = 11; //setting up the pins for the motors int left1Pin = 13; int left2Pin = 12; int rightEnablePin = 10; int right1Pin = 9; int right2Pin = 8; int r_sensorOutputPin = A0; int r_sensorInputPin = A0; int r_sensor = 0; int l_sensorOutputPin = A2; int l_sensorInputPin = A2; int l_sensor = 0; int l_motorDirection = 0; //sets up variables for direction int r_motorDirection = 1; //setting pins as outputs void setup() { pinMode(left1Pin, OUTPUT); pinMode(left2Pin, OUTPUT); pinMode(leftEnablePin, OUTPUT); pinMode(right1Pin, OUTPUT); pinMode(right2Pin, OUTPUT); pinMode(rightEnablePin, OUTPUT); Serial.begin(9600); } //Main section telling the robot what to do void loop() { look(); if (r_sensor == 1 && l_sensor == 1){ fast_forward(); delay(100); } if (r_sensor == 0 && l_sensor == 0){ fast_forward(); delay(100); } if (r_sensor == 0 && l_sensor == 1){ left(); delay(100); } if (r_sensor == 1 && l_sensor == 0){ right(); delay(100); } r_sensor = 0; l_sensor = 1; } void look(){ pinMode(r_sensorOutputPin, OUTPUT); digitalWrite(r_sensorOutputPin, HIGH); delay(10); pinMode(r_sensorInputPin, INPUT); int r_value=analogRead(r_sensorInputPin); // changing value to a binary value if (r_value < 135) {r_sensor = 0; } if (r_value >= 135 ) {r_sensor = 1 ; } pinMode(l_sensorOutputPin, OUTPUT); digitalWrite(l_sensorOutputPin, HIGH); delay(10); pinMode(l_sensorInputPin, INPUT); int l_value=analogRead(l_sensorInputPin); // changing value to a binary value if (l_value < 135) {l_sensor = 0; } if (l_value >= 135 ) {l_sensor = 1 ; } Serial.print("left: "); Serial.println(l_sensor); Serial.print ("right: "); Serial.println(r_sensor); } //code to set up the command functions void fast_forward(){ analogWrite (leftEnablePin, 255); digitalWrite (left1Pin, l_motorDirection); digitalWrite (left2Pin, !l_motorDirection); analogWrite (rightEnablePin, 255); digitalWrite (right1Pin, r_motorDirection); digitalWrite (right2Pin, !r_motorDirection); } void slow_forward(){ analogWrite (leftEnablePin, 70); digitalWrite (left1Pin, l_motorDirection); digitalWrite (left2Pin, !l_motorDirection); analogWrite (rightEnablePin, 70); digitalWrite (right1Pin, r_motorDirection); digitalWrite (right2Pin, !r_motorDirection); } void fast_backward(){ analogWrite (leftEnablePin, 255); digitalWrite (left1Pin, !l_motorDirection); digitalWrite (left2Pin, l_motorDirection); analogWrite (rightEnablePin, 255); digitalWrite (right1Pin, !r_motorDirection); digitalWrite (right2Pin, r_motorDirection); } void slow_backward(){ analogWrite (leftEnablePin, 70); digitalWrite (left1Pin, !l_motorDirection); digitalWrite (left2Pin, l_motorDirection); analogWrite (rightEnablePin, 70); digitalWrite (right1Pin, !r_motorDirection); digitalWrite (right2Pin, r_motorDirection); } void left(){ digitalWrite (leftEnablePin, HIGH); digitalWrite (left1Pin, !l_motorDirection); digitalWrite (left2Pin, l_motorDirection); digitalWrite (rightEnablePin, HIGH); digitalWrite (right1Pin, r_motorDirection); digitalWrite (right2Pin, !r_motorDirection); } void right(){ digitalWrite (leftEnablePin, HIGH); digitalWrite (left1Pin, l_motorDirection); digitalWrite (left2Pin, !l_motorDirection); digitalWrite (rightEnablePin, HIGH); digitalWrite (right1Pin, !r_motorDirection); digitalWrite (right2Pin, r_motorDirection); } void no_move(){ digitalWrite (leftEnablePin, LOW); digitalWrite (left1Pin, LOW); digitalWrite (left2Pin, LOW); digitalWrite (rightEnablePin, LOW); digitalWrite (right1Pin, LOW); digitalWrite (right2Pin, LOW); }