Come implementare nello stesso progetto tre sensori HC-SR04

Ciao a tutti, ho realizzato una macchinina che con il sensore ultrasuoni HC-SR04 schiva gli ostacoli che si presentano davanti al suo cammino, ovviamente il tutto è diretto dalla motor shield che riesce a dare diverse direzioni ai motori DC a seconda della distanza rilevata dal sensore. Essendoci un solo sensore implementato la macchinina andava a scontrarsi con gli ostacoli lateralmente, da ciò ho deciso di voler implementare due nuovi sensori laterali che però con la mia attuale conoscenza nella programmazione di arduino non riesco ad implementare.
Perciò chiedo qualche consiglio su come impostare meglio il mio sketch riuscendo a mettere in funzione anche gli altri due sensori. Avevo pensato ad un opzione:

Il sensore frontale rileva l’ostacolo e poi successivamente la macchinina confrontando la distanza dei due ostacoli rilevata dai sensori laterali scelga di girare dal lato con più spazio.

Questo è il mio sketch attuale con i tre sensori già implementati ma non funzionanti:

#include <NewPing.h>

//#include <LiquidCrystal.h>
#define PIN_TRIGS 10
#define PIN_ECHOS 13
#define PIN_TRIGP 2
#define PIN_ECHOP 3
#define PIN_TRIG 7
#define PIN_ECHO 6
#define MAX_DIST 3000
NewPing datoregistrato(PIN_TRIG,PIN_ECHO,MAX_DIST);
//LiquidCrystal lcd(15, 14, 13, 6, 5, 4);

NewPing datoregistrato2(PIN_TRIGP,PIN_ECHOP,MAX_DIST);
NewPing datoregistrato3(PIN_TRIGS,PIN_ECHOS,MAX_DIST);
int ENA=8; 
int IN1=9; 
int IN2=4; 
int IN3=12; 
int IN4=11; 
int ENB=5;
unsigned int uS;
int cm;
int cm2;
int cm3;
void setup() {
  pinMode(ENA, OUTPUT);
  pinMode(ENB, OUTPUT);
  pinMode(IN1, OUTPUT);
  pinMode(IN2, OUTPUT);
  pinMode(IN3, OUTPUT);
  pinMode(IN4, OUTPUT);
 Serial.begin(115200);

/*pinMode(14, OUTPUT);
pinMode(15, OUTPUT);

lcd.begin(16, 2);

  lcd.print("Tempo passato:");*/
}

void loop() {
 Serial.print("");
  
 Serial.print(cm);
 Serial.println("");

  delay(50);
   uS = datoregistrato.ping();
   cm = datoregistrato.convert_cm(uS);
 Serial.print("");
  
 Serial.print(cm2);
 Serial.println("");
   uS = datoregistrato2.ping();
   cm2 = datoregistrato2.convert_cm(uS);
   delay(50);

 Serial.print(cm3);
 Serial.println("");
   uS = datoregistrato3.ping();
   cm3 = datoregistrato3.convert_cm(uS);
   delay(50);


if(cm>25 || cm==0)
 { 

analogWrite(ENA, 255);
analogWrite(ENB, 255);
digitalWrite(IN1,LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
 }

if (cm>=15 && cm<=25)
 {
analogWrite(ENA,(int)(200*(cm-15)/35+50));
analogWrite(ENB,(int)(200*(cm-15)/35+50));
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
  }                                                                                                             



if (cm>=2 && cm <15) 
   {
analogWrite(ENA, 150);
analogWrite(ENB, 150);
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
   }
}

Graze mille a chi mi darà una mano :slight_smile: