Seltsamer Spannungseinbruch Arduino Mega

OP #4331805
Lesenswert?

Hallo,

ich habe ein multithreading Programm für meine Modellbahn geschrieben 
und erweitere dieses jede Woche um ca 1-2 Ausgänge. Davon hat der Mega 
ja jede Menge.
Jedenfalls schafft es der Arduino nicht mehr eine neue LED gescheit zu 
bestromen. Sie leuchtet nur ganz schwach, egal welche LED!, welchen 
Vorwiderstand! und auch! "welchen Ausgang" ich zuweise!. Das ist total 
komisch.

Das restliche Programm funktioniert einwandfrei!! Es sind wenn überhaupt 
höchstens 3 Transistoren und 4 LED´s gleichzeitig an, also von 500mA bin 
ich weit entfernt. Selbst wenn kurzzeitig alles aus ist, ist die LED nur 
ganz schwach an. Ich habe Kabel getauscht, die LED sogar direkt mit 
Vorwiderstand in die Buchsenleiste reingeklemmt. Sie glimmt ganz 
schwach, egal wo das Programm gerade ist. An 5 V geht sie einwandfrei. 
Das Restprogramm läuft auch einwandfrei.

Es hört sich komisch an, aber kann es sein, dass der Arduino 
softwareseitig ab einer gewissen Anzahl an Ausgängen dichtmacht oder 
sowas oder soll man doch an Geister glauben ?

Am Programm liegt es jedenfalls nicht.
Angehängte Dateien:
(Firma: matzetronics) #4331820
Lesenswert?

Peter F. schrieb:
> Es sind wenn überhaupt
> höchstens 3 Transistoren und 4 LED´s gleichzeitig an, also von 500mA bin
> ich weit entfernt.

Hä? Welche 500mA? Und was hast du denn da für ein lustiges Foto 
angehängt?

Lies mal das Datenblatt des MC (ATMega 2560): Da steht, das jeder 
Ausgang maximal 40mA liefern darf, der ganze Chip aber höchstens 200mA 
aufnehmen darf. Also nix mit 500mA.
So, jetzt müsstest du nur mal die Schaltung posten und dann können wir 
dir sagen, wo dein Denkfehler liegt.
Gast #4331823
Lesenswert?

Peter,

seit wann laufen Bilder als Programm und was sollen wir hier damit 
anstellen ?
Als Hintergrund verwenden?

Ohne Schaltbild, Bilder vom realen Aufbau im Detail und das reale 
Programm.
Wird es darauf hinauslaufen, dass dein Softwaresystem daran Schuld sein 
kann.
#4331824
Lesenswert?

Es hört sich zwar komisch an, aber hast du mal den Strom mit einem 
Multimeter gemessen, der zum Arduino fließt?

Es gibt da, meine ich zumindest, das Problem, dass der Arduino per 
Linearregler seine Spannung bekommt und nicht per Schaltregler. Es 
könnte sein, dass auf dem Arduino-Board dieses Bauteil sehr heiß wird 
und die Ausgangsspannung runter regelt.

Natürlich gibt es viele weitere Möglichkeiten, aber wie immer:
ohne Schaltplan (und/oder) Bild vom Aufbau (und/oder) allgemein mehr 
Infos wird nur geraten...
OP #4331850
Lesenswert?

Ich habe das Programm nur als Bild gepostet, damit man sieht, dass man 
das nicht mal eben in 3 min durchschauen kann. Ich kann es aber später 
mal richtig posten.

Ich habe die LED direkt im Programmdurchlauf auf DauerHIGH gesetzt und 
ihr auch unterschiedliche Ausgänge zugewiesen. Trotzdem war sie immer 
nur ganz minimal an.
Seltsamerweise geht sie nichtmal in Pausen an, wo fast alle anderen 
Dinge aus sind. Also kann es an zu wenig Spannung nicht liegen, auch 
wenn der Arduino nur 200mA liefert. Bei 3 Transistoren und 4 Led´s wären 
es trotzdem nämlich nichtmal 100mA. ;-)

""""""Ansonst gibt es diesen Effekt wenn man den Ausgang nicht als 
Ausgang
sondern als Eingang mit aktivem PullUp schaltet. Also nur den PullUp ein
und ausschaltet.""""""""""""""""

Ich habe der LED die Ausgänge jeweils so zugewiesen

int led = 3 ;
pinMode(led,OUTPUT);



Mit den Pull up/downs habe ich mich nicht beschäftigt, da ich an 
Eingängen jeweils extern pulldownwiderstände angelötet habe.

Ja ich werde später mal ein Bild von der Schaltung machen, das Programm 
posten und meinetwegen auch den Gesamtstrom messen.
Gast #4331865
Lesenswert?

Peter F. schrieb:
> wenn der Arduino nur 200mA liefert. Bei 3 Transistoren und 4 Led´s wären
> es trotzdem nämlich nichtmal 100mA. ;-)
Das sagt über den eigentlichen Stromverbrauch nichts aus. Der ist 
letztendlich auch von den Vorwiderständen zu den
Leds abhängig. Ohne die Widerstände liegt der schnell am Limit.
#4331883
Lesenswert?

Peter F. schrieb:
> Ich habe das Programm nur als Bild gepostet, damit man sieht, dass man
> das nicht mal eben in 3 min durchschauen kann. Ich kann es aber später
> mal richtig posten.

Diese Information ist aber absolut wertlos. Und manchmal braucht ein 
anderer nur kurz drüberschauen und erkennt den Fehler. Während du 
stundenlang draufgucken kannst und den Wald vor lauter Bäumen nicht 
siehst.

mfg.
OP #4331932
Lesenswert?

Hallo,
es ist mir sehr peinlich aber es ist nun mal so wie es ist.

War grad dabei das Programm einzufügen, um es hier zu posten, da hab ich 
doch tatsächlich wircklich gesehen, dass ich einfach genau das nicht 
getan habe, was ich oben schrieb. ^^

Also doch vergessen den Port als OUTPUT festzulegen. Ist dann so wie 
hier von 2 Leuten schon geschrieben. Der standartmäßig als Eingang 
festgelegte Port hat den pulldown aktiviert gehabt.


Arghhh da habe ich gestern über eine Stunde rumgebastelt und konnte mir 
das nicht erklären, was der µC macht. Aber aus Fehlern lernt man ja.

Vielen Dank auf jeden Fall für eure Hilfe !

Thomas E. schrieb:
> und den Wald vor lauter Bäumen nicht
> siehst.
#4332277
Lesenswert?

Und die Stelle an der das setzen der Portrichtung vergessen wurde hätte 
dir jemand schon nach 3 min Code angucken zeigen können. Selbst bei 
einem doppelt so großen Programm. Aber ich kenn das,  da hackt man über 
wochen Chaos zusammen - mit dem Vorsatz das mal auf zu Räumen - und wenn 
man in der 3. Woche nicht mehr durchsteigt fehlt die Zeit zum Aufräumen 
und man schämt sich den Code zu zeigen. Und dann muss es did Hardware 
sein. Elektrostatik oder ein Fehler vom Hersteller.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren