Buongiorno durante la realizzazione del mio progetto
sto avendo strani problemi di configurazione a livello software del sensore ad ultrasuoni.
Non riesco ad avere una lettura precisa.
Non sò se dipenda proprio dal sensore in questione, oppure sbaglio io nel calcolare qualcosa.
vi mostro la parte interessata.
void distanza()
{
long dur;
long dis;
digitalWrite(out,LOW);
delayMicroseconds(2);
digitalWrite(out,HIGH);
delayMicroseconds(10);
digitalWrite(out,LOW);
dur=pulseIn(in,HIGH);
long cm = microsecondsToCentimeters(dur);
long mm = microsecondsToMillimeters(dur);
//lcd.clear();
lcd.setCursor(0,1);
Serial.println(mm);
lcd.print(mm);
finale = mm;
delay(100);
}
long microsecondsToMillimeters(long microseconds)
{
// 340 m/s
// 34000 cm/s
// 340000 mm/s
// 340 mm/ms
// 0.34 mm/micros
// 1/0.34 mm/micros = 2.9411 micros/mm
return microseconds / 2.9411 / 2;
}
Il problema è che non mi legge affatto i millimetri.
legge dei numeri ma non sono precisi.
Mentre invece per quanto riguarda i centimetri funziona perfettamente.
ho misurato anche con un metro e corrisponde.
Cosa sbaglio in tutto ciò?