arduino mega 2560 R3 - Pin 13, 20 und 21 immer high??

hallo,

habe seit heute ein arduino mega 2560 r3.
gleich beim ersten anstecken und bare minimum sketch aufspielen ist mir aufgefallen, dass die led an pin 13 dauerhaft leuchtet...

wenn ich dann allerdings eine echte led an pin 13 anschließe, leuchten diese und die auf dem board nicht mehr, so wie es ja sein sollte.

was könnte das sein?
bootloader vom 2560 habe ich schon mal neu geschrieben, keine veränderung.

habe mal alle 53 pins ausgelesen, pin 13, 20 und 21 werden immer high angezeigt.

vielen dank,
stefan

habe gerade mit einem multimeter nachgemessen:

im bare minimum sketch, also ohne irgendwelche anweisungen, liegen zwischen GND und pin13 0,38V an... ?!?
die kleine led leuchtet dauerhaft.

edit: an allen pins liegen ca. 0,35V an...
edit2: wenn ich das board nur an einem 9V netzteil betreibe messe ich an allen digitalen pins 1,2V...

setze ich den pin auf LOW sind es 0V und auf HIGH dann 5V.
an pin 21 und 21 liegen immer knapp 5V an.

hilfe! =)
lg,
stefan

Wie üblich gilt: Wer misst, misst Mist.

http://arduino.cc/en/Tutorial/DigitalPins:
Arduino (Atmega) pins default to inputs, so they don't need to be explicitly declared as inputs with pinMode(). Pins configured as inputs are said to be in a high-impedance state.

Die Pins sind standardmäßig hochohmige Eingänge. Daran eine Spannung messen zu wollen ist irgendwie Banane...

ok, messen macht keinen sinn, aber warum leutet die led an pin 13 dauerhaft?
ist das wohl normal, mein UNO machts ja auch nicht?

tres:
wenn ich dann allerdings eine echte led an pin 13 anschließe, leuchten diese und die auf dem board nicht mehr, so wie es ja sein sollte.

Nein, das sollte so nicht sein. Hast Du einen Vorwiderstand in Reihe zum LED geschaltet? Es sollten beide leuchten. Wenn Du das LEd ohne Vorwiderstand angeschlossen hast ist es möglich (auch wenn wenig wahrscheinlich) daß das Pin kaputtgegangen ist und dauerhaft auf H liegt.

Pin die nicht explizit als Ausgänge definiert wurden sind Eingänge. Diese sind hochohmig (größer als 1MOhm) Wenn Du nun mit einem noch hochohmigeren Meßgerät mißt, dann miß Du die Spannung die durch Leckströme gegeben ist. Schalte mal einen großen Widerstand (zB 100kOhm) zwischen den Pins auf Masse und miß die Spannung. Du wirst sehen sie wird 0V sein.

an pin 21 und 21 liegen immer knapp 5V an.

Du meinst 20 und 21. Da dran ist die I2C Schnittstelle und darum mit einer anderen Doppelfunktion (und darum interne Elektronik) als die anderen Pins. Dies kann ruhig dazu führen daß die Leckströme die Pins auf 5V ziehen und nicht auf 0,35V wie die anderen Pins.

Generell ist zu, sagen daß Digitale Multimeter mit ihrem hohen Eingangswiderstand zwar die zu messende Schaltung nicht belasten und dadurch stören, aber dadurch können Spannungen gemessen werden, die durch kleine Leckströme ( nicht 100%-es Sperren von MOSFET-Transistoren) an den Eingangsimpedanzen erzeugt werden. Wenn Du mit einem Drehspulmeßgerät mißt, dann mißt Du in diesen Fällen nichts weil dies eine kleineren Innenwiderstand haben.
Nicht umsonst habe ich in der Schule 2 Jahre lang Meßtechnik als Fach gehabt mit 4 Stunden in der Woche. Richtig messen ist eine Kunst und noch schwieriger ist es, alle (möglichen) Fehlerquellen zu erkennen und zu beseitigen bzw sich bewußt zu sein "wieviel" man falsch mißt.

habe seit heute ein arduino mega 2560 r3.
gleich beim ersten anstecken und bare minimum sketch aufspielen ist mir aufgefallen, dass die led an pin 13 dauerhaft leuchtet...

Das kann ich mir nicht erklären. Mit dem http://arduino.cc/en/Tutorial/blink sketch müßte das LED mit 0,1 Hz blinken ( 1s an und 1s aus) War das Led an pin 13 auch dauerhaft an bevor Du den ersten Sketch hinaufgeladen hast? Bist Du sicher daß Du nicht die Pin L mit PWR verwechselst?

grüße Uwe

uwefed:
Mit dem http://arduino.cc/en/Tutorial/blink sketch müßte das LED mit 0,1 Hz blinken ( 1s an und 1s aus)

Gehen italienische Uhren etwas anders? :wink: Ein Durchlauf dauert hierzulande 2 Sekunden, was eine Frequenz von 0,5 Hz ergibt.

hallo uwe, danke für deien ausführliche antwort!!!

