Hallo Gemeinde... Ich habe mal ein kleines (hoffe ich zumindest) Problem beim Messen. Ich habe einen Atmega 2560. An diesem will ich 2 Spannungen von 1 bis max. 3 Volt messen. Alles funktioniert soweit, bis auf die Anzeige auf dem LCD. Messe ich über AD7 zeigt mir das Display auf AD7 den richtigen Wert an, aber der Wert von AD6 zappelt unkontrolliert rum. (AD6 hängt zu diesem Zeitpunkt frei in der Luft). Messe ich über AD6, wird mir dort der richtige Wert angezeigt, aber AD7 (welcher dieses mal frei in der Luft hängt) zappelt unkontrolliert auf und ab. Gibt es eine Möglichkeit softwaremäßig diesen (freien) Pin auf 0 zu ziehen so das er nicht ständig irgend welche fantasie Werte anzeigt? Danke schon mal für Eure Tips Grüße aus dem Süden
Guggug schrieb: > Gibt es eine Möglichkeit softwaremäßig diesen (freien) Pin auf 0 zu > ziehen so das er nicht ständig irgend welche fantasie Werte anzeigt? Ja, einfach nicht messen und "0" anzeigen.
Hallo Peter. So klappt das nicht. Ich habe 2 Strippen und die verwende ich unterschiedlich je nach Bedarf. Es kann sein das ich 10 mal den einen Wert hintereinander messe. Danach 3 mal den anderen Eingang benutze. Ich habe schon gedacht, das über einen Taster zu steuern, bin aber wegen der Umgebung (Dreck, Staub) davon abgekommen, irgend welche mechanischen Bauteile zu verwenden. Am liebsten wäre mir eine Softwarelösung. Zumal mir im Leerlauf (keine Strippe angeschlossen) schon 1.2V (schwankend) angezeigt werden. Grüße aus dem Süden
Was du gerade siehst, das ist das ein nicht mit irgendwas verbundener Eingang keineswegs 0V aufweist. Die Eingänge sind hochohmig genug, so dass sie wie Antennen wirken und sich jedes elektromagnetische Feld in ihrer UMgebung einfangen. Und davon haben wir heutzutage mehr als genug rund um uns. Fernsehen, Radio, Handy, 230V in der Wand, der Staubsauger im Nachbarzimmer, Monitor, der Rechner selber, der Quarz auf der Platine, ..... überall wo Wechselströme sind wirken die daran angeschlossenen Kabel oder Leitungen als Antenne, die elektromagnetische Felder abstrahlen. Und umgekehrt wirkt jedes Kabel, jede Leiterbahn als Antenne, in der ein wechselndes elektromagnetisches Feld eine Spannung induziert. Physik lässt sich nun mal nicht überlisten. Du könntest vielleicht versuchen, mit einem großen Widerstand einen Pulldown zu installieren. Größenordnung würde ich mal 10M versuchen. Natürlich verfälscht der dir die Messung ein wenig, viel wirds aber nicht sein. Kann auch sein, dass 10M zu gross sind, dann mal mit 1M probieren. Aber wesentlich kleiner wirst du nicht gehen können, denn dann wird der Spannungsteiler, den du im Prinzip mit dem Widerstand einführst schon wirksam. Wenn das nicht hilft, dann bleibt nur: Dein Benutzer muss dir sagen, welche Eingänge relevant sind und welche nicht.
:
Bearbeitet durch User
jeweils 5 Messungen auswerten, wenn da größere Abweichungen sind, Messwert auf Null setzen.
Guggug schrieb: > Am liebsten wäre mir eine Softwarelösung. Das ist leider nicht möglich. Dein Atmega weiß ja nicht wann das Gezappel am Pin von einem Signal herrührt, dass du angelegt hast, und wann das Gezappel einfach daher kommt, weil du den Pin offen gelassen hast. Am pragmatischsten ziehst du die ADC-Pins mit einem Pulldown auf 0V runter. Die Nachteile dazu sollten klar sein: Dein Eingangsmesswiderstand wird schlechter. Aber vielleicht genügen dir als Eingangsmesswiderstand ja 100 kOhm.
Das könnte man schon per Software rausbekommen: Einen Widerstand (z.B. 47k) vom AD-Pin zu einem anderen, noch freien, IO-Pin. IO auf Ausgang, mit Pegel '0', Messen, dann IO auf '1', nochmal messen. Bringt die 1. Messung Werte nahe 0, und die zweite Messung Werte nahe Maximalwert, war der Messeingang offen. Liegen die Werte nahe beieinander, ist ein Messobjekt angeschlossen, dann den IO-Pin auf Eingang schalten (Er ist dann hochohmig), und nochmal messen. Diese Messung ist jetzt nicht mehr durch den Widerstand verfälscht. Nach dieser Messung aber nochmal prüfen, ob das Messobjekt nicht zwischenzeitlich abgeklemmt wurde. Mit freundlichen Grüßen - Martin
Martin Schlüter schrieb: > Das könnte man schon per Software rausbekommen: Einen Widerstand (z.B. > 47k) vom AD-Pin zu einem anderen, noch freien, IO-Pin. IO auf Ausgang, > mit Pegel '0', Messen, dann IO auf '1', nochmal messen. > ... Gute Idee! Das hat was. Dann könnte man in der Anzeige auch schön drauf hinweisen, dass am Eingang nichts angeschlossen ist. Gefällt mir. D.h. wenn man Pins frei hat.
Martin Schlüter schrieb: > Das könnte man schon per Software rausbekommen: Einen Widerstand > (z.B. > 47k) vom AD-Pin zu einem anderen, noch freien, IO-Pin. IO auf Ausgang, > mit Pegel '0', Messen, dann IO auf '1', nochmal messen. Bringt die 1. > Messung Werte nahe 0, und die zweite Messung Werte nahe Maximalwert, war > der Messeingang offen. Liegen die Werte nahe beieinander, ist ein > Messobjekt angeschlossen, dann den IO-Pin auf Eingang schalten (Er ist > dann hochohmig), und nochmal messen. Diese Messung ist jetzt nicht mehr > durch den Widerstand verfälscht. Nach dieser Messung aber nochmal > prüfen, ob das Messobjekt nicht zwischenzeitlich abgeklemmt wurde. > > Mit freundlichen Grüßen - Martin Das ist natürlich eine, wie ich finde, sehr elegante Lösung wie man ohne bei der Hardware zu schaun herausbekommen kann, ob da auch ein Sensor dran hängt oder nicht. Tolle Idee die ich mir merken werde!
Hallo Martin Schlüter Diese Lösung ist mit Abstand das Genialste was mir seit langem unter gekommen ist. Vielen Dank für den Tip. Grüße aus dem Süden.
Jetzt hab ich die Anderen einfach vergessen. Tut mir leid. Danke an Alle die mir geantwortet haben.
Guggug schrieb: > Grüße aus dem Süden. Danke für das dicke Lob, ich lebe in Furtwangen im Schwarzwald, ist in Süddeutschland. Mit freundlichem Gruß - Martin
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.