Sensore HC-SR04 - rileva sempre 0 cm !

Ciao a tutti, ieri mi è arrivato un sensore ultrasuini "HC-SR04" (dalla cina).
Bene, prima ho provato ad eseguire il classico sketch, ho provato a seguire questa guida:

http://giuseppefatiguso.wordpress.com/2011/06/07/sensore-di-distanza-ad-ultrasuoni-con-arduino/#more-109

Stessi collegamenti, stesso sketch caricato.

Apro la comunicazione seriale e il sensore mi rileva sempre 0 cm !!

Secondo voi è il sensore che non va giusto?!
Potete darmi qualche consiglio per effettuare qlk prova ed assicurarmente che sia lui?! O se posso risolvere in qualche modo non so..
Grazie mille a tutti!
Saluti !!

prova collegamenti diversi (ovviamente modificando lo sketch), cosi' dovrai ragionare da solo su collegamenti e sketch, e magari scopri qualche errore sullo sketch originale, o sulle foto del sito, o altro.

Nik_90:
Ciao a tutti, ieri mi è arrivato un sensore ultrasuini "HC-SR04" (dalla cina).

forse funziona solo se incontra un maialino :stuck_out_tongue_closed_eyes: :stuck_out_tongue_closed_eyes:

Bene, prima ho provato ad eseguire il classico sketch, ho provato a seguire questa guida:

http://giuseppefatiguso.wordpress.com/2011/06/07/sensore-di-distanza-ad-ultrasuoni-con-arduino/#more-109

Stessi collegamenti, stesso sketch caricato.

Apro la comunicazione seriale e il sensore mi rileva sempre 0 cm !!

Secondo voi è il sensore che non va giusto?!
Potete darmi qualche consiglio per effettuare qlk prova ed assicurarmente che sia lui?! O se posso risolvere in qualche modo non so..
Grazie mille a tutti!
Saluti !!

Hai provato a mandare un carattere, come spiegato nelle istruzioni?
Cioè nel serial monitor inserisci una lettera qualsiasi e premi INVIO, subito dopo dovrebbe darti le misure. Ciao.

Che cosa macchinosa per far iniziare la trasmissione... :roll_eyes:

PS:
il nuovo film di fantascienza: L'invasione degli ultrasuini XD XD

leo72:
Che cosa macchinosa per far iniziare la trasmissione... :roll_eyes:

chissà perché, secondo me ha voluto dare una specie di "start" per non vedere suito misure che non voleva.

PS:
il nuovo film di fantascienza: L'invasione degli ultrasuini XD XD

L'Imperatore megagalattico Porcone I° non ne poteva più di vedere i suoi simili terrestri finire a salsicce & affini
Dell'Imperatrice Maiala preferisco non raccontare nulla, hai sufficiente fantasia :smiley: :grin: :fearful:

Ciao Ultrasuino :slight_smile:
Prova a dare uno sguardo anche agli sketch da altri siti.
Credo che il tuo sia identico all' SRF04

http://www.robot-electronics.co.uk/htm/arduino_examples.htm#SRF04%20Ultrasonic%20Ranger

che funziona con poco e nulla stando a questo sito.
Avevo utilizzato dallo stesso sito sketch di esempio per testare il mio SRF02
Certo che ci sono un sacco di modelli di sonar, io ho lo 02 e il ping, e scopro che esistono anche a doppio trigger...

Io ho questo:

Lo sketch che usavo:

const int pingPin = 7; // il pin del Ping)))
const int LedPin = 4; // il pin del LED
long durata; // durata del ritorno del segnale
long distanza; // distanza (cm)

void setup() {
pinMode(LedPin, OUTPUT);
Serial.begin(9600);
}
// PROCEDURA MICROSECONDI → CENTIMETRI
long microsecondsToCentimeters(long microseconds)
{
// La velocità del suono è 340 m/s o 29 microsecondi per centimetro.
// The ping viaggia avanti e indietro, la distanza
// dell’ oggetto è la metà della distanza percorsa.
return microseconds / 29 / 2;
}
// PRINCIPALE
void loop() {
// The PING))) is triggered by a HIGH pulse of 2 or more microseconds.
// Give a short LOW pulse beforehand to ensure a clean HIGH pulse:
pinMode(pingPin, OUTPUT);
digitalWrite(pingPin, LOW);
delayMicroseconds(2);
digitalWrite(pingPin, HIGH);
delayMicroseconds(5);
digitalWrite(pingPin, LOW);
// The same pin is used to read the signal from the PING))): a HIGH
// pulse whose duration is the time (in microseconds) from the sending
// of the ping to the reception of its echo off of an object.
pinMode(pingPin, INPUT);
durata = pulseIn(pingPin, HIGH);
// convert the time into a distance
distanza = microsecondsToCentimeters(durata);
if (distanza < 10) {
digitalWrite(LedPin, HIGH);
Serial.print("Distanza rilevata: cm ");
Serial.print(distanza);
Serial.println();
delay(100);
}
digitalWrite(LedPin, LOW);
}

Ragazzi, io temo semplicemente che non abbia dato il via alla comunicazione seriale; bisognerebbe che rispondesse, starà facendo esami, visto che studia…

Lo pensavo anch’io ma la questione dell’avvio della trasmissione valeva solo per lo sketch che c’era sul sito che aveva linkato inizialmente, dato che quel programma prevedeva esplicitamente l’arrivo di un segnale sulla seriale prima di iniziare l’invio.
Però se usa lo sketch che ha postato, questo non mi pare preveda una simile situazione per cui dovrebbe iniziare a trasmettere subito.

leo72:
Lo pensavo anch'io ma la questione dell'avvio della trasmissione valeva solo per lo sketch che c'era sul sito che aveva linkato inizialmente, dato che quel programma prevedeva esplicitamente l'arrivo di un segnale sulla seriale prima di iniziare l'invio.
Però se usa lo sketch che ha postato, questo non mi pare preveda una simile situazione per cui dovrebbe iniziare a trasmettere subito.

Lui non si è fatto più vivo, quindi non sappiamo se ha provato quest'altro sketch

Ciao a tutti, scusate il ritardo ma effettivamente sto sotto esame quindi..:confused:
Cmq sia ora sembra che l' ULTRASUINO vada bene xDDDDD Vi spiego..
Il sensore che io ho acquistato è un "HC-SR04" , precisamente questo:

http://www.ebay.com/itm/170578097493?ssPageName=STRK:MEWNX:IT&_trksid=p3984.m1497.l2649

Ora, io ho provato a seguire diversi sketch.. ma il sensore per provarlo lo collegavo direttamente sulle uscite di arduino (come mostrano poi diversi esempi in rete) e cioè:

GND
ECHO al pin 13
TRIG al pin 12
VCC al pin 11

proprio come fa vedere questo tutorial:
http://giuseppefatiguso.wordpress.com/2011/06/07/sensore-di-distanza-ad-ultrasuoni-con-arduino/#more-109

In questo modo (con questi collegamenti) utilizzando diversi sketch il sensore misurava sempre 0 cm

Poi nel post, qui sopra Federico mi ha detto di vedere qlk sketch in questo sito:
http://www.robot-electronics.co.uk/htm/arduino_examples.htm#SRF04%20Ultrasonic%20Ranger

Io sempre con gli stessi collegamenti detti sopra ho provato a caricare questo sketch (per l' "SRF-04"):
http://www.robot-electronics.co.uk/files/SRF04.pde

Il sensore rilevava sempre 0cm..

Dopo di che ho provato ad impostare i pin come nello sketch quindi:

GND a GND
ECHO al pin 2
TRIG al pin 3
VCC a +5V

Caricato lo sketch il sensore rileva i cm come si deve..

Quindi secondo voi perchè collegando ai pin 2 e 3 va e al pin 13 e 12 no?!

Forse perchè in questo caso il pin 3 funziona in PWM?! O è questione di alimentazione? perchè prima prendevo l'alimentazione dal pin 11?!
Aiutatemi a capire questa cosa :slight_smile:
Grazie mille a tutti!!

P.S Con l'esempio che ho fatto vedere all'inizio avviavo la comunicazione seriale inviando un carattere quindi non sbagliavo in quello..

Se non attivavi l'alimentazione (ossia non mettevi il pin 11 in output con un livello HIGH) per forza che il sensore non funzionava :wink:
Quando colleghi qualcosa a dei pin devi sempre sincerarti se poi il software quei pin li gestisce oppure no.

http://arduino.cc/blog/2011/10/20/hc-sr04-ultrasonic-arduino-library/