Nein, das sollte so nicht sein. Hast Du einen Vorwiderstand in Reihe zum LED geschaltet?

ja die angeschlossene LED hat einen vorwiderstand, das ist meine "testLED" da habe ich den widerstand fest ins beinchen gelötet.
was ich mit "sie leuchten nichtmehr, so wie es sein sollte" meinte, ist dass das unerklärliche dauerleuchten bei einem bare minimum sketch weg ist.
stelle ich pin 13 auf high leuchten beide und bei low keine.

das mit pin 20 und 21 habe ich verstanden, bin noch von den vielen pins des MEGA verwirrt =)
... und danke für die erklärung zum messen, da muss ich mich wohl auch mal genauer mit beschäftigen!

Das kann ich mir nicht erklären. Mit dem http://arduino.cc/en/Tutorial/blink sketch müßte das LED mit 0,1 Hz blinken...

das tut sie auch. die led und der pin 13 funktionieren so gesehen ganz normal. auch pwm geht.

als ich das board ausgepackt hatte und zum allerersten mal ans usbkabel gehängt hatte hat die led dauerhaft geblinkt, ich denke mal das ist factory default oder so.
dann habe ich den treiber in windows installiert und zuallererst "bare minimum sketch" drauf. und da hat sie dann kontinuierlich geleuchtet.
die led leuchtet auch nicht sehr hell. beim blink beispiel leuchtet sie viel heller.
ich meine schon die gelbe led direkt neben pin 13, mit dem L daneben.

danke für deine mühen :wink:

Die LED L an Pin 13 ist in den R3 Versionen über als Spannungfolger geschaltenen Opertionsverstärker vom Pin ausgekoppelt. So ist weder ein Pulldown-Widerstand (Vorwiderstand mit LED) noch eine Belastung an Pin 13. Die Spannungsvolgerschaltung des OPAMP hat eine sehr hohen Eingangsimpedanz. Das gleiche wie bereits für das Meßgerät gesagte, gilt auch für diese Schaltung. Die LED könnte durch Störungen auch sehr schnell blinken (50Hz) wenn das Pin als Eingang geschaltet ist. wenn Du wieder einen 100kOhm Widerstand auf Masse schaltets hört dann das leuchten auf?

Grüße Uwe.

hi uwe,

pinMode nicht explizit gesetzt & pin 13 ohne 100k widerstand zu ground --> LED an

pinMode nicht explizit gesetzt & pin 13 mit 100k widerstand zu ground --> LED aus

pinMode(13, OUTPUT); & pin 13 ohne 100k widerstand zu ground --> LED aus

pinMode(13, INPUT); & digitalRead(13); gibt mir ein "1"

es reicht auch schon wenn ich mit meinem finger von unten an die lötstellen fasse, dann geht die led auch aus. ich bin dann quasi der widerstand.

aber woher könnte denn die störung kommen?
die frage ist ja eigentlich, ist das ein "defekt" und sollte ich das board zurückschicken, oder hat das "phantomleuchten" keine nennenswerten auswirkungen?

lg,
stefan

p.s.:
ich hatte im englischsprachigen teil des forums einen thread ausgemacht, bei dem das "problem" auch angesprochen,
aber nicht wirklich gelöst bzw, erklärt wurde: http://arduino.cc/forum/index.php/topic,136476.0.html

bei den verschiedenen leuten ist es mal der UNO deran 13 leuchtet, mal ein DUE oder ein MEGA... scheint also zufall zu sein.
ein poster hat einen "bootloader bug" vermutet?
ich habe leider nur den UNO und den MEGA zum testen.

tres:
hi uwe,

pinMode nicht explizit gesetzt & pin 13 ohne 100k widerstand zu ground --> LED an

pinMode nicht explizit gesetzt & pin 13 mit 100k widerstand zu ground --> LED aus

hab ich so erwartet.

tres:
pinMode(13, OUTPUT); & pin 13 ohne 100k widerstand zu ground --> LED aus

Du schließt den Ausgang auf masse kurz. So machst Du den Arduino kaputt.

tres:
pinMode(13, INPUT); & digitalRead(13); gibt mir ein "1"

Du liest zufällige Werte je anch vorhandenen elektromagnetischen Störungen. Diese Messung sagt ncihts aus, macht aber auch nichts kaputt.

tres:
es reicht auch schon wenn ich mit meinem finger von unten an die lötstellen fasse, dann geht die led auch aus. ich bin dann quasi der widerstand.

aber woher könnte denn die störung kommen?
die frage ist ja eigentlich, ist das ein "defekt" und sollte ich das board zurückschicken, oder hat das "phantomleuchten" keine nennenswerten auswirkungen?

Statische, elektromagnetische Störungen. ein Eingang darf bei digitalen Schaltungen nie unbeschaltet sein immer Auf Masse oder Versorgung Schalten. Bei SChaltungen mit Programmierbaren Ein/Ausgängen ist es besser dies nicht direkt zu tun sondern einen Widerstand von zB 10kOhm zu nehmen. Du kannst aber auch die internen Pullupwiderstände aktivieren.

tres:
p.s.:
ich hatte im englischsprachigen teil des forums einen thread ausgemacht, bei dem das "problem" auch angesprochen,
aber nicht wirklich gelöst bzw, erklärt wurde: http://arduino.cc/forum/index.php/topic,136476.0.html

bei den verschiedenen leuten ist es mal der UNO deran 13 leuchtet, mal ein DUE oder ein MEGA... scheint also zufall zu sein.
ein poster hat einen "bootloader bug" vermutet?
ich habe leider nur den UNO und den MEGA zum testen.

Die Reaktionen hängen von dem "Störlevel" ab. Du kannst in einer Umgebung sein wo ein unbeschaltener Eingang immer LOW erkannt wird, immer High oder abwechselnd und unvorhersehbar. Dies kann von eingeschaltenen oder auch nur am Netz hängenden Geräten, von Deiner Position im Zimmer und anderem schwer zu erkennbaren und deutbaren Einfüssen abhängen (Hochspannungsleitungen, Radiosender, Geräte beim Nachbarn, Händy ecc). Einen Einfluß haben auch die Längen der Leiterbahnen oder angeschlossenen Kabel. Diese wirken als Antenne.
Darum die wilden Spekulationen der thread-Schreiber.

Grüße Uwe

danke uwe!

uwefed:

tres:
pinMode(13, OUTPUT); & pin 13 ohne 100k widerstand zu ground --> LED aus

Du schließt den Ausgang auf masse kurz. So machst Du den Arduino kaputt.

hab ich auch nicht gemacht, das liest sich nur so. ich meinte damit "pin 13 und gnd sind garnicht verbunden".

ok, dann gehe ich jetzt davon aus, dass das verhalten meiner pin 13 LED nichts wildes ist und nicht bedeutet dass das board kaputt ist.
so wie du sagst können die verschiedensten variablen dazu führen dass dieses verhalten aufritt...
genauso wie ein digitalRead(); an einem "offenen" pin willkürliche werte ausspucken kann/wird.

danke!
und da schließt sich übrigens der kreis, denn ich habe gerade gesehen mein allererster post hier im forum wurde auch von dir beantwortet.
da ging es um "komische werte" beim analogRead(); ... am offenen pin! :blush:

viele grüße,
stefan

Also hast Du es mit den offenen Pins. :wink: :wink: :wink:
Der einzige Grund warum man ein unbeschaltetes analoges Pin liest, ist eine zufällige Zahl zu erhalten, als Startwert für den Pseudozufallsgenerator des Arduino.
Grüße Uwe

Hallo Arduino Fans,
auf der Suche warum bei meinen MAGA immer 2 LEDs high sind (und das ohne illegale Substanzen) hat mir dieser Thread doch geholfen.
Meine Erfahrung:
wechselt man mal die LEDs aus (ich habe hier LEDs mit ingebauten Widerstand, betriebsbereit für 5 VDC) kann man das Problem einkreisen. Hängt man dann einen ULN 28xx dran ist alles Paletti.

wbr. Flötzinger, der trotz aller Unkenrufen zu trotzt wieder da ist.

Floetzinger:
wbr. Flötzinger, der trotz aller Unkenrufen zu trotzt wieder da ist.

Und gleich einen Uraltthread von 2013 hoch holt, den er nicht verstanden hat. Tolle Wurst.

Gruß Tommy

Guten Morgen Tommy 56,
Dann sei doch mal die tolle Wurst der Woche und erklär mir, was ich nicht verstanden habe. so einfach wie du kannst.
Das wäre mal eine echte Hilfe. Weil ich weiß, dass du das kannst.
Danke.

Flötzinger

Ich weiß nicht wieso bei
"meinen MAGA immer 2 LEDs high sind"
Ich weiß gar nicht was ein "MAGA" ist.
Sollte es ein Arduino MEGA 2560 sein weiß ich immer noch nicht was Du da gemacht hast.
"wechselt man mal die LEDs aus (ich habe hier LEDs mit ingebauten Widerstand, betriebsbereit für 5 VDC) kann man das Problem einkreisen. Hängt man dann einen ULN 28xx dran ist alles Paletti."
läßt sehr viel Spielraum an mißinterpretation und unklarheiten sodaß Deine Aussage keinen Informationsgewinn bringt.
Was soll an einem LED mit integrierten Vorwiderstand besser sein als an einem LED mit in serie geschaltenem Vorwiderstand? Ein ULN 28xx Ist auch eine sehr unklare Bezeichnumg. Die letzte Zahl gibt an welche Widerstände/Z-Dioden im Darlingtontransistor verbaut sind und bestimmen die Schaltschwellen. Die 2803 Version ist für TTl und 5V CMOS Schaltungen geeignet. Es gibt aber andere Versionen die mit 5V nicht funktionieren. https://www.electronicoscaldas.com/datasheet/ULN2801A-ULN2802A-ULN2803A-ULN2804A_ST.pdf

Grüße Uwe