In wie weit können sich an einem Arduino angeschlossene Sensoren beeinflussen?
Ich habe ein kurioses Problem mit einem Anemometer – der Messwert springt ständig hin und her ohne das eine Logik erkennbar ist.
Gemessen werden die Umdrehungen mit einem Hall-Sensor TLE4905, dabei handelt es sich um einen digitalen Hall-Sensor der nur auf einen der beiden Pole reagiert.
Der Versuchsaufbau auf dem Breadbord funktioniert soweit, das ich die Umdrehungen auf dem HD44780 2004 LCD Display anzeigen lassen kann.
In dem Versuchsaufbau sind nur keine Helligkeitssensoren, kein Thermometer und kein Poti angeschlossen und der Motortreiber fehlt auch – aber der Sketch ist identisch.
Ich habe schon jede menge Kreuztests durchgeführt, den Arduino getauscht, die Platine durchgemessen usw. Der Logik nach müsste es jetzt an der Platine liegen – aber die hatte ich schon durchgemessen.
Hat jemand eine Idee welcher der anderen Eingänge den Eingang vom Anemometer verfälschen könnte
erstmal solltest du die verbindungen löten. die stecker kannste vergessen, die jumper kabel sind hauchdünn und können zu problemen führen. alles anständig verlöten, die strecken so kurz wie möglich halten um die logik-spannungen stabil zu halten und direkt auf die boards von deinen sensor-modulen jeweils mal nen 100mF Elko an vcc und gnd löten.
Guter Rat, die 100nF Kondensatoren.
Bei der wilden Verdrahtung kann es durchaus zu induzieren Impulsen kommen.
Die Kabel sind gerade mal so lang, dass ich es mit meinen Wurstfingern noch zusammen gebaut bekomme – OK ein 20er Flachbandkabel für die Installation im Bedienfeld könnte ich noch machen.
Problem ist halt mein bleifreies Lot – nach dem Löten erhöht sich der Schmelzpunkt und ein späteres Auslöten ist so gut wie unmöglich.
Was den Kondensator anbelangt – ich dachte immer, den nimmt man nur für prellende Eingänge. Der Hallsensor prellt nicht, der Lichtsensor ist analog, der RTC hängt genauso wie das Display am i2c-Bus, das Poti hängt auch an einem analogen Eingang und der Dallas Temperatur-Sensor habe ich wie in der Anleitung beschrieben mit einem Pullup an Pin 2 angeschlossen.
der kondensator soll die versorgungsspannung stabil halten.
nimm bleihaltiges lot oder kauf dir eine lötstation die für bleifreies löten geeignet ist bzw. höhere temperaturen packt. und nimm ordentliche litzen. die jumper kabel führen oft zu konflikten.
Gerne 👍🏽
Dein Vorschlag mit dem 100nf Kondensator zwischen VCC und GND war tatsächlich die Lösung – vielen Dank.
stützkondensator, pufferkondensator, glättkondensator. nenn ihn wie du magst es ist ein normaler kondensator ob elektrolyt oder folie ist hier relativ egal. es geht darum, spannungsschwankungen abzufangen und einen möglichst konstanten strom zu liefern. der kondensator wird geladen und speichert energie, wenn es zu einer kurzen unterversorgung kommt gibt er diese wieder frei. gerade bei so niedrigen spannungen von 3.3 und 5v kommt es auf eine stabile versorgung an, da bereits ein kleiner spannungsabfall zu fehlfunktionen führen kann.
Habe noch mal gegoogelt, der Kondensator den Du beschreibst nennt man wohl Stützkondensator – das werde ich dann morgen mal testen.
Ich habe sogar eine digitale Lötstation mit 80W aber ich nehme die nicht so gerne, weil die Spitzen alle eine beschi..ne Form haben
Nein … aber ich habe eine Idee, wie Du die Eingänge entkoppeln kannst:
Besorge Dir kleine Ferrit-Kerne (am besten zum “zuklappen”), bringe diese in die Sensoren-Leitungen ein, wickle das Sensoren-Kabel ein zwei oder dreimal um die eine Hälfte des Kerns (also eine Spule machen), fertig.
Damit hast Du die Signale erst einmal gegeneinander entstört.
Wenn es dann immer noch nicht klappt, dann könnte es auch Dein Sensor selbst sein, der eine Macke hat
Prinzipiell können sich unterschiedliche Sensoren durchaus beeinflussen entweder durch Fehler in der Software oder auch über direkte Kopplung des Messwertes.
Was zB zu Problemen mit Arduino führen kann ist wenn du mehrere Sensoren am selben I2C Bus hast und ein OS wie Freertos verwendest, oder mehrere Sensoren an SPI wenn du die Chipselect leitungen nicht korrelt steuerst.
Analoge Messignale können durch externe Einstreuungen verfälscht werden, hier kann man mit einem Tiefpass am ADC abhilfe schaffen.
Eine direkte Beeinflussung des Sensors ist je nach Messprinzip natürlich auch möglich.