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?
Hallo, hier die Schaltung. Die umkreisten Led's sind die die schwächer werden.
@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
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
@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
@ 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
@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 :)
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
@ 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
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
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
>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).
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
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.
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).
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.
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.
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?
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
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.
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.
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.
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
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.
>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.
@ 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
hallo oliver, wäre es möglich den hex-code zu bekommen, wäre das ideale für unsere eisenbahnanlage! vielen dank!
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.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.