Forum: Mikrocontroller und Digitale Elektronik Messen mit dem Atmega2560


von Guggug (Gast)


Lesenswert?

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

von Peter D. (peda)


Lesenswert?

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.

von Guggug (Gast)


Lesenswert?

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

von Karl H. (kbuchegg)


Lesenswert?

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
von grundschüler (Gast)


Lesenswert?

jeweils 5 Messungen auswerten, wenn da größere Abweichungen sind, 
Messwert auf Null setzen.

von M. K. (sylaina)


Lesenswert?

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.

von Martin S. (led_martin)


Lesenswert?

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

von Karl H. (kbuchegg)


Lesenswert?

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.

von M. K. (sylaina)


Lesenswert?

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!

von Guggug (Gast)


Lesenswert?

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.

von Guggug (Gast)


Lesenswert?

Jetzt hab ich die Anderen einfach vergessen. Tut mir leid.

Danke an Alle die mir geantwortet haben.

von Martin S. (led_martin)


Lesenswert?

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
Noch kein Account? Hier anmelden.