Forum: Mikrocontroller und Digitale Elektronik 32-Kanal Lauflicht mit ATMega16


von Oliver (Gast)


Lesenswert?

Hallo,

ich habe mir mit einem ATMega16 ein 32-Kanal Lauflicht gebaut. Das läuft 
auch ganz gut nur wenn ich an der Spannungsquelle zusätzlich noch LED's 
anschließe die dauernd leuchten sollen werden diese, wenn z.b. alle 32 
LED's vom Lauflicht zusammen an und aus gehen, schwächer. Zuerst dachte 
ich dass das Netzteil zu schwach ist aber ich habe es zum Testen mal an 
ein 4A Labornetzteil angeschlossen (Strombegrenzung auf Maximal) 
Spannung auf 5V. Dieses hatte aber den gleichen Effekt gehabt. Den 100nF 
Kondensator von Plus nach Minus am  ATMega16 habe ich berücksichtigt.

Weis da jemand Rat was da falsch läuft oder ist das so richtig?

von Karl H. (kbuchegg)


Lesenswert?

Schaltung?

von Oliver (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

hier die Schaltung. Die umkreisten Led's sind die die schwächer werden.

von Falk B. (falk)


Lesenswert?

@Oliver (Gast)

>hier die Schaltung. Die umkreisten Led's sind die die schwächer werden.

Bist du sicher? Vielleicht ist es nur eine optische Täuschung, weil dich 
32 helle LEDs blenden. Miss mal den Strom dieser LEDs.

MfG
Falk

von USA (Gast)


Lesenswert?

Kann der armer Atmega soviele LEDs gleichzeitig betreiben?

von avr (Gast)


Lesenswert?

Schau mal ins Datenblatt (auch wenn es schwer fällt):
1
DC Current VCC and GND Pins................. 200.0mA PDIP and
2
400.0mA TQFP/MLF
Und rechne dann mal ;(

avr

von Falk B. (falk)


Lesenswert?

@USA (Gast)

>Kann der armer Atmega soviele LEDs gleichzeitig betreiben?

Wenn die LEDs blau sind, haben die ~3,3V Flußspannung. Macht bei 5V und 
110 Ohm 17m/LED. Macht bei 32 LEDs 544mA. Aua! Das ist offiziell viel zu 
viel, der AVR ist mit max. 200mA über Vcc/Gnd angegeben. Ist aber ein 
anderes Problem. Die LEDs direkt an der Stromversorgung interessiert das 
nicht.

MFG
Falk

von USA (Gast)


Lesenswert?

bedeutet das, dass man höchstens 10 LEDs (20mA?) anschliessen kann?

von Falk B. (falk)


Lesenswert?

@  USA (Gast)

>bedeutet das, dass man höchstens 10 LEDs (20mA?) anschliessen kann?

So gesehen ja. Es gibt aber auch Treiber und Transistoren.

MFG
Falk

von USA (Gast)


Lesenswert?

@Falk

danke. Wieviel Strom braucht man eigentlich, um einen normalen Trasistor 
für 5V zu steuern?

PS: Ich bin ein Informatiker, daher die dummen Fragen :)

von avr (Gast)


Lesenswert?

Der Reset direkt an VCC ist schlecht/falsch, mit einem Widerstand
(10 kOhm) anschliessen.
ARef nicht an VCC! Wenn VCC als Referenz bei Messung wird
dies intern geschaltet. Aref ist für "echte" Referenzspannungen
bzw. zum Ausgeben/Messen derselben. Nur mit 100nF auf GND.

Und Treiber/Transistoren an die LED!

avr

von Falk B. (falk)


Lesenswert?

@  USA (Gast)

>danke. Wieviel Strom braucht man eigentlich, um einen normalen Trasistor
>für 5V zu steuern?

Wenn man clever ist und einen MOSFET benutzt, nahezu 0uA, siehe 
Transistor, FET und MOSFET-Übersicht.

MfG
Falk

von Markus M. (adrock)


Lesenswert?

Als "Lösung für faule" könntest als Treiber auch 4x ULN 2803A nehmen.

Der schaltet allerdings nach Masse, d.h. Du müsstest die Anode der LEDs 
an +5V hängen und die Kathode über den Widerstand an den Ausgang des ULN 
2803.

Allerdings müsstest Du evtl. nochmal die Widerstände neu berechnen, da 
am ULN 2803 ein Spannungsabfall von ~ 0.9V auftritt.

Ciao...
Markus

von Bastler (Gast)


Lesenswert?

Wieso Treiber?
Bei einem Lauflicht ist nur eine LED (gleichzeitig) an!
Sollte also gehen.

von I. E. (anfaenger69)


Lesenswert?

Mir kommt da eine dumme ungetestete Idee:

16 LEDs mit einem HIGH Signal ansteuern, und die anderen 16 LEDs mit 
einem Minus Signal ansteuern.

16 mal:
CPU Ausgang -----> Widerstand -----> LED (Anode)  (Kathode) -----> Masse

und die anderen 16 mal:
CPU Ausgang -----> Widerstand -----> LED (Kathode) (Anode)  -----> VCC

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

>Wieso Treiber?
>Bei einem Lauflicht ist nur eine LED (gleichzeitig) an!
>Sollte also gehen.

Ja dann hast Du noch nie ein Lauflicht gesehen. Geh mal wieder auf den 
Rummel (die Kirmes).

von Oliver (Gast)


Lesenswert?

Hi,
Bastler hat recht. Es sind auch mal alle 32 LED's an. Ich hatte gehofft 
das es ein bekanntes Problem wäre und ich dieses noch nicht kannte. 
Anscheinend liegt es doch bei mir. Vielleicht klappt es ja mit den 
Treibern. Ich hab mal ein Video gemacht, darin kann man gut sehen wie 
die weißen LED's flackern wenn die gelben, vom ATMEGA16 angesteuerten 
LED's, an und aus gehen. Wobei die gelben sich nicht von der Helligkeit 
ändern egal ob eine an oder alle an!?

Hier der Link zum Video

http://www.youtube.com/watch?v=XovPEluQDos

von nicht "Gast" (Gast)


Lesenswert?

Ich hoffe, du hast die beiden Vcc PINs und die Vss PINs auch mit einem 
Draht verbunden. Intern sind die zwar auch verbunden, die interne 
Verbindung ist aber nicht dafür gedacht als Brücke missbraucht zu 
werden.

von Karl H. (kbuchegg)


Lesenswert?

Oliver schrieb:

> Hier der Link zum Video
>
> http://www.youtube.com/watch?v=XovPEluQDos

Das sieht allerdings schon für mich danach aus, als ob da die 
Versorgungsspannung einbricht. Wie ist denn da die Verkabelung? Hast du 
ausreichenden Querschnitt zu den fix angeschlossenen LED
(wobei das Fenster links unten auch blinkt. Und das wird ja anscheinend 
auch vom Mega geschaltet)

Ich würde mal das Blinken der gelben LEDs langsamer machen und mir mit 
einem Voltmeter die Versorungsspannung ansehen (wenn du kein Oszi hast).

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Oliver schrieb:
> Bastler hat recht. Es sind auch mal alle 32 LED's an.

Das ist ein Widerspruch.

Wie weit ist Dein 5V-Spannungsregler von der Schaltung weg? Und was ist 
das für ein Spannungsregler? Setze ihn mal direkt an die Schaltung und 
blocke ihn ordentlich mit Kondensatoren (Elko + Keramik) ab. Sorge für 
ausreichende Kühlung, da viele Spannungsregler bei Überlastung den Strom 
reduzieren.

von Oliver (Gast)


Angehängte Dateien:

Lesenswert?

QTravel Rec. hast Recht, ich meinte ja auch Dich damit! Hab ich nicht 
richtig geschaut.

@Karl heinz Buchegger hast auch Recht. Ich hab jetzt mal die Spannung 
separat mit einem Multimeter gemessen und die fällt wenn alle LED's an 
sind von 5V auf 4,5V ab. Die Frage ist nur warum? Ich hatte mich bisher 
auf die Anzeige vom Labornetzgerät verlassen, da er den Strom der gerade 
entnommen wird auch anzeigt. Allerdings zeigt er permanent 5.00V an. Den 
Strom hab ich auch noch mit dem Multimeter gemessen und der sagt das 
gleiche wie das Labornetzgerät nämlich ca. 700mA. Die Fenster werden von 
einem anderen Prozessor (PIC) angesteuert. Haben eben nur die gemeinsame 
Spannungsversorgung. Sonst hätte man nur ganz unten den Eingangsbereich 
gesehen und dann sieht man das Problem nicht so gut. Ich verstehe nicht 
warum bei "lächerlichen" 700mA schon die Spannung einbricht. Aus 
Verzweiflung habe ich es sogar schon mit einem PC-Netzteil getestet. 
Laut Aufschrift kann es bei 5V/35A abgeben, da funktioniert es wenn ich 
es direkt an den 5V Augang halte. Habe ich aber ca. 2m Leitung 
dazwischen habe ich das gleiche Problem und den Spannungsabfall. Ich 
komm da nicht mehr mit.

Hier noch ein Bild von der Schaltung. Die LED's werden mit 0,3mm 
Kupferlackdraht angesteuert.

von Karl H. (kbuchegg)


Lesenswert?

Oliver schrieb:

> gesehen und dann sieht man das Problem nicht so gut. Ich verstehe nicht
> warum bei "lächerlichen" 700mA schon die Spannung einbricht. Aus
> Verzweiflung habe ich es sogar schon mit einem PC-Netzteil getestet.
> Laut Aufschrift kann es bei 5V/35A abgeben, da funktioniert es wenn ich
> es direkt an den 5V Augang halte. Habe ich aber ca. 2m Leitung
> dazwischen habe ich das gleiche Problem und den Spannungsabfall.

Kabelbruch einzelner Adern?
Kabel im Querschnitt zu schwach?

Du gehst du mit der Spannungsversorung vom Netzteil zum AVR und von dort 
weiter zum PIC. Was ist, wenn du dem PIC ein eigenes Kabel zum Netzteil 
spendierst?

von Tobi W. (todward)


Lesenswert?

Ich würde dir auch erstmal einen LED treiber anraten. Ist egal ob eine 
transistor (z.b.: BC547) oder ein Darlington array (ULN2803). Der AVR 
ist bei sowas schon mehr als am limit. wird der eigenlich warm?

die meisten spannungsregler (7805 ist wahrscheinlich verbaut) können nur 
max 1A und da sind 700mA schon ne menge.
Zeigt dein Labornetzteil denn die Tatsächlich spannung an oder die, die 
du eingestellt hast?

Ich glaube das ein größere querschnitt deiner leitungen das problem 
beheben wird,wurde ja öfters gesagt. Was hälst du von dem vorschlat, 
jedem element/Haus einen eigenen Spannungsregler zu verpassen und ein 
netzteil (vll ein PC-N) mit 12V zuvernden und dann jedes haut mit 12V 
anzugehen und dort dann auf 5V runterregeln.

gruß
Tobi

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

Ich denke, in dem Fall sind einfach die langen Zuleitungen Schuld. Ich 
habe auf dem Video Krokofantenleitungen gesehen, die sind meist der 
letzte Schund. Verlege mal >= 0.75 qmm Klingeldraht aus´m Baumarkt, der 
sollte deutlich besser funktionieren.

von Bastler (Gast)


Lesenswert?

Als Lauflicht verstehe ich ein Licht, das läuft.

X00000000
0X0000000
00X000000
000X00000
0000X0000
00000X000
000000X00
0000000X0
00000000X

nach diesem Muster eben.
Natürlich gibt es verschiedene Varianten, bei denen die Lichter an 
bleiben.
Das war aber nicht unbedingt ersichtlich.
Daher ist die Schaltung schon o.k., wenn nuur eine an ist, also der 
Gesamtstrom bei 10-20-30mA bleibt.

von Oliver (Gast)


Lesenswert?

Hallo,
ob es am Atmega liegt weis ich nicht aber in Zukunft werde ich immer die 
ULN2003 Treiberbausteine nehmen. Der Controller wird aber nicht warm und 
wie im Video zu sehen werden die gelben LED's auch nicht dunkler oder 
heller, egal wie viele zur gleichen Zeit angesteuert werden. Ich werde 
das Programm jetzt so umschreiben dass nur noch max. 8 LED's zur 
gleichen Zeit leuchten und hoffe dass es dann funktionieren wird. Das 
die Kabel zu lang oder zu dünn sind glaub ich aber eher nicht (pro 
Leitung max. 20mA bei 5V). Für jedes Haus/Schaltung einen eigenen 
Spannungsregler zu benutzen hatte ich auch schon dran gedacht und mit 
dieser Schaltung auch probiert, aber es hat trotzdem diesen 
Spannungsabfall gegeben.

von Chris S. (hondaracer1)


Lesenswert?

irgendwo ist da bei dir der wurm drin, kabelbruch, oder nen schlecht 
verbundener stecker. Solche probleme sind echt bloed aber bei dem ganzen 
chinamuell passiert das halt mal. Als kleiner bastler hat man halt nicht 
immer ersatz daheim  aber es wird garantiert an der verkabelung liegen.

falls moeglich kannst du ja mal versorgungsspannung direkt am netzteil 
und an der Schaltung gleichzeitig messen. Dann sieht man ob die spannung 
am regler zusammen bricht (was ich nicht glaube) oder eben auf dem weg 
zur schaltung verpufft

von blubb (Gast)


Lesenswert?

Möglich, dass ich mit täusch, aber wer das Video genau betrachtet, wird 
sehen, dass das Licht beim langsamen Anschalten der 32 Lampen nicht 
dunkler wird, sondern nur, wenn die Lampen alle zur gleichen Zeit an 
gehen. Versuch mal nen Dicken Elko, hinter dem Ausgang des 7805 
(Vielleicht 10 oder 100microFarrad) und schau obs dann besser wird.

von Knut B. (Firma: TravelRec.) (travelrec) Benutzerseite


Lesenswert?

>Versuch mal nen Dicken Elko, hinter dem Ausgang des 7805
>(Vielleicht 10 oder 100microFarrad)

Niemals nicht! Damit heizt Du nur den Regler. Der Elko gehört vor den 
Regler und der Regler gehört dicht an die Schaltung und nicht 2m davon 
entfernt. Die Zuleitungen von der Spannungsquelle bis zum Regler müssen 
den Gesamtstrom der Schaltung ohne nennenswerten Spannungsabfall liefern 
können. Punkt.

von Falk B. (falk)


Lesenswert?

@  Travel Rec. (travelrec) Benutzerseite

>>Versuch mal nen Dicken Elko, hinter dem Ausgang des 7805
>>(Vielleicht 10 oder 100microFarrad)

>Niemals nicht! Damit heizt Du nur den Regler.

Unfug. Spannungsregler != Spannungsregler. Der gute, alte 78xx verträgt 
massig Kapazität am Ausgang OHNE zu schwingen und und OHNE Aufheizen. 
Steht auch so in den diversen Datenblättern. Bei neuren Sachen, vor 
allem Low Drop ist das nicht immer so.

> Der Elko gehört vor den
>Regler und der Regler gehört dicht an die Schaltung

Alles relativ. Abr man kann es auch übertreiben. 30cm mach da wenig aus.

> Die Zuleitungen von der Spannungsquelle bis zum Regler müssen
>den Gesamtstrom der Schaltung ohne nennenswerten Spannungsabfall liefern
>können. Punkt.

Ganz neue Erkenntnis. ;-)

