Ciao a tutti!
questo post vi servirà per capire come collegare un sensore ad ultrasuoni HC-SR04 ad Arduino e costruirvi un primo progetto pratico con esso.
Infatti basterà avvicinare la mano al sensore per notare che i tre led si accenderanno a tre distanze differenti!
- Un sensore di distanza ad ultrasuoni di tipo molto economico (costo circa 1.4 euro se comprato dalla Cina)
- Un Arduino (io ho usato l'Uno ma potete usarne uno qualsiasi)
- 3 led con 3 resistenze da 330 ohm (anche valori vicini vanno bene)
- una breadboard.
Questo è il video dimostrativo: i led si accendono a tre soglie di distanza differenti, il primo fino a 30 cm, il secondo fino a 50 e il terzo da 50 in poi.
Infine caricate questo sketch, ed il gioco è fatto!:
- int triggerPort = 7;
- int echoPort = 8;
- int rosso = 10;
- int giallo = 11;
- int ovr = 4;
- void setup() {
- pinMode( triggerPort, OUTPUT );
- pinMode( echoPort, INPUT );
- pinMode( rosso, OUTPUT );
- pinMode( giallo, OUTPUT );
- pinMode( ovr, 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 > 30) digitalWrite(rosso, HIGH);
- else { digitalWrite(giallo, HIGH);}
- if( r > 50) digitalWrite(rosso, LOW), digitalWrite(ovr, HIGH);
- //aspetta 150 millisecondi
- delay( 150 );
- digitalWrite(rosso, LOW);
- digitalWrite(giallo, LOW);
- digitalWrite(ovr, LOW);
- }
Quale simulatore hai utilizzato per fare questo progetto?
RispondiEliminaIo uso Tinkercad che fa pure le simulazioni
EliminaCiao, non è un simulatore, è solo grafica, si chiama Fritzing.
RispondiEliminaProblema:
RispondiEliminaQuando cerco di compilare mi dice:
Exit status 1
Expected ')' before ';' token
Che devo fare? Ho scritto lo sketch perfettamente ma niente
Ciao, a che riga ti dà l'errore?
EliminaRiga 41
RispondiEliminaAiutooooo
EliminaCiao, sei sicuro? Perché a me errori non ne da
EliminaSi mi dava errore li, comunque ho risolto, me ne sono fatti uno sul modello tuo e me lo compila. Grazie mille
EliminaSalve, ero interessato a dotare questo progetto di 3 display a 7 segmenti per visualizzare la distanza in cm. Grazie.
RispondiEliminati prego mostramelo
Elimina