const int stepPin = 14;
const int dirPin = 15;
long m_rot = 90;
bool m_st = true;
bool m_dir = true;
const int trigPin = 2;
const int echoPin = 3;
long duration;
int distanceCm;
const int RED = 1; // Define RED as pin number 1 (assuming this is connected to an LED)
void setup() {
pinMode(RED, OUTPUT); // Set RED pin as output
Serial.begin(115200); // Initialize serial communication
pinMode(stepPin, OUTPUT);
pinMode(dirPin, OUTPUT);
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop() {
digitalWrite(trigPin, LOW);
delayMicroseconds(2000);
digitalWrite(trigPin, HIGH);
delayMicroseconds(2000);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distanceCm = duration * 0.034 / 2;
delay(500);
if (distanceCm >= 200) {
m_rot = 140;
if (m_st) {
Serial.println("distance");
Serial.println(distanceCm);
digitalWrite(dirPin, m_dir);
digitalWrite(RED, HIGH); // Turn on the LED
delay(1000);
for (long step = 0; step < m_rot; step++) {
digitalWrite(stepPin, HIGH);
delayMicroseconds(2000);
digitalWrite(stepPin, LOW);
delayMicroseconds(2000);
}
digitalWrite(RED, LOW); // Turn off the LED after rotation
delay(1000);
m_st = false;
}
delay(1000);
} else if (distanceCm < 200) {
m_rot = 45;
if (m_st) {
Serial.println("distance");
Serial.println(distanceCm);
digitalWrite(RED, HIGH); // Turn on the LED
delay(1000);
digitalWrite(dirPin, m_dir);
for (long step = 0; step < m_rot; step++) {
digitalWrite(stepPin, HIGH);
delayMicroseconds(2000);
digitalWrite(stepPin, LOW);
delayMicroseconds(2000);
}
digitalWrite(RED, LOW); // Turn off the LED after rotation
delay(1000);
m_st = false;
}
delay(1000);
}
}