147 lines
3.5 KiB
C++
147 lines
3.5 KiB
C++
/*
|
|
Speed of sound = 330ms0-1
|
|
max range = 0.5m
|
|
s*t=d
|
|
330x = 0.5 *2 bc it's a round trip
|
|
x = 0.0030 s
|
|
x = 3000 µs
|
|
*/
|
|
|
|
#define PULSE_DELAY 3000
|
|
// #define PULSE_DELAY 15000
|
|
|
|
const int trig_pin_1 = 8;
|
|
const int echo_pin_1 = 9;
|
|
|
|
const int trig_pin_2 = 10;
|
|
const int echo_pin_2 = 11;
|
|
|
|
const int trig_pin_3 = 12;
|
|
const int echo_pin_3 = 13;
|
|
//---
|
|
// |
|
|
//---
|
|
const int trig_pin_4 = 14;
|
|
const int echo_pin_4 = 15;
|
|
|
|
const int trig_pin_5 = 16;
|
|
const int echo_pin_5 = 17;
|
|
|
|
const int trig_pin_6 = 18;
|
|
const int echo_pin_6 = 19;
|
|
|
|
const int trig_pin_7 = 20;
|
|
const int echo_pin_7 = 21;
|
|
// --- <|
|
|
const int trig_pin_8 = 22;
|
|
const int echo_pin_8 = 24;
|
|
|
|
const int trig_pin_9 = 26;
|
|
const int echo_pin_9 = 28;
|
|
|
|
const int trig_pin_10 = 30;
|
|
const int echo_pin_10 = 32;
|
|
|
|
const int trig_pin_11 = 34;
|
|
const int echo_pin_11 = 36;
|
|
|
|
const int trig_pin_12 = 38;
|
|
const int echo_pin_12 = 40;
|
|
|
|
int distance_1;
|
|
int distance_2;
|
|
int distance_3;
|
|
int distance_4;
|
|
int distance_5;
|
|
int distance_6;
|
|
int distance_7;
|
|
int distance_8;
|
|
int distance_9;
|
|
int distance_10;
|
|
int distance_11;
|
|
int distance_12;
|
|
|
|
void setup() {
|
|
pinMode(trig_pin_1, OUTPUT); // Sets the trigPin as an Output
|
|
pinMode(echo_pin_1, INPUT); // Sets the echoPin as an Input
|
|
pinMode(trig_pin_2, OUTPUT);
|
|
pinMode(echo_pin_2, INPUT);
|
|
pinMode(trig_pin_3, OUTPUT);
|
|
pinMode(echo_pin_3, INPUT);
|
|
pinMode(trig_pin_4, OUTPUT);
|
|
pinMode(echo_pin_4, INPUT);
|
|
pinMode(trig_pin_5, OUTPUT);
|
|
pinMode(echo_pin_5, INPUT);
|
|
pinMode(trig_pin_6, OUTPUT);
|
|
pinMode(echo_pin_6, INPUT);
|
|
pinMode(trig_pin_7, OUTPUT);
|
|
pinMode(echo_pin_7, INPUT);
|
|
pinMode(trig_pin_8, OUTPUT);
|
|
pinMode(echo_pin_8, INPUT);
|
|
pinMode(trig_pin_9, OUTPUT);
|
|
pinMode(echo_pin_9, INPUT);
|
|
pinMode(trig_pin_10, OUTPUT);
|
|
pinMode(echo_pin_10, INPUT);
|
|
pinMode(trig_pin_11, OUTPUT);
|
|
pinMode(echo_pin_11, INPUT);
|
|
pinMode(trig_pin_12, OUTPUT);
|
|
pinMode(echo_pin_12, INPUT);
|
|
Serial.begin(9600); // Starts the serial communication
|
|
}
|
|
|
|
void pulse_pin(int trig_pin) {
|
|
digitalWrite(trig_pin, LOW);
|
|
delayMicroseconds(2);
|
|
// Sets the trigPin on HIGH state for 10 micro seconds
|
|
digitalWrite(trig_pin, HIGH);
|
|
delayMicroseconds(10);
|
|
digitalWrite(trig_pin, LOW);
|
|
}
|
|
|
|
int get_dist(int trig_pin, int echo_pin) {
|
|
pulse_pin(trig_pin);
|
|
float duration = pulseIn(echo_pin, HIGH, PULSE_DELAY);
|
|
if (duration == 0) duration = 40000;
|
|
int distance = duration * 0.034 / 2;
|
|
return distance;
|
|
}
|
|
|
|
void loop() {
|
|
distance_1 = get_dist(trig_pin_1, echo_pin_1);
|
|
distance_2 = get_dist(trig_pin_2, echo_pin_2);
|
|
distance_3 = get_dist(trig_pin_3, echo_pin_3);
|
|
distance_4 = get_dist(trig_pin_4, echo_pin_4);
|
|
distance_5 = get_dist(trig_pin_5, echo_pin_5);
|
|
distance_6 = get_dist(trig_pin_6, echo_pin_6);
|
|
distance_7 = get_dist(trig_pin_7, echo_pin_7);
|
|
distance_8 = get_dist(trig_pin_8, echo_pin_8);
|
|
distance_9 = get_dist(trig_pin_9, echo_pin_9);
|
|
distance_10 = get_dist(trig_pin_10, echo_pin_10);
|
|
distance_11 = get_dist(trig_pin_11, echo_pin_11);
|
|
distance_12 = get_dist(trig_pin_12, echo_pin_12);
|
|
|
|
Serial.print(distance_1);
|
|
Serial.print(" | ");
|
|
Serial.print(distance_2);
|
|
Serial.print(" | ");
|
|
Serial.print(distance_3);
|
|
Serial.print(" | ");
|
|
Serial.print(distance_4);
|
|
Serial.print(" | ");
|
|
Serial.print(distance_5);
|
|
Serial.print(" | ");
|
|
Serial.print(distance_6);
|
|
Serial.print(" | ");
|
|
Serial.print(distance_7);
|
|
Serial.print(" | ");
|
|
Serial.print(distance_8);
|
|
Serial.print(" | ");
|
|
Serial.print(distance_9);
|
|
Serial.print(" | ");
|
|
Serial.print(distance_10);
|
|
Serial.print(" | ");
|
|
Serial.print(distance_11);
|
|
Serial.print(" | ");
|
|
Serial.println(distance_12);
|
|
}
|