Hallo,
ich habe mal eine Verständnisfrage zum Messen einer Logikspannung:
An meinem Arduino Nano habe ich an einem der beiden Interrupt-Eingänge
einen Taster gegen GND angeschlossen. Der Pin wurde per Software auf
High gesetzt um den internen Pull-Up Widerstand zu aktivieren. Nun
wollte ich mit einem Multimeter die Spannung zwischen dem Pin und GND
messen (nur zu meinem Verständnis).
Dabei wurde der Interrupt allerdings ausgelöst und ich habe mich gefragt
warum das so ist? Schließlich ist der Eingangswiderstand doch sehr
groß?!?
Da ich Anfänger bin: bitte nicht gleich schlagen :D
Danke!
Viele Grüße Manni
Manni schrieb:> Nun> wollte ich mit einem Multimeter die Spannung zwischen dem Pin und GND> messen (nur zu meinem Verständnis).>> Dabei wurde der Interrupt allerdings ausgelöst und ich habe mich gefragt> warum das so ist?
Du hast das Multimeter aber nicht zufällig zur Strommessung verkabelt?
Manni schrieb:> Nun wollte ich mit einem Multimeter die Spannung zwischen dem Pin und> GND messen (nur zu meinem Verständnis).
Welcher Anschluss wurde zuerst berührt? Der Interrupt Eingang oder der
GND?
Manni schrieb:> Dabei wurde der Interrupt allerdings ausgelöst und ich habe mich gefragt> warum das so ist? Schließlich ist der Eingangswiderstand doch sehr> groß
Aber die Leitung hat auch eine (entladene) Kapazität gegenüber der
Umgebung/Masse, die von dem Pullup erst aufgeladen werden muss. Das
dauert ein paar Mikrosekunden.
Im umgekehrten Fall, -die Leitung ist für eine Widerstandsmessung vom
Ohmmeter aufgeladen worden-, kann die gespeicherte Energie sogar zur
Zerstörung mancher Höchstfrequenzdioden ausreichen.
Gerald K. schrieb:> Welcher Anschluss wurde zuerst berührt? Der Interrupt Eingang oder der> GND?
Kapazitiver Taster, gebildet durch das Messgerät, wenn der
Interrupteingang angetippt wird.
Danke für die Hilfe, scheint also die Kapazität zu sein. Ich habe
testweise mal beide "Seiten", also GND und den Pin zuerst berührt. Hat
keinen Unterschied gemacht. Was hättet ihr denn da erwartet und warum?
Dieter D. schrieb:> Probiere mit einem 1 nF Kondensator, ob Du damit den Interrupt> auch> auslöst.
Ich habe hier nur 100 nF, 10 nF und 30 pF herumliegen. Kann ich auch
diese Größen zum testen nehmen?
Jörg R. schrieb:> Manni schrieb:>> Nun>> wollte ich mit einem Multimeter die Spannung zwischen dem Pin und GND>> messen (nur zu meinem Verständnis).>>>> Dabei wurde der Interrupt allerdings ausgelöst und ich habe mich gefragt>> warum das so ist?>> Du hast das Multimeter aber nicht zufällig zur Strommessung verkabelt?
Ne, das nicht. Ich habe das aber nach deinem Kommentar mal ausprobiert
und es hat natürlich auch den Interrupt ausgelöst. Was mich dabei aber
viel mehr gewundert hat: Das Multimeter zeigte einen Strom von ca. 40 mA
an. Soweit ich weiß, ist der interne Pull-Up des Arduino >= 20 kOhm. Das
wäre nach URI ein sehr viel kleinerer Strom... warum fließen da bei mir
40 mA?
Nochmals danke!
Für mich ein gutes Beispiel, warum man an schnell reagierenden Eingängen
nicht die internen PUs verwenden sollte. 5k extern hätten das
vermieden.
Die sind gut, zum Vermeiden von offenen, ungenutzten Eingängen. Auch
noch nutzbar, wenn man den Eingang (selten) pollt (Taster), nicht aber
für Interrupteingänge!
Manni schrieb:> Was mich dabei aber> viel mehr gewundert hat: Das Multimeter zeigte einen Strom von ca. 40 mA> an. Soweit ich weiß, ist der interne Pull-Up des Arduino >= 20 kOhm. Das> wäre nach URI ein sehr viel kleinerer Strom... warum fließen da bei mir> 40 mA?
Bist du sicher, dass du den Pin nicht als Ausgang konfiguriert hast?
Dann wäre so ein Strom plausibel, aber damit schließt du beim Drücken
des Tasters den Ausgang kurz.
Manni schrieb:> Was hättet ihr denn da erwartet und warum?
Kapazitive Einstreuung über dich, der das Messgerät in Händen hält. Wird
zuerst der GND angeschlossen, dann fällt das weg.
Aber vermutlich ist am Messgerät eine Kapazität parallel zu den Buchsen
vorhanden, zumindest am Eingang des AD-Wandlers, die geladen wird und
deshalb den Pin ganz kurz mal runter zieht.
Manni schrieb:> Das Multimeter zeigte einen Strom von ca. 40 mA> an. Soweit ich weiß, ist der interne Pull-Up des Arduino >= 20 kOhm.
Warum bist du an der Stelle überhaupt im Strommessbereich? Dann löst das
auf jeden Fall aus. Unabhängig davon:
Rolf M. schrieb:> Bist du sicher, dass du den Pin nicht als Ausgang konfiguriert hast?
Manni schrieb:> Das Multimeter zeigte einen Strom von ca. 40 mA an.Manni schrieb:> Nun wollte ich mit einem Multimeter die Spannung zwischen dem Pin und> GND messen
40mA ist aber keine Spannung. Du solltest erst mal mit drm Multimeter
umgehen lernen und es auf Volt stellen.
Trotzdem zeigt 40mA dein Problem: du hast den Pin gar nicht suf Eingang
mit pull up gestellt, sondern auf Ausgang mit high. Und dein Amperemeter
schliesst diesen Ausgang brutal mit Masse kurz. Der uC liefert dann
alles was er kann, eben 40mA absolute maximum rating, um den Pin doch
high zu bekommen, was er nicht schafft.
Ich kenne den Unterschied zwischen Strom und Spannung... auch als
Anfänger, lernt lesen! Ich habe geschrieben, dass ich das wegen dem
Kommentar von Jörg R. mal ausprobiert habe! Dabei ist mir das mit den 40
mA aufgefallen.
Allerdings hattet ihr recht: in meinem Code war noch eine Leiche, die
den Ausgang tatsächlich wieder auf Output gestellt hat. Das habe ich
gestern total übersehen. Jetzt funktioniert es.