Pages: [1]   Go Down
Author Topic: problema con sensore hc sr04  (Read 1241 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 6
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Buongiorno scusate ma mi servirebbe un aiuto col sensore hc-sr04 sull'arduino, perchè l'arduino mi rileva sempre di 2 o 3 microsecondi il segnale di echo e quindi mi da 0 cm ho usato vari programmi per testarlo da vari siti e il risultato è sempre lo stesso..potreste aiutarmi per favore?                                                                                               
Collego il vcc al 5 volt dell arduino gnd a gnd , il trigger al pin 7 e l'echo al pin 8.
Il codice l'ho preso da qui ma ne ho provati anche molti altri
http://barcadero.wordpress.com/2012/02/14/sensore-a-ultrasuoni-hc-sr04-e-arduino/
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 150
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

prova ad usare la libreria newPing e utilizzare l'esempio che mette a disposizione (newPing example)
purtroppo non mi ricordo più dove l'avevo scaricata quindi devi cercarla smiley
Logged

Capo d'Orlando
Offline Offline
God Member
*****
Karma: 2
Posts: 723
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Oppure la Ultrasonic.h
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 150
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

a prima vista però la libreria newPing mi sembra più semplice da capire smiley quindi da una persona non molto esperta ( come me smiley) è più semplice capirne il funzionamento   smiley
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 27
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

anche io ho avuto problemi con il codice di quel sito ( se vedi sul sito c'è un mio commento che accusa gli stessi problemi) e ho risolto , grazie all' aiuto di valvale97  http://arduino.cc/forum/index.php/topic,97980.msg734888.html#msg734888  ,aggiungendo un
Code:
delayMicroseconds (1);
nella riga 17 tra
Code:
digitalWrite (trig,LOW);
e
Code:
digitalWrite (trig,HIGH)
.
se non funziona neanche questo prova a usare questo sketch
Quote
#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 (1);
 digitalWrite (trig,LOW);
 long time= pulseIn (echo,HIGH);
 long distance=time/58;
 Serial.print(distance);
 Serial.print(" cm ");
 
 delay (500);}

Logged

pergi.eu ( il mio blog su arduino)

Offline Offline
Newbie
*
Karma: 0
Posts: 6
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

grazie per i consigli...ho provato a usare sia la libreria NewPing, la ultrasonic e i codici sopra ma il risultato è sempre lo stesso: mi restituisce sempre 0 cm...

è normale che il led RX sia sempre spento durante la comunicazione con il sensore?
Logged

Cagliari, Italy
Offline Offline
Tesla Member
***
Karma: 104
Posts: 6626
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Il delay è troppo basso
Code:
delayMicroseconds(1);

metti
Code:
delayMicroseconds(10);

Controlla inoltre che non ci siano oggetti vicino ai sensori o che non siano poggiati sul tavolo.
« Last Edit: February 19, 2013, 06:43:59 am by PaoloP » Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Tuscany
Offline Offline
Edison Member
*
Karma: 38
Posts: 1490
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
#define echo 13
#define trig 12

ma questi valori li cambi , visto che hai detto di averlo collegato sul 7 e 8
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 6
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ho provato a cambiare il delay diverse volte...anche nella combinazione che dici tu...ho rivolto anche il sensore verso il soffitto per evitare che ci fossero oggetti vicini tipo la breadboard...ma il risultato è sempre 0 cm e come durata dell'echo 2/3 microsecondi...

sisi ho provato anche a cambiare i pin ovviamente anche nel programma
Logged

Tuscany
Offline Offline
Edison Member
*
Karma: 38
Posts: 1490
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

http://barcadero.wordpress.com/2012/02/14/sensore-a-ultrasuoni-hc-sr04-e-arduino/

comunque lo sketch del link iniziale che avevi postato, funziona perfettamente.

Quindi o c'e' un erroe nei collegamenti o c'e' un problema con il sensore
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 6
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

credo che a sto punto il sensore sia rotto...probabilemente durante la spedizione...perchè non credo di aver sbagliato i collegamenti:ho seguito quelli nella figura del link che ho messo nel primo commento cambiando soli i piedi dell'eco e/o del trig...
Logged

0
Offline Offline
Sr. Member
****
Karma: 2
Posts: 376
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Nel codice linkato da brunello prova ad aggiungere
delayMicroseconds( 10 );
nella linea 17, nel passaggio da LOW ad HIGH per intenderci.

La sequenza dovrebbe essere
Code:
//porta bassa l'uscita del trigger
digitalWrite( triggerPort, LOW );
delayMicroseconds( 10 );      //<---------------------------------------Ritardo aggiunto!
//invia un impulso di 10microsec su trigger
digitalWrite( triggerPort, HIGH );
delayMicroseconds( 10 );
digitalWrite( triggerPort, LOW );
« Last Edit: February 27, 2013, 09:24:29 am by leo72 » Logged

Pages: [1]   Go Up
Jump to: