const int trigPin = 10;
const int echoPin = 11;
const int stepPins[] = {2, 4, 6, 8};
const int dirPins[] = {3, 5, 7, 9};
void setup()
{
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
for (int i = 0; i < 4; i++)
{
pinMode(stepPins[i], OUTPUT);
pinMode(dirPins[i], OUTPUT);
}
Serial.begin(9600);
}
void loop()
{
long duration, distance;
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance = (duration / 2) / 29.1;
Serial.print("Distance: ");
Serial.println(distance);
if (distance > 30)
{
Serial.println("Moving motors clockwise");
for (int i = 0; i < 4; i++)
{
digitalWrite(dirPins[i], HIGH);
}
} else
{
Serial.println("Moving motors counterclockwise");
for (int i = 0; i < 4; i++)
{
digitalWrite(dirPins[i], LOW);
}
}
for (int x = 0; x < 200; x++)
{
for (int i = 0; i < 4; i++)
{
digitalWrite(stepPins[i], HIGH);
}
delayMicroseconds(800);
for (int i = 0; i < 4; i++)
{
digitalWrite(stepPins[i], LOW);
}
delayMicroseconds(800);
}
delay(10);
}