Parking sensor Arduino HC SR04

Ciao!
Io sto progettando un sensore di retromarcia utilizzando una scheda Arduino uno collegata ad un sensore HC SR04 e a 7 led.
Sono ai primi passi con la progammazione di Arduino infatti ho problemi con il programma perchè non funziona come dovrebbe.
Qualcuno è in grado di darmi qualch consiglio correggendomi gli errori che ho commesso? Grazie Mille! :slight_smile: :slight_smile:
Vi allego il codice e una foto del circuito.

int triggerPort = 2;
int echoPort = 3;
int rosso1 = 9;
int rosso2 = 10;
int giallo1 = 7;
int giallo2 = 8;
int verde1 = 5;
int verde2 = 6;
void setup() {
  pinMode( triggerPort, OUTPUT );
  pinMode( echoPort, INPUT );
  pinMode( rosso1, OUTPUT );
  pinMode( rosso2, OUTPUT );
  pinMode( giallo1, OUTPUT );
  pinMode( giallo2, OUTPUT );
  pinMode( verde1, OUTPUT );
  pinMode( verde2, OUTPUT );
  Serial.begin( 9600 );
  Serial.println( "Sensore ultrasuoni: ");
}
void loop() {
  //porta bassa l'uscita del trigger
  digitalWrite( triggerPort, LOW );
  //invia un impulso di 10microsec su trigger
  digitalWrite( triggerPort, HIGH );     
  delayMicroseconds( 10 );
  digitalWrite( triggerPort, LOW );
  long duration = pulseIn( echoPort, HIGH );
  long r = 0.034 * duration / 2;
  Serial.print( "durata: " );
  Serial.print( duration );
  Serial.print( " , " );
  Serial.print( "distanza: " );
  //dopo 38ms è fuori dalla portata del sensore
  if( duration > 38000 )  Serial.println( "fuori portata");
  else { 
    Serial.print( r ); 
    Serial.println( "cm" );
  }
  if( r > 10) digitalWrite(rosso2, HIGH);
  else { 
    digitalWrite(rosso1, HIGH);
    if( r > 30) digitalWrite(rosso1, LOW), digitalWrite(giallo2, HIGH);
    else { 
      digitalWrite(rosso1, LOW), digitalWrite(giallo1, HIGH);
      if( r > 50) digitalWrite(giallo1, LOW), digitalWrite(giallo2, LOW), digitalWrite(verde2, HIGH);
      else { 
        digitalWrite(giallo1, LOW), digitalWrite(giallo2, LOW), digitalWrite(verde1, HIGH);
        if( r > 70) digitalWrite(verde1, LOW), digitalWrite(verde2, LOW);
      } 
    } 
  }
  //aspetta 150 millisecondi
  delay( 150 );
  digitalWrite(rosso1, LOW);
  digitalWrite(rosso2, LOW);
  digitalWrite(giallo1, LOW);
  digitalWrite(giallo2, LOW);
  digitalWrite(verde1, LOW);
  digitalWrite(verde2, LOW);
}

NoWirelessProva7Led.ino (1.78 KB)

Ciao
se è il tuo primo post dovresti prima presentarti nell'apposito topic :wink:
e leggere il regolamento del forum. Io non sono così bravo come Nid e non ti posto tutti i link! :stuck_out_tongue: ]:slight_smile: ]:slight_smile:

che problemi ti da lo sketch? la sfera di cristallo l'ho lasciata in ufficio... ]:smiley:
non compila? non rileva la distanza? non accende i led? non fa il caffè?

Eccomi: :grin:
Ti invitiamo a presentarti qui: Re: Presentazioni nuovi iscritti, fatevi conoscere da tutti! - Generale - Arduino Forum
e a leggere il regolamento: [REGOLAMENTO] Come usare questa sezione del forum - Italiano - Arduino Forum

ciao caco, io e da un paio di mesi che uso quel sensore per rilevare la distanza di una macchinina dal muro. Io ho trovato molto piu semplice usare la libreria, che oltre a leggerti i valori li converte anche in cm e pollici. Se ti interessa ti posso mandare i link :grin: