#include "Arduino.h" #include "Wire.h" #include "MeMCore.h" // Declare 1 variable of type MeUltrasonicSensor at PORT_3 MeUltrasonicSensor sensor(PORT_3); int speed = 100; MeDCMotor _leftMotor(9); MeDCMotor _rightMotor(10); bool goagain = false; // Define the number of iterations required to turn for 30 degrees // This value may need to be adjusted based on the specific motor and robot configuration #define TURN_ITERATIONS 50 void setup() { // Initialize the serial port at 9600 baud Serial.begin(9600); // put your setup code here, to run once: _leftMotor.run(0); _rightMotor.run(0); } void loop() { float distance = sensor.distanceCm(); // Use parentheses to enclose the condition if (distance <= 15 or goagain == true) { goagain = false; // Add a for loop to turn for 30 degrees for (int i = 0; i < TURN_ITERATIONS; i++) { _leftMotor.run(speed); _rightMotor.run(speed); delay(10); } // Stop the motors after turning _leftMotor.run(0); _rightMotor.run(0); // Check the distance again distance = sensor.distanceCm(); if (distance < 90) { goagain = true; } } else { _leftMotor.run(-speed); _rightMotor.run(speed); } // Add a small delay to avoid continuous motor changes delay(10); Serial.print("Distance: "); Serial.print(distance); Serial.println(" cm"); }