Sensore di parcheggio con Arduino

Ciao!

Questo semplice progetto permette di controllare un cicalino in base alla distanza rilevata da un sensore HC-SR04, facendolo suonare con frequenza proporzionale alla distanza da un ostacolo.

Qui lo sketch da caricare:



  1. int triggerPort = 7;
  2. int echoPort = 8;
  3. int cicalino = 9;
  4. unsigned long time;
  5. unsigned long lampeggio_time;
  6. unsigned long pausa_time;
  7. void setup() {
  8. pinMode( triggerPort, OUTPUT );
  9. pinMode( echoPort, INPUT );
  10. pinMode( cicalino, OUTPUT );
  11. Serial.begin( 9600 );
  12. Serial.println( "Sensore ultrasuoni: ");
  13. }
  14. void loop() {
  15. //porta bassa l'uscita del trigger
  16. digitalWrite( triggerPort, LOW );
  17. //invia un impulso di 10microsec su trigger
  18. digitalWrite( triggerPort, HIGH );
  19. delayMicroseconds( 10 );
  20. digitalWrite( triggerPort, LOW );
  21. long duration = pulseIn( echoPort, HIGH );
  22. long r = 0.034 * duration / 2;
  23. Serial.print( "durata: " );
  24. Serial.print( duration );
  25. Serial.print( " , " );
  26. Serial.print( "distanza: " );
  27. if( duration > 38000 ) Serial.println( "fuori portata");
  28. else { Serial.print( r ); Serial.println( "cm" );}
  29. if( r > 3 && r <= 200){
  30. delay(r*10);
  31. digitalWrite(cicalino, HIGH);
  32. delay(r*10); }
  33. if( r <= 3){
  34. digitalWrite(cicalino, HIGH);
  35. delay(1000);}
  36. digitalWrite(cicalino, LOW);
  37. delay(10);
  38. }

Ciao e buon lavoro!

Segui Daniele Alberti su Google+

12 commenti:

  1. é possibile fare una variante: far accendere proporzionalmente alla distanza una serie diciamo di 10 led dal verde al rosso

    RispondiElimina
    Risposte
    1. Certo, per aiutarti prova a guardare quest'altro post, avevo già fatto qualcosa di simile, bisogna solo aggiungere altri led.
      Fammi sapere se hai bisogno, ciao!
      http://www.danielealberti.it/2013/05/arduino-ultrasuoni-3-led.html?m=1

      Elimina
    2. scusami ma su fritzing il sensore come lo trovo su fritzing ?? non lo trovo stò facendo uno simile ma mi serve il sensore grazie se mi puoi dire come si kiama grazie ciao

      Elimina
    3. Ciao, scusa se non riesco ad aiutarti per l'altro progetto ma ho veramente pochissimo tempo,
      se hai domande specifiche ti rispondo come ora, ma non posso farti il progetto completo.
      Rispondendoti a questa domanda,
      il pezzo che cerchi si chiama HC-SR04
      il componente per fritzing lo trovi qui:
      http://fritzing.org/media/fritzing-repo/projects/h/hc-sr04-project/fritzing/HC-SR04.fzpz
      Ciao!

      Elimina
  2. Ciao Daniele bellissimo progetto mi serviva proprio un codice come questo, lo ho cercato dappertutto ( non sapendo come fare) . Volevo chiederti una cosa , di recente ho installato la libreria NewPing per il sensore ad ultrasuoni HC-SR04 con l'intenzione di realizzare un codice che ad una certa distanza rilevata un pizzo suonasse.Ho così scritto lo sketch ma al momento della compilazione e del caricamento sulla scheda mi dava uno strano errore . Solo dopo ho scoperto che l'errore era dovuto ad un conflitto della libreria con la funzione "tone( piezo, 1505);" e "noTone( piezo)" che ho inserito nel Void loop per far suonare il piezo . Allora ho cercato di usare la funzione "digitalWrite(piezo, HIGH)" e questa volta non mi ha dato nessun problema solamente che il piezo suona ad una frequenza bassissima , quasi non si sente!!Sapresti aiutarmi e dirmi come risolvere il problema di conflittualità o aumentare la frequenza del piezo??GRAZIE MILLE IN ANTICIPO E CIAO

    RispondiElimina
  3. Salve come posso trasformarlo in un segnalatore che suona quando viene occupato uno spazio tra due sensori?

    RispondiElimina
    Risposte
    1. Ciao, questo tipo di sensore sfrutta il fatto che il suono "rimbalza" sull'oggetto e poi torna indietro, più è lontano l'oggetto più ci tempo ci mette il suono.
      Per quello che vuoi fare tu, penso sia meglio utilizzare una fotocellula. Ciao

      Elimina
  4. ho montato il tutto ma non suona il buzzer, si sente il rumore di sottofondo

    RispondiElimina
  5. Ho problemi perché il code una volta inserito nel software è correnti. .ma quando cerco di avviarlo non parte. .perché?

    RispondiElimina
  6. Ciao Daniele, sono uno studente del quinto anno di un istituto tecnico industriale settore elettronica, volevo chiederti se era possibile aumentare l'intensità del suono in proporzione alla distanza. Praticamente più un oggetto è vicino al sensore più suona in maniera forte e viceversa. Grazie in anticipo per la tua disponibilità.

    RispondiElimina
  7. Davvero molto semplice e chiaro. Grazie

    RispondiElimina

Lascia un commento qui sotto, ti risponderò il prima possibile!

Altri Post