problema con pulseIn sensore ultrasuoni

usando il sensore hc-sr04 vorrei costruire un sensore di prossimità ma ,usando il seguente codice, il serial monitor mi restituisce sempre 0 cm . grazie in anticipo :slight_smile:
#define echo 13
#define trig 12

void setup ()
{pinMode (echo,INPUT );
pinMode (trig,OUTPUT );
Serial.begin(9600) ;}

void loop ()
{digitalWrite (trig,LOW);

uso un arduino 1 su windows 7 quest è il sensore http://letsmakerobots.com/node/30209
digitalWrite (trig,HIGH);
delayMicroseconds (10);
digitalWrite (trig,LOW);
long time= pulseIn (echo,HIGH);
long distance=time/58;
Serial.print(distance);
Serial.print("cm");
delay (500);}

vedo che è il tuo primo post, cmnq se avessi dato un'occhiata veloce ai primi topic del forum avresti notato che c'è un'altra discussione aperta riguardo questo tipo di sensore ad ultrasuoni in cui ho fornito anche il codice per farli funzionare: http://arduino.cc/forum/index.php/topic,97517.0.html

valvale97:
vedo che è il tuo primo post, cmnq se avessi dato un'occhiata veloce ai primi topic del forum avresti notato che c'è un'altra discussione aperta riguardo questo tipo di sensore ad ultrasuoni in cui ho fornito anche il codice per farli funzionare: http://arduino.cc/forum/index.php/topic,97517.0.html

grazie ho notato solo ora l' altro ma (se non è un problema) volevo sapere se il codice ha errori evidenti oppure mi hanno venduto un sensore rotto (o ho semplicemente sbagliato i collegamenti ma quesnto posso saperlo solo io)

secondo me sono i delay che nel tuo codice non sono ben regolati, prova a confrontare il codice con quello che trovi nel topic che ti ho linkato.

valvale97:
secondo me sono i delay che nel tuo codice non sono ben regolati, prova a confrontare il codice con quello che trovi nel topic che ti ho linkato.

sei il mio salvatore per chiunque grazie mille.
per chiunque fosse interessato ho risolto con questo codice:
#define echo 13
#define trig 12

void setup ()
{pinMode (echo,INPUT );
pinMode (trig,OUTPUT );
Serial.begin(9600) ;}

void loop ()
{digitalWrite (trig,LOW);
delayMicroseconds (1);
digitalWrite (trig,HIGH);
delayMicroseconds (10);
digitalWrite (trig,LOW);
long time= pulseIn (echo,HIGH);
long distance=time/58;
Serial.print(distance);
Serial.print("cm");
delay (500);}