Forum: Compiler & IDEs 3x3x3 LED Cube - LEDs nicht ansteuerbar


von xrtm4e (Gast)


Lesenswert?

Hi,

habe mir gerade einen 3x3x3 LED Cube gebaut, doch habe ein Problem mit 
der Ansteuerung. Beispielsweise möchte ich die 1. LED der unteren Ebene 
ansteuern, das mache ich dann folgendermaßen:

DDRD |= (1<<PD0); //1. Ebene -> alle Kathoden verbunden
DDRB |= (1<<PB0); //1. LED (unten links) -> Anode

PORTD &= ~(1<<PD0); //1. Ebene auf GND ziehen
PORTB |= (1<<PB0); //+5V auf 1. LED

Leider bekomme ich so keine LED zum laufen. Der Mikrocontroller 
(atmega88) ist ansteuerbar, das Programm lässt sich einwandfrei 
übertragen - ohne Fehler. Leitungen wurden alle gecheckt, auch der 
Vorwiderstand an den LED passt. Da bleibt eig. nur noch das Programm ;)

Bitte um Hilfe.

von Floh (Gast)


Lesenswert?

xrtm4e schrieb:
> Da bleibt eig. nur noch das Programm ;)

Aber bitte das vollständige.
Und ein Schaltplan.

von xrtm4e (Gast)


Lesenswert?

#include <avr/io.h>

int main(){

  DDRD |= (1<<PD0); //1. Ebene -> alle Kathoden verbunden
  DDRB |= (1<<PB0); //1. LED (unten links) -> Anode

  PORTD &= ~(1<<PD0); //1. Ebene auf GND ziehen
  PORTB |= (1<<PB0); //+5V auf 1. LED

  return 0;
}

Zum Schaltplan gibt's nicht viel zu sagen. Es ist eine 
Standard-Schaltung mit 10-poliger Wannenbuchse für ISP-Programmer, 16 
MHz Quarz, Abblockkondensatoren etc. Habe auch ein 7805 als 
Spannungsregler, das ganze wird mit einer 9V-Blockbatterie mit Spannung 
versorgt.

Die 3 Ebenen sind an PD0 bis PD2.
Die Anoden der jeweiligen Spalten sind an PC1 bis PC5 + PD5 bis PD7 + 
PB0 über einen 270Ohm Widerstand geschaltet.

von Mikel M. (mikelm)


Lesenswert?

Der dritte Draht muß an der 4ten Lötfahne.

von xrtm4e (Gast)


Lesenswert?

Wie meinst du das genau?

von Mikel M. (mikelm)


Lesenswert?

sieht mal doch im Schaltplan

von Eddy C. (chrisi)


Lesenswert?

Über das reine Anglotzen der nicht funktionierenden Schaltung hinaus 
besteht auch noch die Möglichkeit, den Pegel der Ports zu überprüfen. So 
habe ich das schon von 20 Jahren ("wir hatten ja nichts") erfolgreich 
gehandhabt. Du musst den Fehler einkreisen!

Ansonsten solltest Du am Ende der Portaktivitäten noch eine 
Endlosschleife ("while (1);") einfügen umd das Programm nicht ins 
Nirwana rennen zu lassen.

Weiterhin: Mit weniger anfangen und einen Nachweis erbringen, dass Dein 
Programm überhaupt läuft! Polarität der LEDs?

xrtm4e möchte Dir auf seine eigene, unglaublich amüsante und 
konstruktive Art mitteilen, dass es ohne Schaltplan doch nicht geht.

von xrtm4e (Gast)


Lesenswert?

Oh nein ... es liegt nicht am Programm. Habe mal die Spannung an den 
Pins gemessen und jeder gibt 5V aus! Dann überprüfe ich mal besser die 
Schaltung ... oder kann sowas mit falsch gesetzten Fusebits entstehen?

von Uwe (de0508)


Lesenswert?

wie immer,

* alle Infos zum Problem
* Schaltplan
* das gesamte lauffähige Programm

von Kevin (Gast)


Lesenswert?

Unsere Glaskugeln sind beim Service.

von MaWin (Gast)


Lesenswert?

> DDRD |= (1<<PD0); //1. Ebene -> alle Kathoden verbunden
> DDRB |= (1<<PB0); //1. LED (unten links) -> Anode

Wie kommt man auf die skurrile Idee, die anderen Ausgänge zu Eingängen 
zu schalten ?

von TanMenu€ (Gast)


Lesenswert?

Eddy Current schrieb:
> xrtm4e möchte Dir auf seine eigene, unglaublich amüsante und
> konstruktive Art mitteilen, dass es ohne Schaltplan doch nicht geht.

Glaube eher, es handelt sich dabei um Mikel M.  ;-)

von Bronco (Gast)


Lesenswert?

Du hast hoffentlich die LEDs nicht zwischen zwei Pins gehängt.
Die Pins können nur begrenzten Strom treiben und wenn Du sie zu stark 
belastest, bricht dem armen Pin die Ausgangsspannung ein. Wenn Du Glück 
hast, raucht er dabei nicht ab, ansonsten kannst Du regelmäßig neue µCs 
einlöten...

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.