const int trigPins0 = 10;
const int echoPins0 = A3;
const int trigPins1= 11;
const int echoPins1= A1;
const int trigPins2= 12;
const int echoPins2= A2;
const int trigPins3= 13;
const int echoPins3= A0;
const int stepPins0 = 2;
const int dirPins0 = 6;
const int stepPins1 = 3;
const int dirPins1 = 7;
const int stepPins2 = 4;
const int dirPins2 = 8;
const int stepPins3 = 5;
const int dirPins3 = 9;
#define warning 30
void setup()
{
Serial.begin(9600);
pinMode(trigPins0, OUTPUT);
pinMode(echoPins0, INPUT);
pinMode(trigPins1, OUTPUT);
pinMode(echoPins1, INPUT);
pinMode(trigPins2, OUTPUT);
pinMode(echoPins2, INPUT);
pinMode(trigPins3, OUTPUT);
pinMode(echoPins3, INPUT);
pinMode(stepPins0, OUTPUT);
pinMode(dirPins0, OUTPUT);
pinMode(stepPins1, OUTPUT);
pinMode(dirPins1, OUTPUT);
pinMode(stepPins2, OUTPUT);
pinMode(dirPins2, OUTPUT);
pinMode(stepPins3, OUTPUT);
pinMode(dirPins3, OUTPUT);
}
long readDistance(int trigPin, int echoPin) {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
long duration = pulseIn(echoPin, HIGH);
long distance = duration * 0.034 / 2;
return distance;
}
void loop()
{
long distanceLeft = readDistance(trigPins2, echoPins2);
long distanceRight = readDistance(trigPins0, echoPins0);
long distanceFront = readDistance(trigPins1, echoPins1);
long distanceBack = readDistance(trigPins3, echoPins3);
if (distanceLeft <= warning) {
Serial.println("Warning: Object too close on the LEFT side!");
// Activate warning signal (LED/Buzzer)
}
if (distanceRight <= warning) {
Serial.println("Warning: Object too close on the RIGHT side!");
// Activate warning signal (LED/Buzzer)
}
if (distanceFront <= warning) {
Serial.println("Warning: Object too close at the FRONT!");
// Activate warning signal (LED/Buzzer)
}
if (distanceBack <= warning) {
Serial.println("Warning: Object too close at the BACK!");
// Activate warning signal (LED/Buzzer)
}
for (int x = 0; x < 200; x++)
{
digitalWrite(stepPins0, HIGH);
digitalWrite(stepPins1, HIGH);
digitalWrite(stepPins2, HIGH);
digitalWrite(stepPins3, HIGH);
delayMicroseconds(800);
digitalWrite(stepPins0, LOW);
digitalWrite(stepPins1, LOW);
digitalWrite(stepPins2, LOW);
digitalWrite(stepPins3, LOW);
delayMicroseconds(800);
}
delay(100);
}