Hallo, Ich habe mir auch einen kleinen LED Cube gebaut und möchte das Multiplexing jetzt von Delays auf Interrupts umstellen. Dabei habe ich das Problem, dass zusätzlich zu den LEDs die eigendlich an sein sollen zusätzlich immer noch eine weitere LED in der gleichen Spalte schwächer mitleuchtet. Zur Veranschaulichung habe ich ein Biild gemacht und den Code habe ich auch gleich mit hochgeladen. Ich hoffe ihr könnt mir helfen, falls der Fehler sehr dumm ist bitte nicht steinigen^^ Bin noch Anfänger... Vielen Dank!
Schreibs mal so
1 | ISR (TIMER0_OVF_vect) |
2 | {
|
3 | PORTC = 0; // alles abschalten |
4 | |
5 | i++; |
6 | if (i==4) |
7 | i=1; |
8 | |
9 | if (i==1) |
10 | {
|
11 | PORTD = PORTB = 0; // PORTD und PORTB: Spalten |
12 | PORTC = (1<<PC0); |
13 | }
|
14 | |
15 | else if (i==2) |
16 | {
|
17 | PORTD = PORTB = 0; |
18 | PORTC = (1<<PC1); |
19 | }
|
20 | |
21 | else if (i==3) |
22 | {
|
23 | PORTD = PORTB = 1; |
24 | PORTC = (1<<PC2); |
25 | }
|
26 | }
|
Dadurch verschaffst du nach dem Abschalten der Ebene ganz am Anfang der Elektronik ein bischen Zeit in der nichts leuchtet, so dass sich kleine Kapazitäten entladen können und tatsächlich alles abgeschaltet und aus ist, ehe dann die neue Spaltenbelegung für diese Ebene aktiv wird.
Die veränderte Reihenfolge hilft leider nicht. Zum Testen habe ich auch noch ein _delay_ms() eingefügt, was aber nur zu einem geringeren Leuchten führt. Komischwerweise leuchtet mit Delay auch die unterste LED der Spalte etwas mit, was sie ohne Delay nicht tut. Ich schalte die Ebenen über BC 635 Transistoren. Die müssten über solche Frequenzen von ein paar Hundert Herz eigendlich lachen, oder? Die Spalten sind direckt am Atmega8 angeschlossen. Danke schon mal für die Hilfe, ich hoffe wir finden den Fehler noch.
Dann musst du mal deine Schaltung bzw. den Aufbau herzeigen.
Da gibt es nicht viel herzuzeigen. Ich habe versucht das ganze so einfach wie möglich zu halten. - Spalten mit einem Vorwiederstand (1k Ohm) an einen I/O Pin des Mikrocontrollers - Ebenen über einen BC 635 an Ground (Basiswiderstand 4,4k Ohm) - ein Taster mit Pull-Up (10k Ohm) am gleichen Port wie die Ebenen - sonst die Standardbeschaltung mit Abblockkondensatoren aus dem Tutorial - Stromversorgung per LM7805 und Netzteil (9V) - die Platine ist leider ziemlich unübersichtlich, es hat gerade alles drauf gepasst, falls es hilft mach ich aber gerne auch ein Foto An der Software liegt es also definitiv nicht? Wie sieht denn bei anderen hier im Forum die Ausgabe auf den Cube aus?
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.