MFG
Falk

von windhund (Gast)


Lesenswert?

hallo oliver,

wäre es möglich den hex-code zu bekommen, wäre das ideale für unsere 
eisenbahnanlage!

vielen dank!

von Karl H. (kbuchegg)


Lesenswert?

Oliver schrieb:

> gleichen Zeit leuchten und hoffe dass es dann funktionieren wird. Das
> die Kabel zu lang oder zu dünn sind glaub ich aber eher nicht (pro
> Leitung max. 20mA bei 5V).

Gemeint sind nicht die Leitungen zu den LED
Gemeint sind die Leitungen die +5V und GND zum Mega und zum PIC 
transportieren! Und da kommt ein bischen mehr als 20mA zustande.

Daher bringt dir auch Umschreiben des Programms nicht viel. Schuld ist 
nicht der AVR (nach menschlichem Ermessen), sondern dass dir die 
Versorgungsspannung am PIC einbricht.

von Oliver (Gast)


Angehängte Dateien:

Lesenswert?

Vielen Dank Euch allen für die Hilfe. Ich habe mich jetzt auf ein 
Laufmuster beschränkt, dann gibt es keine Probleme mit der Schaltung. 
Auch wenn wir es irgendwann hin bekommen sollten (dickeres Kabel hat 
etwas geholfen), müsst Ihr wissen dass noch 6 weitere Häuser mit jeweils 
min. 10 LED's über ein Versorgungskabel dran müssen und dieses Kabel ist 
fix d.h. ich komme da nicht mehr dran um es zu wechseln! Wie immer spart 
man ja am falschen Ende.

Da windhund fragt, hänge hier noch den (wie auf dem Video zu sehen) 
Quellcode für Bascom und den Hexcode dran.

Der Hexcode gilt für ATMEGA16 mit 1 MHz internen Takt.

von windhund (Gast)


Lesenswert?

hallo oliver,

vielen dank für den code!!!

von Tobi W. (todward)


Lesenswert?

Naja, der code sieht relativ uneffizient aus.
Du hast für jedes Laufmuster/Status eine eigene anweisung geschrieben.
dawäre ein Array/Data einweisung bessser gewesen. Da brauchste dann nur 
eine For-Next-Schleife und den datensatz auslesen und am richtigen port 
rausschieben.
zumal man das auch sehr schön mit schieberegisterl hätte lösen können 
und dann häte man auch keine probleme mit der Leistung am mega.

Gruß
Tobi

PS.: Aber trotzdem danke das du ihn gepostest hast. Verbessern kann man 
ja immer noch!

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.