SRF05 ist mein Quellcode richtig

OP #2043881
Lesenswert?
• ▲
▼
Hallo

Habe einen SRF05 in ein Edelstahl rohr verpflanzt dieses soll den 
Füllstand eines Tanks Messen.

Mein Problem er zeigt ca 2 zentimeter zu viel an.

der Abstand vom Sensor bis zum Grund ist 29cm er zeigt mir 32cm an

Atmega 48 mit 16Mhz.

#define trigger()    DDRD |= ( 1 << 0);
#define trigger_high()  PORTD|=(1<<0); //HEIGH TRIGGER
#define trigger_low()  PORTD&=~(1<<0); //LOW TRIGGER



while(1)
{
  wert=abstand();
  _delay_ms(50);
  wert+=abstand();
  _delay_ms(50);
  wert+=abstand();
  _delay_ms(50);
  wert+=abstand();
  _delay_ms(50);
  wert+=abstand();
  _delay_ms(50);
  wert+=abstand();
  wert/=6;
  if(wert>30000)wert=0;

wert=(((wert/2))/5.8); //in mm

}


void init_timer(void)
{
TCCR1A =0x00;
TCCR1B =(1<<CS11);
}


unsigned int abstand(void)
{
   trigger_high();
   _delay_us(20);
   trigger_low();
   while(!(PIND & (1<<1)));
   TCNT1 = 0;                            //Counter Register auf 0 setzen
   while(PIND & (1<<1));                 //warten bis Signalende
   ergebnis=TCNT1;                       //Signallänge auslesen
   return  ergebnis;
}


ist das so IO.

Stimmen die Timer????

Danke

Gruß
Andy
Gast #2044317
Lesenswert?
• ▲
▼
> wert=(((wert/2))/5.8); //in mm

float wert; mit -lm gelinkt

oder

int wert; ohne -lm gelinkt?
=> Ausdruck ist identisch zu: wert=(((wert/2))/5)

Vermute #2, da Ergebnis exakt Faktor 5,8/5 zu groß ist.
Gast #2045740
Lesenswert?
• ▲
▼
Alle anderen sind klüger als ich und äussern keine vorschnelle 
Vermutungen auf deine angegebenen Daten.

Wenn die drei cm (10% der Messung) wichtig sind, würde ich an deiner 
Stelle versuchen, die Problematik genauer zu erklären.
Gast #2045925
Lesenswert?
• ▲
▼
Ich habe jetzt das "Datenblatt" für den SRF05 gelesen 
(http://www.robot-electronics.co.uk/htm/srf05tech.htm). Leider steht 
nicht viel zur Genauigkeit dabei (Q. What is the accuracy of the 
ranging?
A.  We quote 3-4cm.).

Und den Code soweit ergänzt, so dass man ihn simulieren kann (16 MHz, 
-Os). Ich finde aber keine Softwareprobleme.

Bleiben also Hardwareprobleme. Man müsste ein Oszilloskop an den PD1-Pin 
hängen und nachmessen, wie lange der Echopuls wirklich ist.

Hast du schon geprüft, ob Echos von der Wand des "Edelstahlrohrs" das 
Ergebnis verfälschen? Die Sonarkeule ist beim SRF05 ja nicht i der FAQ 
angegeben, bei anderen Sonaren kann die schon breit sein.

Hast du schon geprüft, ob die Fehlmessung nur beim Echo von der 
Flüssigkeitsoberfläche im Tank auftritt oder auch beim Echo von anderen 
Flächen?
Angehängte Dateien:
Gast #2046075
Lesenswert?
• ▲
▼
Also ... es wird doch wohl die Echozeit gemessen. Für die Entfernung 
muss die Schallgeschwindigkeit verrechnet werden und die ist alles 
andere als konstant (Dichte, hervorgerufen durch Luftdruck, Temperatur, 
Schwebstoffe).

http://de.wikipedia.org/wiki/Schallgeschwindigkeit#Temperaturabh.C3.A4ngigkeit_in_Luft

Wir haben derzeit niedrige Außentemperaturen, die Schallgeschwindigkeit 
ist kleiner, darum werden größere Zeiten gemessen.

Oder hat das SRF05 dafür eine Korrekturfunktion? In der Beschreibung 
finde ich dazu nichts. Temperatur allein wäre schon ein guter Ansatz.

Ansonsten würde ich in solchen Fällen immer auf corriger la fortune 
setzen. Solange die Messergebnisse wenigstens konstant sind, Nullpunkt 
und Steigung ermitteln (zwei Messwerte möglichst weit auseinander), 
Temperatur berücksichtigen und dann passt die Sache auch. Vermutlich 
passt es jetzt schon, wenn die niedrigere Temperatur berücksichtigt 
würde.

Antwort schreiben

Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt. Bitte hier nur auf die ursprüngliche Frage antworten, für neue Fragen einen neuen Beitrag erstellen.

Formatierung
  • [c]C-Code[/c]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] – Link zu einem Artikel
  • Verweis auf einen anderen Beitrag: Rechtsklick auf dessen Beitrags-ID (#8078628), „Adresse kopieren“, in den Text einfügen

Mehr zur Formatierung

Längeren Sourcecode als Anhang, nicht in den Text. JPG nur für Fotos und Scans; Zeichnungen und Screenshots als PNG oder GIF. Siehe Bildformate.

Schon registriert? Anmelden

Wird nicht angezeigt. Wir schicken dir einen Link; sobald du damit bestätigst, erscheint dein Beitrag.

Mit dem Abschicken legst du einen kostenlosen Account an und erkennst die Nutzungsbedingungen und die Datenschutzerklärung an.