salvare distanza su sd

ciao a tutti,

Vorrei chiedervi gentilmente se potreste aiutarmi in un mio personale progetto, vi dico subito che non mi intendo molto di arduino, con l'elettronica ci siamo, ma programmazione sono molto indietro, ho giusto quelache idea...

Comunque se potreste aiutarmi ve ne sarei grato ...

L'idea è quella di creare un dispositivo in grado di registrare le distanze del sensore di distanza hc sr04, salvarle su un un sd trimite uno shild come questo

questo è il primo passo, poi prevedo l'integrazione di un gps ma ne vorrei parlare successivamente per vedere prima come si comporta ...

Parto da zero, ho qui arduino uno e i vari pezzi, ho già cercato su internet qualcosa del genere ma non ho trovato niente, se sapreste aitarmi .....

per ora ho copiato il programma trovato su internet per vedere le distanze sul sensore, che sicuramente servirà ma non so come andare avanti ...

"
double triggerPort = 7;
double echoPort = 8;

void setup() {

pinMode( triggerPort, OUTPUT );
pinMode( echoPort, INPUT );
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 );

double duration = pulseIn( echoPort, HIGH );

double 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" );}

//aspetta 1.5 secondi
delay( 15 );
} "

Vi ringrazio, Buona giornata :slight_smile:

Ti invitiamo a presentarti (dicci quali conoscenze hai di elettronica e di programmazione) qui: Presentazioni
e a leggere il regolamento se non lo hai già fatto: Regolamento
Qui una serie di link utili, non inerenti al tuo problema:

Il codice devi racchiuderlo nei tag code, vedi sezione 7 del regolamento, spiega bene come fare.
Altrimenti parte del codice può essere visualizzata male o mancare perchè interpretato come attributo del testo stesso.

1.delay(15) non sono 1,5 secondi 1500 sono 1,5 secondi

2.Per i numeri di Pin basta il byte, meglio se const, quindi questo:

double triggerPort = 7;

in

const byte triggerPort = 7;
  1. ma quel pezzo funziona ?
    Se si, accantonalo e ora prova a usare SD, magari uno degli esempi forniti con la libreria.
    Un pezzo alla volta.
const byte triggerPort = 7;
const byte echoPort = 8;
 
void setup() {
 
pinMode( triggerPort, OUTPUT );
pinMode( echoPort, INPUT );
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 );
 
double duration = pulseIn( echoPort, HIGH );
 
double 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" );}
 
//aspetta 1.5 secondi
delay( 150 );
}

i codice è questo, l'ho preso tempo fa su un sito, ora non mi ricordo quale....
Per ora il circuito va " un po " nel senso che fa qualche misura e poi mi da 0.00 0.00 ..... poi magicamente riparte .... ho controllato tutti i fili e non c'è nulla di guasto, perfino il sensore è stato sostituito ma come per magia va e poco dopo no ... guardate :

Ma quando ti da 0 a che distanza metti qualcosa ?
Quando ti dà la misura, è giusta ?

Quel modulo SD lo colleghi con i pin SPI. Provalo poi con l'esempio CardInfo.
MISO = 12
MOSI = 11
SCK = 13
SS o CS = 10 di solito

si solitamenete ci sono io ad appunto 25-30 cm, la distanza misurata è giusta, poi senza toccare niente e stando fermo comincia a dare 0.00 ...... magari dopo poco riparte.

Mi viene in mente solo che l'arduino sia rotto, posso fare qualche test ?

vi vorrei ringraziare, siete velocissimi e molto cordiali ....

Grazie :smiley:

Per il sensore, non sono esperto. Però dacci più info.
Come lo hai collegato ? Quali pin hai usato ?
Hai un link a dove hai comprato il sensore per vedere il modello preciso ?

il sensore è un HC-SR04 ed il collegamente è così :

sensore - arduino

GND - GND
Echo - 8
Trig - 7
Vcc - 5V

.... qualcuno saprebbe gentilmente aiutarmi ? ...

Grazie

??

Potrebbe essere un problema HW.
Per il software mi pare corretto. Esistono comunque librerie per quel sensore.
Cerca "NewPing version 1.5" oppure "Ultrasonic-HC-SR04" . Poi magari fa le stesse cose ma è per capire se è un problema di sw.