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.
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!
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