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
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);
}
... 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?