Forum: Mikrocontroller und Digitale Elektronik Led Cube leuchtet schwach


von Christoph M. (christoph_m44)


Lesenswert?

Hallo,

Ich baue zurzeit einen 5*5*5 Led-Cube und es funktioniert prinzipiell 
alles einwandfrei.

Ich verwende einen Atmega32 und verwende zur Ansteuerung demultiplexer, 
pro Wand (= 5 Spalten / Anoden der Leds) / 1 demultiplexer --> 
entspricht 5 demultiplexer

Die Ebenen werden direkt von PortB geschalten (die Ebenen sind Kathoden 
der Leds)

Mein Programm ist so programmiert, dass nur eine einzige Led leuchtet. 
D.h es wird eine Led eingeschaltet, eine gewisse Zeit gewartet (200 
mikrosek) und danach wieder ausgeschaltet.

Hier die Funktion, die das für mich erledigt:
1
void drawBitpattern(int led_cube[][5][5])
2
{
3
  int ebene, x, y, single;
4
5
  for(ebene = 1; ebene <= 5; ebene++)
6
  {
7
   //Schaltet die Ebene auf Minus
8
    ebeneAn(ebene);
9
    for(x = 1; x <= 5; x++)
10
    {
11
    //Speichert in die globale Variable gPort, welcher Port (abhängig je nach Demux) angesprochen werden soll
12
      single = spalteAn(x);
13
      for (y = 1; y <= 5; y++)
14
      {
15
        if(led_cube[ebene-1][x-1][y-1] == 1)
16
        {
17
         //Schaltet die Pins auf dem variablen Port "gPort" , je nachdem welche Led angesprochen werden osll
18
          reiheAn(y, single);
19
          _delay_us(150);
20
        }
21
      }
22
      spalteAus(x);
23
    }
24
  }
25
}

Mein Problem ist nun, dass das der Led-Cube nicht unbedingt leuchtstark 
ist, weil die Leds einfach zu schnell wieder abgeschaltet werden, erhöht 
man das delay, nimmt sie das Auge stärker war, allerdings fängt dann das 
ganze an zu "flimmern", weil immer der ganze Würfel "gerendert" wird.

Vll. habt ihr eine Lösung für mich.

MfG

von Falk B. (falk)


Lesenswert?

@  Christoph M. (christoph_m44)

>Die Ebenen werden direkt von PortB geschalten (die Ebenen sind Kathoden
>der Leds)

Naja. Schaltplan? Siehe Netiquette.

>Mein Programm ist so programmiert, dass nur eine einzige Led leuchtet.

Was mal nicht so sinnvoll ist, denn dann ist es Essig mit der 
Leuchtkraft.

>Mein Problem ist nun, dass das der Led-Cube nicht unbedingt leuchtstark
>ist,

Logisch, du machst Charliplexing, das ist nur brauchbar, wenn wenige 
LEDs in der Matrix leuchten sollen.

>Vll. habt ihr eine Lösung für mich.

Mach es richtig wie der Rest der Welt mit einer LED-Matrix und einem 
Timer.

von Christoph M. (christoph_m44)


Lesenswert?

Schaltplan kann ich leider nicht posten, bin "nur" der Programmierer.

D.h. dann, dass ich die Demultiplexer weglassen, und direkt die Portpins 
verwenden muss, oder?

Wie macht man das dann bei größeren Led-Cubes? Dort muss man ja mit 
Demultiplexer arbeiten, da ja die Pins nicht ausreichen würden und dann 
kann man auch nicht pro Reihe mehrere Leds gleichzeitig schalten.

MfG

von Falk B. (falk)


Lesenswert?

Lies den Artikel LED-Matrix.

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.