Loading...
Pages: [1]   Go Down
Author Topic: [risolto]Problema Sensore ultrasuoni  (Read 141 times)
0 Members and 1 Guest are viewing this topic.
Roma
Offline Offline
Jr. Member
**
Karma: 0
Posts: 71
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ciao a tutti , domani ho le mie gare di robotica con Arduino e il sensore di ultrasuoni ancora si lamenta un po , in pratica , io gli dico che se un ogetto è piu vicino di 3 cm deve fare qualcosa ( sotto metterò il codice ) ma lui lo vede già a 10 cm
utilizzo un sensore SCH o qualcosa di simile ora non posso vederlo , con un solo piedino che funziona sia da trigger che da echo
ecco il codice :
Code:
void loop()
  {
    pinMode(ultrasuoni, OUTPUT);                      
    digitalWrite(ultrasuoni, LOW);                           // il sensore non manda nessun segnale per 2 microsecondi
    delayMicroseconds(2);
    digitalWrite(ultrasuoni, HIGH);                          // il sensore manda un segnale di onda quadra per 10 sec
    delayMicroseconds(10);
    digitalWrite(ultrasuoni, LOW);                          // il sensore torna a non emmettere niente
    pinMode(ultrasuoni, INPUT);
    durata = pulseIn(ultrasuoni, HIGH);       // qui dico che la durata è uguale al tempo che ci mette il segnale a tornare al ricevitore
    distanza = durata/58;                       /* ecco questo è il passaggio che mi è meno chiaro  XD perchè lo ha fatto un mio amico
    if (distanza<= 3)                                  perchè non dividere per due la moltiplicazione tra la velocita del suono e la durata ? */
    {
      Serial.println (distanza );
      right();
      delay(700);
      avanti();
    }

Grazie a tutti per l 'aiuto
« Last Edit: March 19, 2013, 12:09:39 pm by revolver995 » Logged

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 162
Posts: 15749
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

È un sensore SRF05

distanza = durata/58; 
/* ecco questo è il passaggio che mi è meno chiaro  smiley-lol perchè lo ha fatto un mio amico perchè non dividere per due la moltiplicazione tra la velocita del suono e la durata ? */

perché se fai i calcoli arrivi a questo fattore per la conversione µS a cm.

Non ha senso far fare a Arduino il calcolo di quel fattore ogni volta che calcola la distanza.

Ciao Uwe
Logged

Roma
Offline Offline
Jr. Member
**
Karma: 0
Posts: 71
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

quindi la distanza la metto in microsecondi dell if ? tipo 3000000 e chiaramente tolgo quel /58 provo subito grazie
Logged

ivrea (to)
Offline Offline
God Member
*****
Karma: 10
Posts: 644
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Perchè non provi:
distanza = durata/58;     
Serial.print ("durata "+durata );     //<<--- aggiunta
Serial.println ("   distanza "+distanza );     //<<--- aggiunta
    if (distanza<= 3)       
    {  Serial.println ("!!!!okay "+distanza );

e poi fai un pò di prove con gli oggetti?
secondo me uwe non diceva di togliere il /58 ma che non ottieni 3 cm (forse mi sbaglio)

Logged

Roma
Offline Offline
Jr. Member
**
Karma: 0
Posts: 71
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

probabile perche non funziona  smiley-mr-green
Logged

Roma
Offline Offline
Jr. Member
**
Karma: 0
Posts: 71
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

aaaaa mi vengono stringhe in codice ascii o almeno credo una roba immensa , Uwe che intendi non ha senso far fare il calcolo ad arduino ogni volta , glie lo devo far fare per convertire i microsecondi in cm , ho provato anche a togliere il /58 e vedere il valore della durata in microsecondi per poi mettere if durata<  100 fai questo ma niente , la distanza non è cambiata quasi di nulla
Logged

Roma
Offline Offline
Jr. Member
**
Karma: 0
Posts: 71
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

risolto tutto magicamente , grazie ragazzi qualsiasi stregoneria abbiate fatto   smiley-lol metto risolto
Logged

Forum Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 219
Posts: 16502
Don't know what I do
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Com'è che hai risolto (per i posteri)?
Logged


Pages: [1]   Go Up
Print
 
Jump to: