Sensore HY-SRF05

Ciao a tutti, sto cercando di realizzare un progetto con arduino e non riesco a far funzionare correttamente questo sensore. Ho ricercato su google, ho cambiato codice ma non riesco proprio a farlo funzionare nel monitor seriale viene stampato solo il valore 0. Ecco il mio sketch

#define TRIG_PIN 12
#define ECHO_PIN 13
void setup(){
  Serial.begin(9600);
  pinMode(TRIG_PIN, OUTPUT);
  pinMode(ECHO_PIN, INPUT);
}
void loop(){
  long duration, distance;
  delay(50);
  digitalWrite(TRIG_PIN, LOW);
  delayMicroseconds(2);
  digitalWrite(TRIG_PIN, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIG_PIN, LOW);
  duration=pulseIn(ECHO_PIN, HIGH);
  distance=duration/58;
  Serial.print(distance);
  delay(1000);
}

Ho già ricontrollato parecchie volte i collegamenti. Avete qualche suggerimento? Si potrebbe essere rotto visto che l'ho comprato un pò di tempo fa?

Ciao,
dato per scontato che hai fatto bene i collegamenti (verificali e verifica le saldature sul modulo) e che stai usando il HY-SFR05 in modalità compatibile SFR04 (vd. QUI per i dettagli), in questa fase di debug riduci il codice al minimo, così da vedere solo se il modulo funziona ...

#define TRIG_PIN 12
#define ECHO_PIN 13

void setup(){
  delay(1000); // buona cosa mettere sempre una delay prima dell'apertura della seriale nel setup()
  Serial.begin(9600);
  pinMode(TRIG_PIN, OUTPUT);
  pinMode(ECHO_PIN, INPUT);
}

void loop(){
  long duration, distance;
  delay(50);
  digitalWrite(TRIG_PIN, LOW);
  delayMicroseconds(2);
  digitalWrite(TRIG_PIN, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIG_PIN, LOW);
  duration=pulseIn(ECHO_PIN, HIGH);
  Serial.print(duration);
  delay(1000);
}

... se sulla seriale esce sempre 0 ... o i collegamenti non sono corretti o il modulo è guasto.

Guglielmo

P.S.: Quel delay all'inizio, nella setup() serve solo per evitare che, se uno nel loop() comincia subito a leggere/scrivere sulla seriale, abbia problemi poi a caricare programmi (con il bootloader)

gpb01:
Ciao,
dato per scontato che hai fatto bene i collegamenti (verificali e verifica le saldature sul modulo) e che stai usando il HY-SFR05 in modalità compatibile SFR04 (vd. QUI per i dettagli), in questa fase di debug riduci il codice al minimo, così da vedere solo se il modulo funziona ...

#define TRIG_PIN 12

#define ECHO_PIN 13

void setup(){
  delay(1000); // buona cosa mettere sempre una delay prima dell'apertura della seriale nel setup()
  Serial.begin(9600);
  pinMode(TRIG_PIN, OUTPUT);
  pinMode(ECHO_PIN, INPUT);
}

void loop(){
  long duration, distance;
  delay(50);
  digitalWrite(TRIG_PIN, LOW);
  delayMicroseconds(2);
  digitalWrite(TRIG_PIN, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIG_PIN, LOW);
  duration=pulseIn(ECHO_PIN, HIGH);
  Serial.print(duration);
  delay(1000);
}



... se sulla seriale esce sempre 0 ... o i collegamenti non sono corretti o il modulo è guasto.

Guglielmo

*P.S.: Quel delay all'inizio, nella setup() serve solo per evitare che, se uno nel loop() comincia subito a leggere/scrivere sulla seriale, abbia problemi poi a caricare programmi (con il bootloader)*

Ho utilizzato il tuo programma ma il risultato è sempre lo stesso, nel monitor seriale appare sempre 0, non c'è nient'altro che posso provare per vedere se funziona ancora questo modulo?

SE hai verificato i collegamenti con il link che ti ho dato e continua a dare sempre 0 ... ho idea che il modulo NON funzioni ... ::slight_smile:

Guglielmo

P.S.: Quando rispondi non occorre quotare tutto il post :wink: