Forum: Mikrocontroller und Digitale Elektronik Led Cube erster Versuch :) & ein paar Fragen


von Jan (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,
Ich hoffe ich belästige euch nicht, da der LED Cube ja sehr beliebt ist 
=)
Nun wollte ich mir den Cube auch bauan erst mal 3x3 später 4x4 5x5 gehen 
leider nicht mit dem Atmega8 :(
Also zur verständniss alle vor Infos:
3x3x3 Led Würfel blaue Led : 3.0-3.2V und 20mA

Mikrokontroler: Atmega8 wird direkt auf die Platte über eine 28er 
IC-Sockel.

Programmiert wird er über den USBasp adapter von Fishl
http://www.fundf.net/usbasp/

Wobei ich die Bascom Software benutze.
C lerne ich grade und Bascom erfüllt den zweck durch die sehr einfache 
Basic Sprache.

Auf der Skizze sieht man 3 Ebenen hier sind die Anoden der gleichen 
farbe mit eiander verbunden.
also ist eine Fabre mit 3 Leds verbunden. (werden alle an der ersten 
Ebene zusammen gelötet, habe es nur wegen der übersicht auf 3 verteilt.)

Die Kathoden sind grün heir wird für jede ebene ein Transistor als 
Schalter zwischen gebaut.

So nun die Fragen.
1 Funktioniert es wie dargestellt?
2.Wie würdet Ihr den Würfel betreiben ? und welche widerstände und 
Transistoren brauche ich da?
3. Ich verstehe nicht ganz wie ich den Atmega8 betreiben soll?
Kann mir das jemand erklären ?

Ich hoffe Ihr könnt mir helfen wäre super lieb :)
MfG Jan
wo kommt die

von led-cubus (Gast)


Lesenswert?

grundsätzlich könnte es so funktionieren, allerdings müsstest du den 
transistoren noch basisvorwiderstände spendieren.

ein problem ist allerdings der ausgangsstrom des atmega. er kann zwar 
die 20mA pro pin um eine LED zu betreiben, allerdings musst du bei der 
verkabelung multiplexen. um jetzt aber die selbe helligkeit bei nur ein 
drittel einschaltdauer zu erreichen, brauchst du pro LED den 3fachen 
strom.
und 60mA liefert ein pin einfach nicht. möglichkeit wären extra treiber 
oder einfach transistoren.

die berechnung der widerstände ist recht einfach, die schaltung läuft 
mit 5V, die LEDs brauchen 3V, also müssen 2V an den widerständen hängen 
bleiben. macht für 60mA 33 ohm. die transistoren müssen im worstcase 9 * 
60mA = 540mA schaffen. dafür würde z.b. ein BC337 genügen. als 
basiswiderstand würden dann ca 400 ohm reichen.

von Karl H. (kbuchegg)


Lesenswert?

Wie wäre es, wenn du erst mal EINE oder ZWEI Led an einem Mega zum 
laufen bringst. Dann vielleicht mal 8 und ein wenig mit Lauflichtern 
experimentieren und programmieren.

Ich meine das wirklich Ernst!

AVR-Tutorial
AVR-GCC-Tutorial

(Für BASCOM kenne ich leider kein vernünftiges Tutorial, das auch ein 
wenig weiter führt als nur bis zu den allereinfachsten Grundlagen)

von einer (Gast)


Lesenswert?

Da fehlen noch Basisvorwiderstände.

Multiplex im Timerinterrupt

alle ebenen aus
nachste ebene wählen
bitmuster für ebene ausgeben
ebene einschalten

von M. P. (phpmysqlfreak)


Lesenswert?

Statt PC6 (/Reset) würde ich einen anderen Pin benutzen. Erleichtert das 
Ändern eines Programms auf dem Controller ungemein. ;)

von Jan (Gast)


Lesenswert?

@Gast wow vielen dank :) beschäftige mich halt erst 2 Wochen damit und 
bin schwer angetan davon :)

@ Moderator, ja werde ich machen :)
ich will erstmal versuchen 2-3 LEDS dranzuhängen vllt auch in der art 
wie oben das der Transistor als schalter fungiert.

So eine Frage noch die ist ganz wichtig :)
Wie bekommt der Kontroller Strom und wo fließt es hin

also wenn ich jetzt zb. 5 Volt nehme vom Netzteil doer von batterien, wo 
hange ich die dann ein und kommen die 3 Kollektor ausgänge vom 
Transistor dann einfach in die Kathode der Baterie oder wieder in den 
Chip und wenn wo?
MfG :)

von Jan (Gast)


Lesenswert?

@gast2 ich evrsteh nciht ganz was du möchtest, außer die Basis 
vorwiderstände aber das ist ja schon geklärt :)

@phpmysqlfreak
danke werde ich machen :)

von Jan (Gast)


Lesenswert?

Achja heir nochmal der code für die jenigen den es Interessiert.

  $regfile = "m8def.dat"
    $crystal = 1000000

    Config Portd.0 = Output
    Config Portd.1 = Output
    Config Portc.6 = Output
    Config Portc.5 = Output
    Config Portc.4 = Output
    Config Portc.3 = Output
    Config Portc.2 = Output
    Config Portc.1 = Output
    Config Portc.0 = Output
    Config Portb.3 = Output
    Config Portb.2 = Output
    Config Portb.1 = Output


    Do

    Portb.3 = 1
    Portd.1 = 1
    Waitms 1000
    Portd.1 = 0
    Portd.0 = 1
    Waitms 1000
    Portd.0 = 0
    Portc.6 = 1
    Waitms 1000
    Portc.6 = 0
    Portc.5 = 1
    Waitms 1000
    Portc.5 = 0
    Portc.4 = 1
    Waitms 1000
    Portc.4 = 0
    Portc.3 = 1
    Waitms 1000
    Portc.3 = 0
    Portc.2 = 1
    Waitms 1000
    Portc.2 = 0
    Portc.1 = 1
    Waitms 1000
    ................ usw.

    Loop

    End

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.