a trigger for a braca
Nuovo Utente
- Messaggi
- 26
- Reazioni
- 1
- Punteggio
- 24
Salve a tutti, durante la costruzione di un misuratore di potenza con arduino mi sono imbattuto nel seguente problema:
Il sensore ad ultrasuoni per arduino permette di calcolare la distanza di un oggetto dal sensore. Inizialmente pensavo di ricavare la velocità istantanea tramite un semplice v=ds/dt, utilizzando il seguente codice:
//calcolo spazio 1
digitalWrite( trig, HIGH );
delayMicroseconds( 10 );
digitalWrite( trig, LOW );
time = pulseIn( eco, HIGH ); //il sensore ad ultrasuoni ritorna il tempo impiegato dal suono a raggiungere il bersaglio e tornare
d1 = 0.034 * time / 2; //dal tempo la distanza del bersaglio
delay(5); //intervallo tra le due misurazioni
//calcolo spazio 2
digitalWrite( trig, HIGH );
delayMicroseconds( 10 );
digitalWrite( trig, LOW );
time = pulseIn( eco, HIGH );
d2 = 0.034 * time / 2;
v=(d1-d2)/???;
Il problema riguarda il dt: tra le due misurazioni intercorrono i 5 millisecondi imposti dal delay(5), ma a ciò dovrei aggiungere il tempo della seconda misurazione.
Presumo che il tempo aggiuntivo sia 10 micoresecondi (dal delay) più due volte "time" (andata e ritorno) della seconda misurazione.
I 10 microsecondi potrebbero essere tranquillamente ignorati. Il problema deriva dal time: il suono per percorrere un metro ci mette circa 3 millisecondi, che sfalserebbero notevolmente la misura.
Qualcuno avrebbe qualche consiglio da darmi? :help:
Il sensore ad ultrasuoni per arduino permette di calcolare la distanza di un oggetto dal sensore. Inizialmente pensavo di ricavare la velocità istantanea tramite un semplice v=ds/dt, utilizzando il seguente codice:
//calcolo spazio 1
digitalWrite( trig, HIGH );
delayMicroseconds( 10 );
digitalWrite( trig, LOW );
time = pulseIn( eco, HIGH ); //il sensore ad ultrasuoni ritorna il tempo impiegato dal suono a raggiungere il bersaglio e tornare
d1 = 0.034 * time / 2; //dal tempo la distanza del bersaglio
delay(5); //intervallo tra le due misurazioni
//calcolo spazio 2
digitalWrite( trig, HIGH );
delayMicroseconds( 10 );
digitalWrite( trig, LOW );
time = pulseIn( eco, HIGH );
d2 = 0.034 * time / 2;
v=(d1-d2)/???;
Il problema riguarda il dt: tra le due misurazioni intercorrono i 5 millisecondi imposti dal delay(5), ma a ciò dovrei aggiungere il tempo della seconda misurazione.
Presumo che il tempo aggiuntivo sia 10 micoresecondi (dal delay) più due volte "time" (andata e ritorno) della seconda misurazione.
I 10 microsecondi potrebbero essere tranquillamente ignorati. Il problema deriva dal time: il suono per percorrere un metro ci mette circa 3 millisecondi, che sfalserebbero notevolmente la misura.
Qualcuno avrebbe qualche consiglio da darmi? :help: