Forum: Mikrocontroller und Digitale Elektronik Seltsamer Spannungseinbruch Arduino Mega


von Peter F. (intrinsic)


Angehängte Dateien:

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.

von Ulrich F. (Gast)


Lesenswert?

Peter F. schrieb:
> 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 ?
DAS ist ein Geisterglaube...

von Matthias S. (Firma: matzetronics) (mschoeldgen)


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.

von Karl M. (Gast)


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.

von Felix A. (madifaxle)


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

von Hubert G. (hubertg)


Lesenswert?

Die Ausgänge mal mit einem Oszi ansehen.
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.

von Thomas E. (thomase)


Lesenswert?

Karl M. schrieb:
> seit wann laufen Bilder als Programm und was sollen wir hier damit
> anstellen ?
> Als Hintergrund verwenden?

Das ist der WCC. Wardrobe C-Compiler.

mfg.

von Peter F. (intrinsic)


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.

von Dieter S. (Gast)


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.

von Dieter S. (Gast)


Lesenswert?

Und ich glaube ein Schaltbild sagt da sehr viel aus und sollte hier 
reichen.

von Walter P (Gast)


Lesenswert?

Led auch als Ausgang definiert? Schwaches Glimmen könnte durch den 
internen Pullup des Avr passieren.

Hat der Portpin eventuell eine Doppelbedeutung zb Jtag und Jtag ist 
enable?

von Thomas E. (thomase)


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.

von Dieter S. (Gast)


Lesenswert?

Ok, Sketch ist geheim, Schaltbild ist geheim, also müssen wir weiter 
raten.
Netzteil ist zu schwach dimensioniert.

von Peter F. (intrinsic)


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.

von Ulrich F. (Gast)


Lesenswert?

Nix pulldown..
Pullup!

Ansonsten: Glückwunsch!

von R. R. (elec-lisper)


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.

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.