Ich habe folgendes Problem und zwar misst der Sensor starke unterschiedliche Werte +- 20 cm
Der Sensor ist einem geschlossenen Behälter verbaut. Er soll mir den Füllstand vom Kohle Vorrats Behälter der Heizung messen. Und diese Werte werden an meinen Webserver übermittelt.
Ich messe schon mehrfach um einen Mittelwert zu erhalten.
Die schwarze Linie ist der Sensor umgerechnet in Prozent.
const int trigPin = A0;
const int echoPin = A1;
const int messungen = 10;
int start = 0;
long duration;
float distance[messungen];
float ssensor_wert;
unsigned long previousMillis_ssensor = 0;
const long interval_ssensor = 30000;
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
}
void loop() {
unsigned long currentMillis_ssensor = millis();
if (currentMillis_ssensor - previousMillis_ssensor >= interval_ssensor or start == 0) {
previousMillis_ssensor = currentMillis_ssensor;
read_ssensor();
}
}
void read_ssensor() {
for (int i = 0; i < messungen; i++) {
digitalWrite(trigPin, LOW);
delayMicroseconds(2);
digitalWrite(trigPin, HIGH);
delayMicroseconds(10);
digitalWrite(trigPin, LOW);
duration = pulseIn(echoPin, HIGH);
distance[i] = (duration * 0.0343) / 2;
delayMicroseconds(20);
}
for (int i = 0; i < messungen; i++) {
ssensor_wert = ssensor_wert + distance[i];
}
ssensor_wert = ssensor_wert / messungen;
if (start == 0) {
start = 1;
}
}
Hallo
die Kohle im Bunker bildet keine plane Oberfläche. So werden die Refektionen gemessen und es kommt zu den Schwankungen in den Messergebnissen.
Schaue dir das Tutorial an, um die Messergebnisse zu filtern.
paulpaulson:
Hallo
die Kohle im Bunker bildet keine plane Oberfläche. So werden die Refektionen gemessen und es kommt zu den Schwankungen in den Messergebnissen.
Schaue dir das Tutorial an, um die Messergebnisse zu filtern.
Das was in dem Tutorial steht mach ich schon den Mittelwert aus 10 Messungen als Messwert übernehmen.
Ich habe es halt nur anders geschrieben.
So das hat nicht wirklich was gebracht die Linie ist genau so gehackt.
Was gibt es denn für Alternativen eine so grobe Oberfläche zu messen?
Würde es mit einem TOF laser Sensor besser funktionieren? Oder werden die Strahlen genau so abgepralabgeprallt das die strahlen nicht direkt zum Sensor zurück kommen.
ist ja alles schön und gut mit delay(500)
10 messungen x delay(500) = delay gesamt 5000
aber ich kann den controller nicht für eine messung 5s blockieren
da hängen noch weitere aktoren dran die ich gerne weiter live steuern würde ohne 5s verzögerung
saibot852:
aber ich kann den controller nicht für eine messung 5s blockieren
da hängen noch weitere aktoren dran die ich gerne weiter live steuern würde ohne 5s verzögerung
Dann hast Du ein ganz anderes Problem!
Du solltest nach jeder Messung TESTWEISE das Abklingen der Echos testen.
Wer so wie Du entsprechendes in einem Livesystem macht und damit nicht umgehen kann, sollte sich nicht beschweren.
Nimm Wäge-/Drucksensor(en) und platziere am Boden, wenn Du nicht 5 Minuten austesten kannst, ob die Echos ausbleiben!
Fettig!
das ist es das ist in 5 min nicht erkennbar das tritt erst nach stunden auf
wie du vill erkennst ist das ein trend der letzten 8 h und da trat es erst um ca 20 uhr auf, die software habe ich um 11:45 gebrannt und es trat dann erst nach über 7h auf
Wie groß sind denn die Kohlestückchen so?
Wäre es denkbar, dass sich tatsächlich an der Messtelle ein "Strudel" bildet und der Rest dann später nachrutscht? Nach einer Viertelstunde ist der Spuk ja wieder vorbei.
saibot852:
ist ja alles schön und gut mit delay(500)
10 messungen x delay(500) = delay gesamt 5000
aber ich kann den controller nicht für eine messung 5s blockieren
da hängen noch weitere aktoren dran die ich gerne weiter live steuern würde ohne 5s verzögerung
Was genau macht der Interrupt in deiner Funktion ?
Und warum rufst du die US-Messfunktion nicht alle 5sek. per Timer (Simple Timer) aus der Loop auf.
Da hast du keine Blockade der Loop.
HotSystems:
Was genau macht der Interrupt in deiner Funktion ?
Und warum rufst du die US-Messfunktion nicht alle 5sek. per Timer (Simple Timer) aus der Loop auf.
Da hast du keine Blockade der Loop.
Die Funktion kannte ich bis jetzt noch nicht schaue ich mir gerne morgen Mal was genauer an.
Mit den interupts hab ich Mal gelesen das wenn die internen Timer überlaufen das diese zu Störungen der Messergebnisse führen kann.
wno158:
Wie groß sind denn die Kohlestückchen so?
Wäre es denkbar, dass sich tatsächlich an der Messtelle ein "Strudel" bildet und der Rest dann später nachrutscht? Nach einer Viertelstunde ist der Spuk ja wieder vorbei.
Die Kohle ist 5-20mm ja es bildet sich ein kleiner Trichter der ist ca 10 cm tiefer wie der Rest. An dem Punkt der im Trent so zusammenbricht ist eine Differenz von 28cm im Gegensatz zu vorher.
Die Gesamthöhe des Vorratsbehälter bis zur Förderschnecke ist 90 cm
Ich habe den Sensor so platziert das er in etwa mittig in die senke der Kohle trifft.
Kannst Du bei "unplausiblem" Füllstand einen Alarm auslösen und dann in den Behälter schauen? Vielleicht auch eine ESPCam oder eine GoPro triggern...
Ich glaube es gibt eine von Null verschiedene Wahrscheinlichkeit dafür, dass der Meßwert echt ist.
saibot852:
Die Funktion kannte ich bis jetzt noch nicht schaue ich mir gerne morgen Mal was genauer an.
Mit den interupts hab ich Mal gelesen das wenn die internen Timer überlaufen das diese zu Störungen der Messergebnisse führen kann.
Dagegen helfen aber keine Interrupts, sondern fehlerfreies programmieren.
saibot852:
Die Kohle ist 5-20mm ja es bildet sich ein kleiner Trichter der ist ca 10 cm tiefer wie der Rest. An dem Punkt der im Trent so zusammenbricht ist eine Differenz von 28cm im Gegensatz zu vorher.
Die Gesamthöhe des Vorratsbehälter bis zur Förderschnecke ist 90 cm
Ich habe den Sensor so platziert das er in etwa mittig in die senke der Kohle trifft.
In dem Fall würde ich im Außenbereich einen zweiten Sensor anbringen und die Messungen "vergleichen".
wno158:
Kannst Du bei "unplausiblem" Füllstand einen Alarm auslösen und dann in den Behälter schauen? Vielleicht auch eine ESPCam oder eine GoPro triggern...
Ich glaube es gibt eine von Null verschiedene Wahrscheinlichkeit dafür, dass der Meßwert echt ist.
Beide cams sind nicht vorhanden
Könnte ne mai versenden lassen die Frage ist nur bekomme ich es rechtzeitig mit und bin ich in der Nähe um rechtzeitig da zu sein