Hallo,
habe den sehr interessanten Artikel zum Bau eines LED-Cubes gelesen
http://www.mikrocontroller.net/articles/LED_cube
und würde den gerne (erstmal) in kleinerer Ausführung nachbauen.
Die Unterstützung für Schriftzeichen etc. ist erstmal nicht so wichtig.
Als Größe hätte ich mir 5x5x3 vorgestellt.
Nach intensivem Studieren der dazugehörigen Schaltpläne für die Leds
würde ich dazu 20 I/O Pins benötigen um jede LED theoretisch einzeln
ansteuern zu können (evtl. schnell hintereinander, damit der Eindruck
entsteht sie leuchten gleichzeitig)
Nun hat ja der ATmega8 28Pins, 23davon sind als I/O Pins verwendbar
soweit ich weiß.
zu den Fragen:
kann ich die Software zum ansteuern der Leds auf den ATmega brennen,
wenn er in meinem Enwicklungsboard (myavr board usb mk2) steckt, ihn
dann herausnehmen in eine geeingete Schaltung verbauen und dann 20 der
23 I/O Pins zum ansteuern der LEDs verwenden?
(Ich bin Anfänger in Sachen Mikrocontroller)
Und reicht der Atmega allein aus, um beispielsweise 20Leds
"gleichzeitig" mit Strom zu versorgen, oder muss da irgendwas mit
n-Mosfets wie in dem genannten Artikel gemacht werden???
Vielen Dank schonmal im Vorraus für die Antworten.
mfg Chris
Chris schrieb:
> zu den Fragen:> kann ich die Software zum ansteuern der Leds auf den ATmega brennen,> wenn er in meinem Enwicklungsboard (myavr board usb mk2) steckt, ihn> dann herausnehmen in eine geeingete Schaltung verbauen und dann 20 der> 23 I/O Pins zum ansteuern der LEDs verwenden?
Ja.
> Und reicht der Atmega allein aus, um beispielsweise 20Leds> "gleichzeitig" mit Strom zu versorgen,
Wenn du da nicht Low-Current LEDs benutzt, gehts nicht.
Der Mega hat eine Beschränkung im kompletten Stromverbrauch aller Ports,
sowie den Stromverbrauch auf einem einzelnen Pin.
> oder muss da irgendwas mit> n-Mosfets wie in dem genannten Artikel gemacht werden???
Du wirst Treiber brauchen.
...oder vielleicht erstmal das AVR-Tutorial durcharbeiten:
Zitat: "Ab und an stellt sich folgendes Problem: Man würde wesentlich
mehr Ausgangspins oder Eingangspins benötigen als der Mikrocontroller
zur Verfügung stellt. Ein möglicher Ausweg ist eine Porterweiterung mit
einem Schieberegister."
http://www.mikrocontroller.net/articles/AVR-Tutorial:_Schieberegister
Volker
Hallo,
danke für eure schnellen Antworten.
das Tutorial habe ich schon begonnen durchzulesen und ich mache schon
gute Fortschritte beim Ansteuern der 3 LEDs die auf meinem
Entwicklungsboard verbaut sind.
Aber irgendwie brauch ich mal ein Projekt, das etwas "anspruchsvoller"
als die 3 fest verbauten LEDs ist.
Und der LED-Cube reizt mich schon sehr.:-)
@Karl Heiz
du sagst der ATmega8 (L) hat Beschränkungen im Stromverbrauch.
Weißt du die Werte zufällig? Aus dem Datenblatt wurde ich nicht schlau.
Zur Info, ich habe mir die Bauteile schon bestellt und folgende LED soll
eingesetzt werden:
http://www.reichelt.de/?;ACTION=3;LA=444;GROUP=A5337;GROUPID=3024;ARTICLE=54104;START=0;SORT=artnr;OFFSET=100;SID=28XvPPF6wQARwAAGj67kY8f1b1f9da05076fb6f8d8902b5039d37
diese hat den Vorwiderstand bereits integriert und "verbraucht" bei 5V
ca. 13mA.
Genügt es jetzt auch nicht die LEDs schnell einzeln nacheinander
anzusteuern? Oder liegen die 13mA bereits über der Grenze für die
Stromversorgung???
Alternativ, würde dann die Schaltung aus dem Anhang funktionieren? auch
für mehrere LEDs gleichzeitig, die parallel geschalten sind?
mfg Chris
Atmega8 Datenblatt, Seite 242 "Electrical Characteristics", nimm aber
den Text bei "*NOTICE" ernst.
Ich gehe aufgrund der 20 pins mal davon aus, dass du 5x3 Grundflaeche
und 5 Hoehe hast?
Macht also bei deinen LEDs 15*13mA=195mA fuer die Kathoden pro Ebene.
Also: Anoden sourcen ja (allerdings bist du da schon ziemlich an der
Grenze, ich wuerds nicht machen), fuer die Kathoden brauchst du dann auf
jeden Fall 5 Transistoren.
hey Andreas,
danke für deine Antowort!!
du hast richtig gedacht, 5x3 Grundfläche und 5 in der Höhe habe ich
geplant.
Finde ich besser als 4x4x4, weil man so auf der Frontseite (5x5) auch
evtl Schriftzeichen anzeigen lassen kann.
Deine Rechnung leutet mir ein, allerdings sind die gerechneten 195mA ja
nur die Ausnahme, wenn alle LEDs einer Ebene mal an sind. Und nachdem
als oberster Grenzwert 300mA angegeben sind, ist das doch noch
vertretbar.
Oder wo siehst du das Problem? Zeigt die Erfahrung, dass die Grenze
deutlich niedriger als 300mA liegt?
Würde meine Schaltung von oben dann passen, und der verwendete
Transistor?
Die hab ich leider noch nicht bestellt. wegen fünf 4cent Teilen nochmal
bestellen.. aber was solls ;-)
mfg :)
> du hast richtig gedacht, 5x3 Grundfläche und 5 in der Höhe habe ich> geplant.> Finde ich besser als 4x4x4, weil man so auf der Frontseite (5x5) auch> evtl Schriftzeichen anzeigen lassen kann.
Etwas wenig, normale character LCDs verwenden 5x7.
> Deine Rechnung leutet mir ein, allerdings sind die gerechneten 195mA ja> nur die Ausnahme, wenn alle LEDs einer Ebene mal an sind. Und nachdem> als oberster Grenzwert 300mA angegeben sind, ist das doch noch> vertretbar.
Ausnahme hin oder her, du musst grundsaetzlich dafuer dimensionieren.
> Oder wo siehst du das Problem? Zeigt die Erfahrung, dass die Grenze> deutlich niedriger als 300mA liegt?
In dem Bereich habe ich selbst noch keinen m8 betrieben.
Probleme sehe ich hier v.a. weil du die ganze Leistung staendig
schaltest, da sollte die Stromversorgung schon gut gepuffert sein.
Ich koennte mir noch vorstellen, das der bei der Leistung recht
warm wird. Am ausprobieren moechte ich dich nicht hindern.
> Würde meine Schaltung von oben dann passen, und der verwendete> Transistor?
Ja, bis auf das eben alle kathoden einer Ebene dran muessen und
nicht nur eine LED.
> Die hab ich leider noch nicht bestellt. wegen fünf 4cent Teilen nochmal> bestellen.. aber was solls ;-)
Dann bestell lieber ein paar mehr... Sowas ist "Grundausstattung".
Andreas F. schrieb:
> Etwas wenig, normale character LCDs verwenden 5x7.
ja das ist richtig, aber es geht mit 5x5 schonmal "besser" als mit 4x4
Frontfläche ;-)
Andreas F. schrieb:
> In dem Bereich habe ich selbst noch keinen m8 betrieben.> Probleme sehe ich hier v.a. weil du die ganze Leistung staendig> schaltest, da sollte die Stromversorgung schon gut gepuffert sein.> Ich koennte mir noch vorstellen, das der bei der Leistung recht> warm wird. Am ausprobieren moechte ich dich nicht hindern.
Um das Stromproblem zu beheben, könnte ich dann die Schaltung von oben
insofern erweitern, dass die +5V nicht vom Pin des Mikrocontrollers
kommen, sondern über einen weiteren npn (??) Transistor, der genauso
angesteuert wird wie der andere aus dem Schaltplan oben?? Da könnte ich
ja das selbe Modell benutzen oder?
Andreas F. schrieb:
> Dann bestell lieber ein paar mehr... Sowas ist "Grundausstattung".
ist richtig ;-)
danke
mfg
Hi @all
bin jetzt mit dem Aufbau meiner Platine zur Steuerung des LED-"cubes"
beschäftigt.
(s. Anhang)
Platine noch nicht komplett fertig, aber großteils und Cube fertig zum
anschließen.
Habe jetzt bemerkt, dass ich zusätzlich nur die "low Power" Version des
Atmega8 habe, nämlich den Atmega8L - 8PU.
Hat dieser dann noch eine niedrigere Gesamtstrom- Grenze als die
genannten 300mA??? Weil er ja nur die "low Power" Version ist???
Dann müsste ich die obige Platine auf jeden Fall noch um 15 Transistoren
für die vertikalen "Säulen" erweitern, oder?
Genügend Bauteile (Transistoren) habe ich auf Rat von Andreas auf jeden
Fall.
was meint ihr??
danke
gruß Chris
C. S. schrieb:
> Hat dieser dann noch eine niedrigere Gesamtstrom- Grenze als die> genannten 300mA??? Weil er ja nur die "low Power" Version ist???> Dann müsste ich die obige Platine auf jeden Fall noch um 15 Transistoren> für die vertikalen "Säulen" erweitern, oder?
ja, das Datenblatt das ich habe gilt zumindest für Atmega8(L).
"low power" weil die Versorgungsspannung niedriger sein darf.
Schau dir auch genau an auf welchen Ports du die 300mA ziehen darfst, da
gibts eine Ausnahmeregel für PortC
Hi Thomas,
danke für die Antwort. Ich denke bevor da irgendwas anbrennt (im
wahrsten Sinne des Wortes) steuere ich nicht nur die 5Ebenen über
Transistoren an, sondern auch entsprechend die 15 "Säulen".
Ist zwar nervig zum Aufbauen, aber dann funktioniert es wenigstens
ordentlich.
Werde auch ein Bild des fertigen "Cubes" einstellen, wenn Interesse
besteht.
Noch eine Frage:
Sollte ich für die Säulen eher pnp oder npn Transistoren verwenden??
Ich würde jetzt einfach analog wieder npn (BC 337 - 40) verwenden.
gruß
ich hab den Schaltplan nicht im Kopf, aber wennst an der Kathode hängst
mit Emitter Richtung Masse nimm den NPN, von der Anode aus mit Emitter
gegen VCC den PNP.
hey Thomas habe deine Schaltung mal auf einem Steckbrett vorher
aufgebaut.
Allerdings hat es nicht wie gwünscht funktioniert.
Die "Test-LED" leuchtete auch wenn beide Pins schnell nacheinander im
Wechsel auf High und Low geschalten werden.
Leuchten soll diese ja aber nur, wenn beide Pins gleichzeitig auf High
stehen.
Habe trotzdem mal einen npn Transistor verwendet (s. Anhang)
und es funktioniert wie ich es geplant hatte.
Ist die Schaltung korrekt?
Und noch eine kleine Frage:
Laut Beschreibung bei reichelt hat der Atmega 23 I/O Pins,
2 davon (Pin 9 und 10) sind bei mir bereits vom externen Quarz belegt.
D.h. es wären noch 23-2 = 21 I/O Pins verfügbar.
Allerdings wenn ich nachzähle komme ich nur auf 20?
Kann man den reset Pin oder evtl den Aref Pin als I/O Pin verwenden??
ich würde diesen "21.Pin" nämlich genau noch benötigen ;-)
habt ihr eine Idee??
mfg
C. S. schrieb:
> Und noch eine kleine Frage:> Laut Beschreibung bei reichelt hat der Atmega 23 I/O Pins,> 2 davon (Pin 9 und 10) sind bei mir bereits vom externen Quarz belegt.> D.h. es wären noch 23-2 = 21 I/O Pins verfügbar.> Allerdings wenn ich nachzähle komme ich nur auf 20?
Also der PortB geht von PB0..PB7, PortD geht von PD0..PD7, PortC aber
nur von PC0..PC6, insgesamt 8+8+7=23 Pins.
OK, Reichelt kann zählen (vorausgesetzt ich kann zählen), hast du
vielleicht den Reset-Pin (PC6, Pin 1) nicht mitgezählt?
> Kann man den reset Pin oder evtl den Aref Pin als I/O Pin verwenden??> ich würde diesen "21.Pin" nämlich genau noch benötigen ;-)
ah, da stehts eh! Ja kann man, dann brauchst aber einen parallel
Programmer (weiß ich nicht ob dein Board das kann) um das Teil wieder
neu zu programmieren.
Ich würde eigentlich statt deinem Quarz einen externen Oszillator nehmen
(findest zB bei Reichelt unter "Artikel-Nr.: OSZI 8,000000") und an den
XTAL1 hängen, dann kannst den XTAL2 als IO Pin verwenden. Fuse Bits
setzen nicht vergessen.
Grüße aus Österreich!
hey mein LED Cube 5x5x3 ist jetzt fertig geworden und mit einer zunächst
einfachen Muster-Abfolge bespielt. Bei Interesse ist das ganze auf
Youtube zu betrachten:
http://www.youtube.com/watch?v=jvTHHrJh-Ys
Thomas Klima schrieb:
> Ich würde eigentlich statt deinem Quarz einen externen Oszillator nehmen> (findest zB bei Reichelt unter "Artikel-Nr.: OSZI 8,000000") und an den> XTAL1 hängen, dann kannst den XTAL2 als IO Pin verwenden. Fuse Bits> setzen nicht vergessen.
Gute Idee, werde ich demnächst machen, danke für den Tipp.
Gruß Christian
Hey bin voll begeistert hiervon
möchte mir auch einen LED Cube bauen am besten den gleichen.
Hast du einen Schaltplan dafür?
Mit freundlichen Grüßen Lexow
Hi Lexow,
habe keinen fertigen Schaltplan dafür, könnte dir aber einen anfertigen,
wenn du weiterhin Interesse hast.
Wie groß soll dein LED-cube werden?
Wenn es etwas größer werden darf, kann ich dir den Artikel hier
empfehlen:
http://www.mikrocontroller.net/articles/LED_cube
Falls du lieber erstmal einen kleinen Cube oder einen "Prototypen" bauen
willst, so wie mein Exemplar, dann meld dich nochmal, Schaltplan kann
ich dir bei Bedarf machen ;)
Gruß
Christian
Hi, habe noch Programm und Schaltplan für einen 3^3-Cube also
Wochenendspielerei, falls du interesse hast. Programmitert wurde das
ganze in Assembler. Als Programmspeicher dient zZt der interne Flash,
geplant war noch UART-Verbindung, ist aus akutem Zeit und Launemangel
bisher allerdings noch nicht umgesetzt worden.
Hey Leute,
Schaltplan ist im Prinzip nicht kompliziert für nen kleinen Cube.
Ich habs folgendermaßen gemacht:
Es geht mit Sicherheit eleganter ;-)
Der Atmega8 ist wie üblich angeschlossen (habe ich weggelassen), dh.
stabile +5V Versorgungsspannung,zb. durch 7805 Standartschaltung,
10k-Pull-up sowie 100N am Reset, 100N zwischen Vcc und GND, Quarz etc...
Dann hat der Atmega8 im Prinzip noch 20 nutzbare I/O Pins.
Für einen 5x5x3 Cube könnte die Belegung zb. folgendermaßen aussehen:
PO-P4 "schaltet" die jeweiligen Kathoden der Ebenen alle gleichzeitig
auf GND (über Transistor).
Die restlichen 15Pins "schalten" die vertikal verbundenen Anoden einer
Säule auf Vcc.
Durch die Kombination einer Säule (Anode auf Vcc) und einer Ebene
(Kathode auf GND) lässt sich jede beliebige LED ansteuern.
Zu beachten ist, dass die Leds einer Säule jeweils einen passenden
Vorwiderstand bekommen, und die Transistoren einen Basiswiderstand von
ca. 1kOhm.
Im Anhang noch der grobe Schaltplan (mein erster in Eagle :D, wie man
sieht) und die Belegung der Säulen und Ebenen in meinem Cube.
Zur Vollständigkeit habe ich noch meinen C-Code angehängt.
Hier möchte ich nocheinmal darauf hinweisen, dass dieser Code primitivst
ist und es viel eleganter und effizienter geht ;-)
mfg
Hey Danke für alles
Der Code sieht aber extrem Umfangreich aus ^^
Hast auch einen in Bascom?
Ich werde mir das mal alles angucken und wens Probleme gibt meld ich
mich :P
Gruß Lexow
Jan Lexow schrieb:> Hey Danke für alles
Kein Ding. Mir wurde hier auch schon oft geholfen. Zwar bin ich im
Prinzip auch noch Anfänger, aber ich helf wo ich kann ;-)
Jan Lexow schrieb:> Hast auch einen in Bascom?
Leider nicht. Habe 0 Erfahrung mit Bascom.
Jan Lexow schrieb:> Der Code sieht aber extrem Umfangreich aus ^^
Ja, ich sagte ja, dass der Code primitiv und unübersichtlich ist,
kommentiert mit uninformativen Kommentaren (im Code).
War jetzt auch nicht als Non-Plus-Ultra gedacht, sondern nur als
"Testcode", falls du den Cube genau so aufbauen solltest wie ich.
Jan Lexow schrieb:> Ich werde mir das mal alles angucken und wens Probleme gibt meld ich> mich :P
Wär nett, wenn du mich auf dem laufenden hälst, wie es so läuft bei dir.
Weitere Fragen auch gerne ;-)
mfg
Christian
Hi
Kleiner Tipp von mir:
Statt diese vielen lästigen Transistoren zu verlöten würde ich lieber
ULN2803 (Treiber IC) einsetzen, damit kannst du jeweils 8 LEDS
betreiben, scheint mir wesentlich einfacher.
Vielleicht baue ich mir auch so ein Teil :)
Gruss