/*
Forum: https://forum.arduino.cc/t/vier-hc-sr-04-ultraschallsensoren-an-nur-5-pins-geht-das/1401048
Wokwi: https://wokwi.com/projects/438736643634636801
2025/08/08
ec2021
*/
constexpr byte S0 {2};
constexpr byte S1 {3};
constexpr byte S2 {6};
constexpr byte COMOut {4};
constexpr byte COMIn {5};
constexpr byte numSensors {6};
void setup() {
Serial.begin(115200);
pinMode(S0, OUTPUT);
pinMode(S1, OUTPUT);
pinMode(S2, OUTPUT);
pinMode(COMOut, OUTPUT);
pinMode(COMIn, INPUT);
}
void loop() {
for (int i = 0; i < numSensors; i++) {
trigger(i);
// Read the result:
int duration = pulseIn(COMIn, HIGH);
Serial.print("Sensor No. ");
Serial.print(i + 1);
Serial.print("\tDistance [cm]: ");
Serial.println(duration / 58);
delay(500);
}
}
void trigger(int no) {
digitalWrite(S0, no & 0x01);
digitalWrite(S1, no & 0x02);
digitalWrite(S2, no & 0x04);
digitalWrite(COMOut, HIGH);
delayMicroseconds(10);
digitalWrite(COMOut, LOW);
}